From: Ralph Dolmans Date: Thu, 25 Oct 2018 08:53:50 +0000 (+0000) Subject: - Add min-client-subnet-ipv6 and min-client-subnet-ipv4 options. X-Git-Tag: release-1.8.2rc1~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6021341118c33e91eb6680ddb4cb1b6d691859d7;p=thirdparty%2Funbound.git - Add min-client-subnet-ipv6 and min-client-subnet-ipv4 options. git-svn-id: file:///svn/unbound/trunk@4951 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index bef20352d..8e424e335 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +25 October 2018: Ralph + - Add min-client-subnet-ipv6 and min-client-subnet-ipv4 options. + 25 October 2018: Wouter - Fix #4191: NXDOMAIN vs SERVFAIL during dns64 PTR query. - Fix #4190: Please create a "ANY" deny option, adds the option diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 18b3b3141..05f4ca363 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1848,6 +1848,14 @@ to expose to third parties for IPv6. Defaults to 56. Specifies the maximum prefix length of the client source address we are willing to expose to third parties for IPv4. Defaults to 24. .TP +.B min\-client\-subnet\-ipv6: \fI\fR +Specifies the minimum prefix length of the IPv6 source mask we are willing to +accept in queries. Shorter source masks result in REFUSED answers. +.TP +.B min\-client\-subnet\-ipv4: \fI\fR +Specifies the minimum prefix length of the IPv4 source mask we are willing to +accept in queries. Shorter source masks result in REFUSED answers. +.TP .B max\-ecs\-tree\-size\-ipv4: \fI\fR Specifies the maximum number of subnets ECS answers kept in the ECS radix tree. This number applies for each qname/qclass/qtype tuple. Defaults to 100. diff --git a/edns-subnet/subnetmod.c b/edns-subnet/subnetmod.c index 9b123222d..bd57359b4 100644 --- a/edns-subnet/subnetmod.c +++ b/edns-subnet/subnetmod.c @@ -717,6 +717,17 @@ subnetmod_operate(struct module_qstate *qstate, enum module_ev event, return; } + /* Limit to minimum allowed source mask */ + if(sq->ecs_client_in.subnet_source_mask != 0 && ( + (sq->ecs_client_in.subnet_addr_fam == EDNSSUBNET_ADDRFAM_IP4 && + sq->ecs_client_in.subnet_source_mask < qstate->env->cfg->min_client_subnet_ipv4) || + (sq->ecs_client_in.subnet_addr_fam == EDNSSUBNET_ADDRFAM_IP6 && + sq->ecs_client_in.subnet_source_mask < qstate->env->cfg->max_client_subnet_ipv6))) { + qstate->return_rcode = LDNS_RCODE_REFUSED; + qstate->ext_state[id] = module_finished; + return; + } + lock_rw_wrlock(&sne->biglock); if (lookup_and_reply(qstate, id, sq)) { sne->num_msg_cache++; diff --git a/util/config_file.c b/util/config_file.c index 266bb29b2..964b2166f 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -195,6 +195,8 @@ config_create(void) cfg->client_subnet_always_forward = 0; cfg->max_client_subnet_ipv4 = 24; cfg->max_client_subnet_ipv6 = 56; + cfg->min_client_subnet_ipv4 = 0; + cfg->min_client_subnet_ipv6 = 0; cfg->max_ecs_tree_size_ipv4 = 100; cfg->max_ecs_tree_size_ipv6 = 100; #endif @@ -687,6 +689,7 @@ int config_set_option(struct config_file* cfg, const char* opt, * local-zone-tag, access-control-view, * send-client-subnet, client-subnet-always-forward, * max-client-subnet-ipv4, max-client-subnet-ipv6, + * min-client-subnet-ipv4, min-client-subnet-ipv6, * max-ecs-tree-size-ipv4, max-ecs-tree-size-ipv6, ipsecmod_hook, * ipsecmod_whitelist. */ return 0; @@ -987,6 +990,8 @@ config_get_option(struct config_file* cfg, const char* opt, else O_LST(opt, "client-subnet-zone", client_subnet_zone) else O_DEC(opt, "max-client-subnet-ipv4", max_client_subnet_ipv4) else O_DEC(opt, "max-client-subnet-ipv6", max_client_subnet_ipv6) + else O_DEC(opt, "min-client-subnet-ipv4", min_client_subnet_ipv4) + else O_DEC(opt, "min-client-subnet-ipv6", min_client_subnet_ipv6) else O_DEC(opt, "max-ecs-tree-size-ipv4", max_ecs_tree_size_ipv4) else O_DEC(opt, "max-ecs-tree-size-ipv6", max_ecs_tree_size_ipv6) else O_YNO(opt, "client-subnet-always-forward:", diff --git a/util/config_file.h b/util/config_file.h index a8f551482..944741579 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -215,6 +215,9 @@ struct config_file { /** Subnet length we are willing to give up privacy for */ uint8_t max_client_subnet_ipv4; uint8_t max_client_subnet_ipv6; + /** Minimum subnet length we are willing to answer */ + uint8_t min_client_subnet_ipv4; + uint8_t min_client_subnet_ipv6; /** Max number of nodes in the ECS radix tree */ uint32_t max_ecs_tree_size_ipv4; uint32_t max_ecs_tree_size_ipv6; diff --git a/util/configlexer.c b/util/configlexer.c index 45ec88a00..527ec1e61 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -10,7 +10,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 1 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -85,10 +85,16 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ +/* begin standard C++ headers. */ + /* TODO: this is always defined, so inline it */ #define yyconst const @@ -101,32 +107,26 @@ typedef unsigned int flex_uint32_t; /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -163,7 +163,7 @@ extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -172,7 +172,7 @@ extern FILE *yyin, *yyout; do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ @@ -180,7 +180,6 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -223,7 +222,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -262,7 +261,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -283,62 +281,56 @@ static int yy_start = 0; /* start state number */ */ static int yy_did_buffer_switch_on_eof; -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); - -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -void *yyalloc (yy_size_t ); -void *yyrealloc (void *,yy_size_t ); -void yyfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; - int yylineno = 1; extern char *yytext; @@ -347,10 +339,10 @@ extern char *yytext; #endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yynoreturn yy_fatal_error (yyconst char* msg ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -362,9 +354,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 283 -#define YY_END_OF_BUFFER 284 +#define YY_NUM_RULES 285 +#define YY_END_OF_BUFFER 286 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,319 +363,321 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2799] = +static const flex_int16_t yy_accept[2821] = { 0, - 1, 1, 265, 265, 269, 269, 273, 273, 277, 277, - 1, 1, 284, 281, 1, 263, 263, 282, 2, 282, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 265, 266, 266, 267, 282, 269, 270, 270, - 271, 282, 276, 273, 274, 274, 275, 282, 277, 278, - 278, 279, 282, 280, 264, 2, 268, 282, 280, 281, - 0, 1, 2, 2, 2, 2, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 265, - 0, 269, 0, 276, 0, 273, 277, 0, 280, 0, - 2, 2, 280, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 280, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 110, 281, 281, 281, 281, 281, - 281, 281, 280, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 92, 281, 281, 281, 281, 281, - 281, 8, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 115, 281, 280, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 280, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 51, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 206, 281, 14, 15, 281, 18, 17, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 109, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 191, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 3, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 280, 281, 281, 281, 281, 281, 281, 281, - 256, 281, 281, 255, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 272, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 54, 281, 230, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 55, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 180, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 20, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 132, 281, 281, 272, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 90, 281, 281, 281, - 281, 281, 281, 281, 238, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 153, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 131, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 89, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 31, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 32, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 52, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 108, 281, 281, 281, 281, 281, 107, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 53, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 154, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 42, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 221, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 46, 281, 47, - 281, 281, 281, 281, 93, 281, 94, 281, 281, 281, - 281, 91, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 7, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 199, 281, 281, 281, 281, - 134, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 43, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 172, 281, 171, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 16, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 56, 281, 281, 281, 281, 281, - 281, 281, 281, 179, 281, 281, 281, 281, 281, 96, - 281, 95, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 164, - 281, 281, 281, 281, 281, 281, 281, 281, 116, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 74, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 78, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 50, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 167, 168, 281, 281, 232, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 6, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 236, 281, 281, - 281, 257, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 40, 281, 281, 281, 281, 281, 281, 281, 281, 160, - 281, 281, 281, 111, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 184, 281, 161, 281, 281, 281, - 196, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 41, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 113, 101, 281, - 102, 281, 281, 281, 100, 281, 281, 281, 281, 281, - 281, 281, 281, 129, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 281, 281, 220, 281, 281, 281, 281, - 281, 281, 281, 281, 162, 281, 281, 281, 281, 281, - 165, 281, 170, 281, 281, 281, 281, 195, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 88, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 48, 281, 281, 281, 25, 281, 281, - 281, 281, 281, 281, 281, 281, 19, 281, 281, 281, - 281, 26, 35, 281, 139, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 281, 63, 65, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 240, 281, - 281, 281, 207, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 103, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 128, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 251, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 133, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 190, 281, - - 281, 281, 281, 281, 281, 281, 281, 260, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 150, 281, 281, - 281, 281, 281, 281, 281, 97, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 145, 281, 155, 281, 281, 281, 281, 281, - 119, 281, 281, 281, 281, 281, 84, 281, 281, 281, - 281, 182, 281, 281, 281, 281, 281, 281, 197, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 212, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 112, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 281, 149, 281, 281, 281, 281, 281, 66, 67, - 281, 281, 281, 281, 281, 49, 281, 281, 281, 281, - 281, 73, 156, 281, 173, 281, 200, 281, 166, 233, - 281, 281, 281, 281, 59, 281, 158, 281, 281, 281, - 281, 281, 9, 281, 281, 281, 87, 281, 281, 281, - 281, 225, 281, 281, 281, 181, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 148, 281, 281, - - 281, 281, 281, 281, 281, 281, 281, 281, 135, 281, - 239, 281, 281, 281, 281, 211, 281, 281, 281, 281, - 281, 281, 281, 281, 192, 281, 281, 281, 281, 231, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 254, 281, 157, 281, 281, 281, - 281, 281, 58, 60, 281, 281, 281, 281, 281, 281, - 281, 86, 281, 281, 281, 281, 223, 281, 281, 281, - 235, 281, 281, 281, 281, 281, 281, 281, 186, 33, - 27, 29, 281, 281, 281, 281, 281, 281, 281, 281, - - 34, 28, 30, 281, 281, 281, 281, 281, 281, 83, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 188, 185, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 57, 281, 281, 114, 281, 104, 281, - 281, 281, 281, 281, 281, 281, 281, 130, 13, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 249, 281, - 252, 281, 281, 281, 281, 281, 281, 281, 281, 12, - 281, 281, 21, 281, 281, 281, 229, 281, 281, 281, - 237, 281, 61, 281, 194, 281, 281, 187, 281, 281, - - 281, 281, 281, 281, 22, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 144, 143, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 189, 183, 281, - 198, 281, 281, 241, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 68, 281, - 281, 281, 224, 281, 281, 281, 281, 169, 281, 281, - 193, 281, 281, 281, 281, 281, 281, 281, 281, 258, - 259, 141, 62, 281, 281, 151, 281, 281, 98, 99, - 281, 281, 281, 136, 281, 138, 281, 174, 281, 281, - - 281, 142, 281, 281, 201, 281, 281, 281, 281, 281, - 281, 281, 121, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 208, 281, 281, 281, 23, 281, - 234, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 175, 281, 281, 222, 281, 253, 281, 281, - 281, 281, 44, 281, 281, 281, 281, 4, 281, 281, - 120, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 204, 36, 37, 281, 281, - 281, 281, 281, 281, 281, 242, 281, 281, 281, 281, - 281, 281, 210, 281, 281, 281, 178, 281, 281, 281, - - 281, 281, 281, 281, 281, 281, 71, 281, 45, 228, - 281, 205, 281, 281, 281, 11, 281, 281, 281, 281, - 281, 281, 281, 176, 75, 281, 39, 281, 281, 281, - 281, 281, 281, 147, 281, 281, 281, 281, 281, 123, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 209, - 117, 281, 281, 105, 106, 281, 281, 281, 77, 81, - 76, 281, 69, 281, 281, 281, 281, 10, 281, 281, - 281, 226, 281, 281, 262, 38, 281, 281, 281, 146, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 82, 80, - - 281, 70, 250, 281, 281, 281, 281, 281, 163, 281, - 281, 281, 177, 281, 281, 281, 281, 281, 281, 137, - 64, 281, 281, 281, 281, 281, 243, 281, 281, 281, - 281, 281, 281, 281, 118, 281, 79, 124, 125, 126, - 127, 72, 281, 227, 281, 140, 281, 281, 281, 281, - 203, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 152, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 85, 281, 202, 281, 219, - 247, 281, 281, 281, 281, 281, 281, 281, 281, 281, - - 281, 5, 281, 281, 281, 248, 281, 281, 281, 281, - 281, 281, 281, 281, 24, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 122, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 159, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 244, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 261, 281, 281, 215, - 281, 281, 281, 281, 281, 245, 281, 281, 281, 281, - 281, 281, 246, 281, 281, 281, 213, 281, 216, 217, - 281, 281, 281, 281, 281, 214, 218, 0 - + 1, 1, 267, 267, 271, 271, 275, 275, 279, 279, + 1, 1, 286, 283, 1, 265, 265, 284, 2, 284, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 267, 268, 268, 269, 284, 271, 272, 272, + 273, 284, 278, 275, 276, 276, 277, 284, 279, 280, + 280, 281, 284, 282, 266, 2, 270, 284, 282, 283, + 0, 1, 2, 2, 2, 2, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 267, + 0, 271, 0, 278, 0, 275, 279, 0, 282, 0, + 2, 2, 282, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 282, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 110, 283, 283, 283, 283, + 283, 283, 283, 282, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 92, 283, 283, 283, + 283, 283, 283, 8, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 115, 283, 282, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 282, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 51, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 208, 283, 14, 15, 283, 18, + 17, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 109, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 193, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 3, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 282, 283, 283, 283, + 283, 283, 283, 283, 258, 283, 283, 257, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 274, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 54, 283, 232, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 55, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 182, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 20, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 134, 283, 283, + 274, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 90, 283, 283, 283, 283, 283, 283, 283, 240, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 155, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 133, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 89, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 31, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 32, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 52, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 108, + 283, 283, 283, 283, 283, 107, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 53, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 156, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 42, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 223, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 46, 283, 47, 283, 283, 283, + 283, 93, 283, 94, 283, 283, 283, 283, 91, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 7, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 201, 283, 283, 283, 283, 136, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 43, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 174, 283, 173, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 16, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 56, 283, 283, 283, 283, 283, 283, 283, + 283, 181, 283, 283, 283, 283, 283, 96, 283, 95, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 166, 283, 283, + 283, 283, 283, 283, 283, 283, 116, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 74, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 78, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 50, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 169, 170, + 283, 283, 234, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 6, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 238, 283, 283, 283, + + 259, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 40, + 283, 283, 283, 283, 283, 283, 283, 283, 162, 283, + 283, 283, 111, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 186, 283, 163, 283, 283, 283, 198, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 41, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 113, 101, 283, 102, + 283, 283, 283, 100, 283, 283, 283, 283, 283, 283, + + 283, 283, 131, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 222, 283, 283, 283, 283, 283, + 283, 283, 283, 164, 283, 283, 283, 283, 283, 167, + 283, 172, 283, 283, 283, 283, 197, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 88, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 48, 283, 283, 283, 25, 283, 283, + 283, 283, 283, 283, 283, 283, 19, 283, 283, 283, + 283, 26, 35, 283, 141, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 63, 65, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 242, 283, + 283, 283, 209, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 103, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 130, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 253, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 135, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 192, + 283, 283, 283, 283, 283, 283, 283, 283, 262, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 152, 283, + 283, 283, 283, 283, 283, 283, 97, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 147, 283, 157, 283, 283, 283, 283, + 283, 119, 283, 283, 283, 283, 283, 84, 283, 283, + 283, 283, 184, 283, 283, 283, 283, 283, 283, 199, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 214, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 112, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 151, 283, 283, 283, 283, 283, 66, + 67, 283, 283, 283, 283, 283, 49, 283, 283, 283, + 283, 283, 73, 158, 283, 175, 283, 202, 283, 168, + 235, 283, 283, 283, 283, 283, 59, 283, 160, 283, + 283, 283, 283, 283, 9, 283, 283, 283, 87, 283, + 283, 283, 283, 227, 283, 283, 283, 183, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 150, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 137, 283, 241, 283, 283, 283, 283, 213, 283, 283, + 283, 283, 283, 283, 283, 283, 194, 283, 283, 283, + 283, 233, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 256, 283, 159, 283, + 283, 283, 283, 283, 283, 58, 60, 283, 283, 283, + 283, 283, 283, 283, 86, 283, 283, 283, 283, 225, + 283, 283, 283, 237, 283, 283, 283, 283, 283, 283, + + 283, 188, 33, 27, 29, 283, 283, 283, 283, 283, + 283, 283, 283, 34, 28, 30, 283, 283, 283, 283, + 283, 283, 83, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 190, 187, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 57, 283, 283, 114, + 283, 104, 283, 283, 283, 283, 283, 283, 283, 283, + 132, 13, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 251, 283, 254, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 12, 283, 283, 21, 283, 283, 283, + + 231, 283, 283, 283, 239, 283, 61, 283, 196, 283, + 283, 189, 283, 283, 283, 283, 283, 283, 22, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 146, 145, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 191, 185, 283, 200, 283, 283, 243, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 68, 283, 283, 283, 226, 283, 283, 283, + 283, 171, 283, 283, 283, 195, 283, 283, 283, 283, + 283, 283, 283, 283, 260, 261, 143, 62, 283, 283, + + 153, 283, 283, 98, 99, 283, 283, 283, 138, 283, + 140, 283, 176, 283, 283, 283, 144, 283, 283, 203, + 283, 283, 283, 283, 283, 283, 283, 121, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 210, + 283, 283, 283, 23, 283, 236, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 177, 283, 283, + 224, 283, 255, 283, 283, 283, 283, 283, 44, 283, + 283, 283, 283, 4, 283, 283, 120, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 206, 36, 37, 283, 283, 283, 283, 283, 283, + + 283, 244, 283, 283, 283, 283, 283, 283, 212, 283, + 283, 283, 180, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 71, 283, 45, 230, 283, 207, 283, 283, + 283, 283, 11, 283, 283, 283, 283, 283, 283, 283, + 178, 75, 283, 39, 283, 283, 283, 283, 283, 283, + 149, 283, 283, 283, 283, 283, 123, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 211, 117, 283, 283, + 105, 106, 283, 283, 283, 77, 81, 76, 283, 69, + 283, 283, 283, 283, 283, 10, 283, 283, 283, 228, + 283, 283, 264, 38, 283, 283, 283, 148, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 82, 80, 283, 70, + 252, 283, 283, 283, 283, 283, 283, 283, 165, 283, + 283, 283, 179, 283, 283, 283, 283, 283, 283, 139, + 64, 283, 283, 283, 283, 283, 245, 283, 283, 283, + 283, 283, 283, 283, 118, 283, 79, 124, 125, 128, + 129, 126, 127, 72, 283, 229, 283, 142, 283, 283, + 283, 283, 205, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 154, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 85, 283, 204, + 283, 221, 249, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 5, 283, 283, 283, 250, 283, 283, + 283, 283, 283, 283, 283, 283, 24, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 122, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 161, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 246, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 263, 283, + 283, 217, 283, 283, 283, 283, 283, 247, 283, 283, + + 283, 283, 283, 283, 248, 283, 283, 283, 215, 283, + 218, 219, 283, 283, 283, 283, 283, 216, 220, 0 } ; -static yyconst YY_CHAR yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -716,7 +709,7 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[41] = +static const YY_CHAR yy_meta[41] = { 0, 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, @@ -724,15 +717,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[2813] = +static const flex_int16_t yy_base[2835] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 2348, 2233, 81, 5464, 5464, 5464, 96, 52, + 90, 112, 1508, 1461, 81, 5511, 5511, 5511, 96, 52, 106, 63, 107, 111, 70, 128, 130, 133, 57, 88, 76, 135, 141, 117, 148, 145, 160, 164, 185, 176, - 191, 152, 2084, 5464, 5464, 5464, 107, 1644, 5464, 5464, - 5464, 165, 1483, 1462, 5464, 5464, 5464, 211, 1373, 5464, - 5464, 5464, 180, 1249, 5464, 217, 5464, 221, 168, 1136, + 191, 152, 1330, 5511, 5511, 5511, 107, 1275, 5511, 5511, + 5511, 165, 1150, 1130, 5511, 5511, 5511, 211, 1086, 5511, + 5511, 5511, 180, 1030, 5511, 217, 5511, 221, 168, 985, 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, @@ -740,619 +733,623 @@ static yyconst flex_uint16_t yy_base[2813] = 275, 187, 277, 278, 267, 274, 280, 283, 287, 289, 295, 297, 298, 299, 304, 305, 306, 311, 307, 315, 309, 313, 330, 318, 329, 325, 320, 335, 336, 338, - 339, 340, 343, 342, 346, 347, 349, 350, 358, 1033, - 371, 979, 375, 576, 383, 557, 369, 373, 198, 387, + 339, 340, 343, 342, 346, 347, 349, 350, 358, 975, + 371, 889, 375, 697, 383, 557, 369, 373, 198, 387, 391, 0, 383, 385, 393, 370, 389, 392, 257, 395, 394, 396, 401, 397, 399, 415, 398, 405, 418, 420, 424, 421, 428, 412, 432, 433, 434, 436, 445, 443, 448, 426, 449, 450, 451, 452, 454, 460, 458, 455, - 467, 476, 471, 479, 487, 474, 488, 477, 484, 495, - - 491, 498, 499, 490, 500, 501, 502, 503, 504, 506, - 508, 510, 511, 512, 516, 517, 518, 524, 525, 519, - 534, 530, 539, 531, 536, 540, 550, 552, 535, 559, - 543, 556, 561, 564, 568, 565, 563, 566, 569, 570, - 572, 573, 574, 575, 583, 591, 587, 590, 594, 596, - 599, 597, 600, 601, 578, 608, 604, 610, 605, 619, - 617, 620, 622, 618, 624, 625, 626, 627, 637, 629, - 638, 640, 647, 644, 645, 649, 656, 633, 651, 652, - 655, 657, 659, 660, 663, 661, 670, 664, 672, 674, - 683, 681, 676, 689, 685, 687, 690, 697, 680, 691, - - 710, 715, 696, 704, 711, 716, 719, 723, 727, 729, - 720, 731, 733, 734, 717, 739, 744, 740, 741, 748, - 747, 750, 759, 743, 763, 749, 771, 751, 767, 789, - 773, 774, 768, 772, 5464, 775, 777, 813, 781, 797, - 804, 801, 799, 800, 787, 809, 811, 823, 666, 814, - 821, 837, 822, 824, 826, 833, 838, 836, 853, 839, - 842, 849, 850, 858, 854, 769, 855, 859, 863, 865, - 866, 870, 867, 868, 871, 873, 876, 877, 878, 880, - 885, 888, 891, 896, 889, 902, 909, 886, 906, 913, - 914, 904, 915, 905, 920, 921, 922, 932, 927, 928, - - 929, 930, 933, 936, 937, 939, 940, 941, 944, 942, - 951, 955, 948, 956, 5464, 961, 954, 963, 964, 965, - 966, 5464, 968, 967, 970, 980, 972, 982, 989, 977, - 990, 999, 983, 992, 1002, 997, 1000, 1004, 1006, 1008, - 1009, 1007, 1010, 1013, 1016, 1036, 1018, 1017, 1019, 1021, - 1025, 1024, 1034, 1030, 1043, 1031, 1049, 1059, 1051, 1054, - 1046, 1060, 1063, 1068, 1065, 1070, 1071, 1072, 1073, 1074, - 1075, 1077, 1078, 1081, 5464, 1076, 1090, 1089, 1092, 1097, - 1098, 1099, 1100, 1101, 1102, 1103, 1105, 1110, 1109, 1120, - 1111, 1127, 1122, 1125, 1124, 1126, 1130, 1129, 1131, 1133, - - 1143, 1139, 1145, 1154, 1157, 1156, 1159, 1166, 1146, 1161, - 1163, 1162, 1165, 1169, 1170, 1148, 1174, 1176, 1183, 1178, - 1179, 1184, 1185, 1192, 1190, 1187, 1188, 1194, 1198, 1202, - 1203, 1204, 1207, 1210, 1217, 1206, 1213, 1214, 1219, 1223, - 1222, 1228, 1229, 1230, 1231, 1232, 1234, 1237, 1235, 1239, - 1238, 1248, 1245, 1253, 1257, 1258, 1241, 1261, 1268, 1264, - 1271, 1267, 1272, 1279, 1274, 1276, 1266, 1288, 1280, 1281, - 1291, 1292, 1300, 1293, 1297, 1304, 1283, 1301, 1306, 1309, - 1311, 1307, 1312, 1314, 1315, 1316, 1317, 1318, 1320, 1322, - 1323, 1319, 1331, 1324, 1346, 1333, 1342, 1329, 1344, 1345, - - 1350, 1351, 1352, 1353, 1357, 1355, 1358, 1359, 1364, 1360, - 1361, 1366, 1367, 1374, 1379, 1376, 1382, 1386, 1388, 1389, - 1390, 1393, 1392, 1397, 1395, 1402, 1394, 1403, 1404, 1408, - 1410, 1411, 1415, 1418, 1421, 1416, 5464, 1412, 1428, 1426, - 1429, 1430, 1434, 1435, 1443, 1436, 1438, 1439, 1440, 1441, - 1451, 5464, 1447, 5464, 5464, 1449, 5464, 5464, 1455, 1448, - 1452, 1467, 1474, 1476, 1458, 1472, 1478, 1479, 1486, 1500, - 1482, 1484, 1485, 1481, 1488, 1494, 1489, 1497, 1495, 1508, - 1511, 1514, 1515, 1521, 1513, 1522, 1524, 1526, 1529, 1527, - 1530, 1532, 1536, 1533, 1537, 1539, 1538, 1540, 1543, 1558, - - 5464, 1544, 1559, 1562, 1567, 1563, 1564, 1565, 1568, 1554, - 1569, 1571, 1575, 1580, 1577, 1581, 1588, 1583, 5464, 1584, - 1587, 1585, 1591, 1592, 1598, 1597, 1599, 1604, 1601, 1606, - 1608, 1607, 1609, 5464, 1613, 1619, 1614, 1621, 1622, 1610, - 1627, 1623, 1628, 1629, 1632, 1633, 1634, 1646, 1641, 1637, - 1639, 1642, 1654, 1652, 1657, 1664, 1655, 1659, 1661, 1665, - 1667, 1670, 1677, 1669, 1678, 1673, 1680, 1682, 1676, 1679, - 1687, 1684, 1696, 1694, 1698, 1700, 1702, 1709, 1704, 1707, - 1708, 1711, 1713, 1710, 1717, 1719, 1714, 1722, 1723, 1727, - 5464, 1729, 1730, 5464, 1731, 1733, 1755, 1734, 1737, 1732, - - 1739, 1740, 1745, 1748, 1743, 1756, 1759, 1768, 1769, 1770, - 1772, 1775, 1777, 1778, 1779, 1781, 1785, 1794, 1799, 1797, - 1789, 1804, 1786, 1801, 1803, 1822, 1802, 1805, 1811, 1806, - 1812, 1819, 1807, 1817, 1816, 1826, 1833, 1834, 5464, 1843, - 1844, 1827, 1839, 1855, 1851, 1840, 1853, 1854, 1850, 1864, - 1860, 1857, 1865, 1809, 1861, 1867, 1868, 1872, 1873, 1871, - 1884, 5464, 1874, 5464, 1879, 1883, 1885, 1888, 1886, 1889, - 1891, 1892, 1898, 1899, 1908, 1905, 5464, 1895, 1915, 1912, - 1917, 1910, 1919, 1922, 1921, 1923, 1931, 1926, 1933, 1929, - 1928, 1930, 1936, 1937, 1942, 1943, 1944, 5464, 1945, 1950, - - 1952, 1960, 1962, 1955, 1957, 1965, 1959, 1963, 1967, 1969, - 1970, 1979, 1980, 1971, 1981, 1984, 1991, 5464, 1978, 1988, - 1998, 1994, 1990, 1995, 1997, 2001, 2003, 2002, 2005, 2012, - 2015, 2007, 2011, 2019, 2010, 2021, 2024, 2027, 2025, 2028, - 2026, 2030, 5464, 2031, 2033, 124, 2034, 2038, 2039, 2041, - 2040, 2057, 2042, 2058, 2060, 2059, 1750, 2061, 2063, 2065, - 2067, 2068, 2069, 2071, 2070, 2073, 5464, 2075, 2076, 2080, - 2081, 2087, 2082, 2089, 5464, 2099, 2086, 2097, 2095, 2044, - 2101, 2106, 2107, 2110, 2111, 2113, 2114, 5464, 2118, 2120, - 2121, 2122, 2123, 2127, 2130, 2132, 2134, 2135, 2136, 2137, - - 2138, 2141, 2140, 2143, 2144, 2150, 2146, 2151, 2155, 2157, - 5464, 2169, 2158, 2160, 2165, 2173, 2167, 2182, 2170, 2174, - 2177, 2183, 2191, 2180, 2186, 2198, 2201, 2203, 2197, 2211, - 2207, 2213, 2215, 2219, 2221, 2209, 2217, 2222, 2223, 2225, - 2227, 2236, 2238, 2237, 2240, 2234, 2246, 2251, 2253, 5464, - 2255, 2241, 2257, 2258, 2266, 2261, 2263, 2262, 2269, 2270, - 2271, 2272, 2273, 2274, 2277, 2284, 2281, 2282, 2292, 2286, - 2288, 2295, 2296, 5464, 2301, 2300, 2302, 2309, 2306, 2311, - 2312, 2314, 2315, 2316, 2318, 2320, 2322, 2323, 2324, 2330, - 2331, 5464, 2332, 2341, 2342, 2344, 2345, 2348, 2327, 2338, - - 2349, 2187, 2351, 5464, 2360, 2363, 2361, 2365, 2358, 2362, - 2368, 2370, 2371, 5464, 2372, 2373, 2380, 2382, 2377, 5464, - 2384, 2375, 2385, 2386, 2387, 2388, 2393, 2390, 2397, 2399, - 2402, 2404, 2400, 2408, 5464, 2409, 2420, 2411, 2412, 2416, - 2418, 2415, 2425, 2426, 2433, 2427, 2442, 2444, 2438, 2437, - 2439, 2445, 2446, 2450, 2447, 2453, 5464, 2455, 2454, 2457, - 2458, 2460, 2461, 2462, 2476, 2466, 2467, 2471, 2474, 2477, - 2480, 2482, 2483, 2488, 2484, 2491, 2494, 2496, 2497, 2498, - 2501, 2510, 2513, 2508, 2514, 5464, 2517, 2518, 2512, 2505, - 2520, 2524, 2525, 2526, 2528, 2529, 2530, 2531, 2533, 2542, - - 2544, 2540, 2546, 2549, 2550, 2553, 2551, 2554, 2555, 2563, - 2556, 2558, 2559, 2565, 2572, 2564, 2567, 2575, 2576, 2577, - 2579, 2581, 2587, 2582, 2580, 2590, 2593, 2597, 2599, 2602, - 2603, 2604, 5464, 2608, 2605, 2607, 2609, 2615, 2617, 2619, - 2626, 2628, 2618, 2621, 2629, 2637, 2634, 5464, 2635, 5464, - 2636, 2640, 2641, 2650, 5464, 2647, 5464, 2648, 2655, 2643, - 2652, 5464, 2658, 2656, 2660, 2662, 2664, 2665, 2666, 2672, - 2667, 2674, 2670, 2677, 2680, 2682, 2675, 2684, 2688, 2681, - 2696, 2691, 2693, 2698, 2699, 2700, 5464, 2707, 2703, 2708, - 2709, 2710, 2711, 2714, 2712, 2719, 2720, 2716, 2726, 2723, - - 2730, 2733, 2741, 2727, 2748, 5464, 2737, 2745, 2734, 2746, - 5464, 2749, 2750, 2755, 2757, 2759, 2760, 2761, 2762, 2763, - 2767, 2766, 2769, 2777, 2780, 2781, 2783, 2768, 2789, 2797, - 2794, 2795, 2800, 2804, 2802, 2803, 2805, 2806, 2808, 2809, - 2817, 2819, 2810, 2820, 2818, 2821, 2830, 2822, 2824, 2831, - 2832, 2770, 2833, 2834, 2835, 2843, 2836, 2838, 2839, 2840, - 5464, 2845, 2849, 2850, 2859, 2857, 2854, 2862, 2863, 2864, - 2865, 2867, 2866, 2871, 5464, 2870, 5464, 2876, 2879, 2884, - 2889, 2891, 2892, 2894, 2896, 2897, 2899, 2900, 2898, 2902, - 2906, 2908, 2910, 2913, 2922, 2912, 2915, 2918, 2923, 2924, - - 2926, 5464, 2927, 2929, 2930, 2933, 2934, 2939, 2941, 2945, - 2935, 2946, 2948, 2961, 5464, 2950, 2965, 2951, 2963, 2974, - 2970, 2977, 2972, 5464, 2973, 2976, 2985, 2981, 2980, 5464, - 2984, 5464, 2982, 2986, 2987, 2988, 2991, 2996, 2998, 2999, - 3006, 3002, 3003, 3007, 3008, 3011, 3016, 3014, 3017, 5464, - 3019, 3020, 3022, 3028, 3029, 3031, 3032, 3021, 5464, 3037, - 3039, 3042, 3043, 3045, 3047, 3048, 3049, 3051, 3053, 3050, - 3054, 3066, 3058, 3057, 3067, 3072, 3076, 3078, 5464, 3080, - 3059, 3087, 3083, 3084, 3086, 3089, 3090, 3091, 3093, 3094, - 3095, 3097, 3102, 3101, 3098, 3099, 3104, 3105, 3118, 3115, - - 3107, 3119, 3123, 3122, 3125, 3129, 3130, 3133, 3135, 3126, - 3137, 3140, 3144, 3147, 3149, 3150, 3157, 3152, 5464, 3159, - 3156, 3164, 3160, 3163, 3162, 3169, 3173, 3175, 3171, 3172, - 3182, 3177, 5464, 3184, 3179, 3196, 3190, 3180, 3205, 3200, - 3186, 3181, 3204, 3207, 3210, 3208, 3212, 3213, 3216, 3217, - 5464, 5464, 3219, 3220, 5464, 3221, 3222, 3231, 3224, 3226, - 3232, 3227, 3235, 3244, 3238, 3240, 5464, 3242, 3252, 3248, - 3250, 3255, 3259, 3263, 3260, 3258, 3251, 3254, 3266, 3269, - 3270, 3274, 3275, 3283, 3279, 3280, 3281, 5464, 3282, 3284, - 3289, 5464, 3286, 3287, 3290, 3297, 3293, 3294, 3307, 3309, - - 3310, 3311, 3312, 3313, 3314, 3321, 3320, 3319, 3327, 3328, - 3332, 3330, 3338, 3340, 3348, 3322, 3349, 3344, 3345, 3356, - 5464, 3351, 3354, 3352, 3353, 3361, 3359, 3366, 3362, 5464, - 3365, 3367, 3368, 5464, 3369, 3375, 3380, 3383, 3371, 3390, - 3387, 3389, 3392, 3388, 5464, 3395, 5464, 3396, 3401, 3402, - 5464, 3404, 3405, 3406, 3408, 3409, 3410, 3414, 3421, 3412, - 3422, 3423, 3424, 3425, 3428, 3436, 3426, 5464, 3434, 3427, - 3438, 3448, 3442, 3444, 3437, 3450, 3439, 5464, 5464, 3454, - 5464, 3457, 3459, 3461, 5464, 3463, 3462, 3470, 3465, 3466, - 3469, 3473, 3479, 5464, 3474, 3468, 3483, 3480, 3485, 3486, - - 3490, 3491, 3492, 3493, 3494, 5464, 3495, 3497, 3505, 3496, - 3499, 3507, 3511, 3501, 5464, 3512, 3520, 3523, 3524, 3525, - 5464, 3526, 5464, 3527, 3528, 3531, 3530, 5464, 3534, 3538, - 3539, 3542, 3543, 3546, 3550, 3544, 3552, 3559, 3556, 3554, - 3558, 5464, 3557, 3560, 3564, 3568, 3570, 3571, 3579, 3575, - 3581, 3578, 3588, 3577, 3592, 3595, 3590, 3597, 3582, 3598, - 3608, 3601, 3600, 5464, 3603, 3611, 3613, 5464, 3604, 3605, - 3621, 3614, 3622, 3623, 3624, 3626, 5464, 3630, 3631, 3628, - 3629, 5464, 5464, 3644, 5464, 3645, 3635, 3637, 3636, 3646, - 3648, 3653, 3657, 3649, 3660, 3654, 3665, 3672, 3673, 3675, - - 3674, 3676, 3670, 5464, 5464, 3680, 3681, 3683, 3686, 3687, - 3689, 3691, 3699, 3695, 3697, 3703, 3705, 3712, 5464, 3704, - 3694, 3711, 5464, 3713, 3716, 3717, 3718, 3719, 3723, 3720, - 3726, 3727, 3722, 3729, 3728, 3730, 3732, 3739, 3735, 3743, - 3746, 5464, 3747, 3749, 3750, 3752, 3753, 3757, 3758, 3759, - 3760, 5464, 3763, 3765, 3767, 3772, 3766, 3773, 3782, 3788, - 3790, 3784, 3791, 3792, 3794, 3796, 3797, 5464, 3800, 3798, - 3801, 3762, 3808, 3810, 3811, 3813, 3814, 3816, 3819, 3823, - 3825, 3817, 3820, 3826, 5464, 3828, 3836, 3827, 3838, 3839, - 3841, 3840, 3848, 3851, 3842, 3844, 3852, 3854, 5464, 3855, - - 3856, 3858, 3862, 3868, 3863, 3865, 3869, 5464, 3877, 3870, - 3874, 3872, 3878, 3887, 3883, 3889, 3885, 5464, 3894, 3893, - 3895, 3896, 3897, 3899, 3902, 5464, 3903, 3909, 3901, 3917, - 3912, 3919, 3918, 3915, 3922, 3925, 3927, 3928, 3929, 3930, - 3932, 3939, 5464, 3931, 5464, 3941, 3945, 3948, 3952, 3947, - 5464, 3949, 3954, 3956, 3957, 3959, 5464, 3962, 3960, 3958, - 3963, 5464, 3977, 3966, 3964, 3978, 3982, 3985, 5464, 3988, - 3989, 3991, 3999, 4000, 3998, 3995, 4001, 4003, 4004, 4005, - 4006, 5464, 3979, 4008, 4013, 4014, 4016, 4010, 4017, 4023, - 4020, 5464, 4026, 4027, 4028, 4029, 4032, 4034, 4035, 4044, - - 4039, 4037, 5464, 4041, 4046, 4056, 4052, 4059, 5464, 5464, - 4049, 4064, 4066, 4042, 4070, 5464, 4058, 4073, 4072, 4075, - 4076, 5464, 5464, 4078, 5464, 4079, 5464, 4080, 5464, 5464, - 4081, 4082, 4083, 4090, 5464, 4092, 5464, 4093, 4095, 4098, - 4099, 4100, 5464, 4101, 4103, 4107, 5464, 4102, 4110, 4109, - 4113, 5464, 4117, 4112, 4118, 5464, 4122, 4125, 4129, 4130, - 4137, 4119, 4126, 4132, 4138, 4142, 4145, 4147, 4149, 4150, - 4151, 4153, 4155, 4158, 4159, 4157, 4160, 4164, 4166, 4168, - 4161, 4172, 4174, 4175, 4178, 4180, 4182, 4184, 4185, 4187, - 4188, 4189, 4190, 4191, 4194, 4197, 4199, 5464, 4198, 4196, - - 4202, 4205, 4206, 4210, 4217, 4224, 4227, 4228, 5464, 4230, - 5464, 4232, 4219, 4234, 4221, 5464, 4235, 4236, 4238, 4239, - 4241, 4242, 4243, 4246, 5464, 4249, 4244, 4256, 4252, 5464, - 4258, 4264, 4253, 4257, 4269, 4268, 4270, 4272, 4273, 4274, - 4278, 4280, 4287, 4282, 4284, 4285, 4286, 4292, 4294, 4296, - 4295, 4303, 4305, 4309, 5464, 4298, 5464, 4306, 4310, 4311, - 4313, 4316, 5464, 5464, 4319, 4320, 4322, 4325, 4324, 4327, - 4328, 5464, 4330, 4333, 4344, 4334, 5464, 4336, 4338, 4349, - 5464, 4341, 4351, 4346, 4355, 4352, 4359, 4361, 5464, 5464, - 5464, 5464, 4362, 4364, 4366, 4367, 4368, 4369, 4373, 4370, - - 5464, 5464, 5464, 4376, 4374, 4382, 4375, 4384, 4389, 5464, - 4390, 4391, 4393, 4392, 4395, 4400, 4401, 4404, 4402, 4406, - 4416, 4412, 4413, 4411, 4418, 4422, 4428, 5464, 5464, 4419, - 4430, 4431, 4439, 4435, 4436, 4443, 4442, 4444, 4445, 4447, - 4448, 4450, 4451, 5464, 4452, 4458, 5464, 4453, 5464, 4459, - 4466, 4460, 4467, 4468, 4470, 4472, 4474, 5464, 5464, 4469, - 4475, 4481, 4485, 4482, 4487, 4476, 4490, 4486, 5464, 4492, - 5464, 4493, 4494, 4503, 4510, 4512, 4509, 4511, 4515, 5464, - 4514, 4516, 5464, 4517, 4518, 4522, 5464, 4524, 4527, 4531, - 5464, 4534, 5464, 4536, 5464, 4528, 4544, 5464, 4539, 4540, - - 4546, 4550, 4551, 4542, 5464, 4547, 4553, 4556, 4561, 4558, - 4563, 4564, 4566, 4574, 4570, 4567, 5464, 5464, 4578, 4575, - 4576, 4579, 4581, 4589, 4584, 4586, 4592, 5464, 5464, 4588, - 5464, 4594, 4597, 5464, 4585, 4601, 4595, 4603, 4605, 4606, - 4607, 4615, 4611, 4616, 4628, 4617, 4619, 4631, 4633, 4637, - 4639, 4625, 4642, 4629, 4620, 4635, 4643, 4645, 5464, 4651, - 4652, 4648, 5464, 4654, 4657, 4659, 4656, 5464, 4660, 4662, - 5464, 4667, 4673, 4670, 4668, 4675, 4682, 4678, 4679, 5464, - 5464, 5464, 5464, 4684, 4680, 5464, 4686, 4687, 5464, 5464, - 4689, 4692, 4693, 5464, 4694, 5464, 4696, 5464, 4697, 4703, - - 4700, 5464, 4705, 4707, 5464, 4716, 4719, 4721, 4722, 4712, - 4723, 4724, 5464, 4733, 4725, 4734, 4736, 4726, 4728, 4738, - 4737, 4746, 4741, 4748, 5464, 4745, 4750, 4751, 5464, 4753, - 5464, 4754, 4756, 4757, 4759, 4758, 4760, 4762, 4772, 4763, - 4776, 4773, 5464, 4781, 4783, 5464, 4778, 5464, 4785, 4786, - 4787, 4788, 5464, 4791, 4794, 4795, 4796, 5464, 4797, 4805, - 5464, 4801, 4800, 4808, 4810, 4804, 4812, 4816, 4813, 4817, - 4820, 4821, 4827, 4834, 4828, 5464, 5464, 5464, 4823, 4830, - 4844, 4840, 4842, 4849, 4846, 5464, 4847, 4848, 4851, 4860, - 4855, 4857, 5464, 4859, 4861, 4862, 5464, 4866, 4868, 4869, - - 4863, 4876, 4879, 4883, 4885, 4886, 5464, 4888, 5464, 5464, - 4875, 5464, 4889, 4890, 4892, 5464, 4896, 4899, 4897, 4898, - 4901, 4902, 4903, 5464, 5464, 4905, 5464, 4910, 4906, 4922, - 4915, 4919, 4924, 5464, 4914, 4925, 4926, 4927, 4930, 5464, - 4932, 4928, 4933, 4935, 4938, 4941, 4942, 4937, 4943, 5464, - 5464, 4944, 4949, 5464, 5464, 4951, 4966, 4963, 5464, 5464, - 5464, 4969, 5464, 4971, 4975, 4979, 4974, 5464, 4981, 4982, - 4983, 5464, 4984, 4986, 5464, 5464, 4954, 4987, 4988, 5464, - 4990, 4992, 4993, 4996, 4999, 5002, 5004, 5006, 5011, 4952, - 5007, 5012, 5013, 5014, 5016, 5020, 5023, 5024, 5464, 5464, - - 5026, 5464, 5464, 5031, 5036, 5038, 5041, 5043, 5464, 5044, - 5046, 5028, 5464, 5050, 5047, 5051, 5054, 5052, 5057, 5464, - 5464, 5058, 5061, 5033, 5065, 5060, 5464, 5068, 5075, 5070, - 5072, 5073, 5079, 5074, 5464, 5080, 5464, 5464, 5464, 5464, - 5464, 5464, 5082, 5464, 5087, 5464, 5081, 5089, 5083, 5088, - 5464, 5091, 5094, 5096, 4497, 5098, 5099, 5106, 5107, 5109, - 5108, 5110, 5115, 5111, 5116, 5464, 5117, 5121, 5125, 5123, - 5128, 5138, 5140, 5133, 5141, 5142, 5143, 5144, 5146, 5147, - 5118, 5150, 5153, 5155, 5151, 5464, 5157, 5464, 5156, 5464, - 5464, 5159, 5165, 5160, 5163, 5175, 5183, 5167, 5176, 5178, - - 5180, 5464, 5184, 5185, 5186, 5464, 5187, 5188, 5191, 5192, - 5195, 5194, 5196, 5198, 5464, 5200, 5202, 5212, 5209, 5222, - 5219, 5223, 5224, 5225, 5215, 5232, 5231, 5238, 5464, 5235, - 5227, 5233, 5241, 5242, 5249, 5244, 5245, 5247, 5464, 5251, - 5253, 5252, 5254, 5255, 5256, 5266, 5259, 5268, 5464, 5270, - 5271, 5275, 5276, 5278, 5280, 5282, 5283, 5287, 5288, 5290, - 5298, 5284, 5299, 5295, 5300, 5301, 5464, 5304, 5307, 5464, - 5308, 5310, 5309, 5311, 5316, 5464, 5319, 5312, 5321, 5322, - 5325, 5327, 5464, 5333, 5336, 5337, 5464, 5338, 5464, 5464, - 5341, 5329, 5339, 5350, 5352, 5464, 5464, 5464, 5372, 5379, - - 5386, 5393, 5400, 88, 5407, 5414, 5421, 5428, 5435, 5442, - 5449, 5456 + 467, 476, 471, 479, 487, 474, 488, 490, 477, 492, + + 491, 495, 503, 493, 501, 502, 504, 505, 506, 507, + 509, 512, 510, 516, 513, 518, 520, 521, 523, 526, + 536, 532, 540, 533, 535, 542, 547, 552, 543, 560, + 544, 557, 564, 561, 565, 566, 567, 569, 570, 572, + 573, 575, 571, 577, 584, 586, 583, 587, 599, 589, + 594, 596, 597, 598, 601, 609, 602, 610, 615, 620, + 607, 618, 621, 613, 623, 624, 628, 630, 637, 633, + 640, 641, 642, 644, 645, 649, 656, 635, 651, 652, + 653, 657, 659, 660, 663, 661, 670, 664, 672, 668, + 683, 681, 674, 687, 676, 690, 688, 689, 695, 700, + + 691, 709, 702, 714, 715, 716, 718, 719, 721, 724, + 722, 725, 733, 730, 726, 734, 736, 743, 739, 741, + 750, 747, 753, 757, 749, 765, 761, 772, 769, 776, + 798, 755, 756, 767, 773, 5511, 788, 778, 822, 780, + 793, 806, 790, 783, 794, 803, 811, 808, 815, 816, + 810, 812, 829, 748, 828, 831, 832, 835, 839, 849, + 844, 846, 850, 853, 858, 855, 856, 859, 863, 857, + 865, 868, 869, 871, 870, 875, 885, 876, 878, 882, + 887, 888, 890, 892, 903, 896, 897, 913, 904, 909, + 914, 911, 917, 919, 921, 922, 923, 928, 930, 931, + + 926, 932, 933, 939, 940, 942, 943, 946, 945, 947, + 948, 955, 958, 951, 960, 961, 5511, 965, 968, 969, + 970, 971, 972, 5511, 974, 973, 976, 986, 978, 988, + 995, 983, 996, 1005, 998, 1003, 1008, 1001, 1009, 1010, + 1012, 1013, 1011, 1019, 1020, 1021, 1022, 1042, 1024, 1023, + 1027, 1028, 1029, 1035, 1046, 1040, 1049, 1036, 1057, 1059, + 1060, 1067, 1063, 1071, 1065, 1073, 1069, 1075, 1077, 1078, + 1079, 1080, 1082, 1081, 1088, 1089, 5511, 1093, 1094, 1105, + 1096, 1104, 1106, 1107, 1109, 1110, 1111, 1113, 1112, 1122, + 1117, 1129, 1120, 1133, 1131, 1134, 1135, 1136, 1139, 1138, + + 1145, 1140, 1148, 1146, 1153, 1158, 1166, 1163, 1168, 1171, + 1155, 1169, 1170, 1173, 1174, 1177, 1178, 1179, 1181, 1184, + 1191, 1186, 1187, 1189, 1193, 1201, 1198, 1196, 1204, 1197, + 1208, 1199, 1206, 1214, 1218, 1220, 1227, 1222, 1223, 1224, + 1225, 1233, 1229, 1237, 1238, 1239, 1240, 1241, 1243, 1246, + 1244, 1248, 1249, 1247, 1257, 1254, 1262, 1266, 1267, 1268, + 1270, 1277, 1273, 1280, 1276, 1282, 1289, 1281, 1285, 1290, + 1297, 1292, 1293, 1295, 1296, 1307, 1303, 1308, 1318, 1304, + 1306, 1319, 1316, 1320, 1323, 1324, 1325, 1326, 1327, 1328, + 1329, 1333, 1334, 1336, 1337, 1339, 1340, 1350, 1346, 1352, + + 1353, 1357, 1358, 1359, 1361, 1363, 1365, 1366, 1367, 1369, + 1370, 1371, 1378, 1374, 1375, 1385, 1386, 1387, 1388, 1391, + 1397, 1399, 1400, 1401, 1404, 1403, 1408, 1406, 1413, 1405, + 1414, 1415, 1419, 1421, 1422, 1426, 1429, 1432, 1427, 5511, + 1423, 1439, 1437, 1440, 1441, 1445, 1446, 1454, 1447, 1449, + 1450, 1451, 1452, 1462, 5511, 1458, 5511, 5511, 1460, 5511, + 5511, 1466, 1459, 1463, 1478, 1485, 1487, 1469, 1483, 1489, + 1490, 1497, 1511, 1493, 1495, 1496, 1492, 1499, 1505, 1500, + 1508, 1506, 1519, 1522, 1525, 1526, 1532, 1524, 1533, 1535, + 1537, 1540, 1538, 1541, 1543, 1547, 1544, 1548, 1550, 1549, + + 1551, 1554, 1569, 5511, 1555, 1570, 1573, 1572, 1580, 1575, + 1576, 1579, 1581, 1565, 1585, 1584, 1586, 1593, 1588, 1594, + 1601, 1596, 5511, 1598, 1599, 1604, 1603, 1610, 1606, 1600, + 1616, 1617, 1619, 1620, 1621, 1622, 1624, 5511, 1623, 1629, + 1626, 1631, 1632, 1637, 1638, 1633, 1640, 1642, 1644, 1643, + 1645, 1656, 1654, 1659, 1649, 1652, 1667, 1662, 1665, 1675, + 1669, 1672, 1677, 1678, 1679, 1680, 1688, 1685, 1690, 1683, + 1692, 1687, 1693, 1694, 1702, 1695, 1704, 1715, 1708, 1710, + 1713, 1723, 1718, 1720, 1721, 1722, 1725, 1729, 1730, 1731, + 1733, 1736, 1735, 1741, 5511, 1737, 1743, 5511, 1742, 1745, + + 1767, 1746, 1748, 1749, 1751, 1754, 1759, 1753, 1771, 1769, + 1773, 1781, 1777, 1782, 1784, 1789, 1790, 1792, 1793, 1796, + 1797, 1807, 1808, 1812, 1805, 1815, 1798, 1813, 1816, 1835, + 1817, 1818, 1819, 1825, 1821, 1826, 1830, 1828, 1827, 1839, + 1845, 1847, 5511, 1856, 1857, 1840, 1852, 1868, 1848, 1863, + 1864, 1866, 1867, 1876, 1869, 1871, 1872, 1874, 1879, 1880, + 1884, 1886, 1888, 1881, 1891, 5511, 1889, 5511, 1892, 1898, + 1901, 1899, 1903, 1902, 1904, 1907, 1910, 1914, 1924, 1922, + 1919, 5511, 1911, 1934, 1935, 1926, 1930, 1931, 1937, 1940, + 1941, 1948, 1938, 1949, 1947, 1945, 1952, 1954, 1946, 1960, + + 1963, 1961, 5511, 1964, 1967, 1969, 1977, 1979, 1972, 1974, + 1982, 1976, 1980, 1984, 1986, 1987, 1996, 1997, 1988, 1998, + 2001, 2008, 5511, 1995, 2005, 2015, 2011, 2007, 2012, 2014, + 2018, 2020, 2019, 2022, 2029, 2032, 2024, 2028, 2036, 2027, + 2038, 2041, 2044, 2042, 2045, 2043, 2047, 5511, 2048, 2050, + 124, 2051, 2055, 2056, 2058, 2057, 2074, 2059, 2075, 2077, + 2076, 2078, 2082, 2083, 2084, 2085, 2086, 2088, 1758, 2089, + 2091, 5511, 2093, 2094, 2095, 2096, 2099, 2100, 2109, 5511, + 2102, 2112, 2115, 2116, 2061, 2106, 2118, 2121, 2119, 2129, + 2131, 2132, 5511, 2136, 2139, 2140, 2133, 2141, 2143, 2148, + + 2137, 2149, 2150, 2154, 2155, 2156, 2159, 2158, 2160, 2161, + 2162, 2165, 2167, 2172, 2173, 5511, 2184, 2174, 2175, 2176, + 2185, 2186, 2195, 2191, 2193, 2199, 2200, 2213, 2202, 2197, + 2209, 2204, 2211, 2208, 2220, 2219, 2223, 2229, 2233, 2235, + 2225, 2231, 2237, 2227, 2239, 2241, 2242, 2254, 2256, 2252, + 2258, 2259, 2263, 2253, 2261, 5511, 2265, 2266, 2267, 2271, + 2284, 2270, 2282, 2274, 2286, 2289, 2290, 2291, 2293, 2296, + 2297, 2294, 2298, 2300, 2305, 2313, 2302, 2315, 2304, 5511, + 2318, 2319, 2320, 2323, 2326, 2328, 2329, 2331, 2332, 2333, + 2335, 2337, 2338, 2340, 2342, 2343, 2348, 5511, 2355, 2344, + + 2351, 2359, 2361, 2363, 2364, 2362, 2369, 2370, 2371, 5511, + 2378, 2379, 2376, 2388, 2374, 2385, 2386, 2390, 2387, 5511, + 2391, 2392, 2399, 2400, 2395, 5511, 2402, 2398, 2403, 2405, + 2406, 2408, 2409, 2413, 2414, 2416, 2419, 2422, 2425, 2427, + 5511, 2428, 2436, 2431, 2429, 2437, 2440, 2441, 2442, 2450, + 2444, 2451, 2459, 2462, 2452, 2461, 2443, 2464, 2467, 2468, + 2470, 2471, 5511, 2473, 2474, 2476, 2477, 2479, 2481, 2484, + 2495, 2485, 2488, 2490, 2493, 2496, 2498, 2500, 2502, 2501, + 2510, 2512, 2513, 2515, 2516, 2518, 2519, 2526, 2529, 2531, + 2533, 5511, 2536, 2537, 2538, 2525, 2540, 2527, 2544, 2545, + + 2548, 2549, 2550, 2552, 2553, 2562, 2564, 2559, 2569, 2565, + 2567, 2571, 2573, 2574, 2560, 2581, 2577, 2576, 2589, 2585, + 2587, 2596, 2588, 2591, 2595, 2597, 2598, 2599, 2600, 2605, + 2608, 2601, 2618, 2619, 2621, 2609, 2623, 2626, 2627, 5511, + 2630, 2628, 2631, 2634, 2637, 2640, 2642, 2644, 2649, 2638, + 2641, 2652, 2660, 2656, 5511, 2657, 5511, 2661, 2662, 2663, + 2671, 5511, 2669, 5511, 2670, 2677, 2674, 2678, 5511, 2680, + 2666, 2679, 2684, 2681, 2687, 2692, 2698, 2689, 2691, 2693, + 2700, 2695, 2705, 2702, 2704, 2711, 2712, 2713, 2716, 2719, + 2720, 2721, 2722, 5511, 2726, 2723, 2728, 2729, 2731, 2733, + + 2734, 2739, 2736, 2737, 2743, 2746, 2747, 2753, 2754, 2766, + 2750, 2768, 5511, 2761, 2764, 2765, 2771, 5511, 2769, 2772, + 2778, 2780, 2773, 2776, 2782, 2783, 2788, 2790, 2785, 2792, + 2799, 2801, 2791, 2803, 2804, 2809, 2813, 2811, 2814, 2817, + 2825, 2821, 2820, 2822, 2823, 2824, 2827, 2834, 2837, 2836, + 2838, 2835, 2843, 2846, 2847, 2839, 2849, 2850, 2851, 2853, + 2854, 2855, 2862, 2859, 2860, 2861, 2863, 5511, 2872, 2873, + 2876, 2877, 2874, 2882, 2864, 2883, 2885, 2887, 2890, 2886, + 2891, 5511, 2899, 5511, 2892, 2900, 2905, 2909, 2906, 2910, + 2912, 2915, 2916, 2920, 2921, 2922, 2923, 2924, 2927, 2931, + + 2929, 2936, 2945, 2932, 2934, 2937, 2942, 2948, 2949, 5511, + 2950, 2951, 2953, 2957, 2958, 2960, 2962, 2959, 2966, 2970, + 2972, 2980, 5511, 2978, 2982, 2981, 2986, 2989, 2988, 3000, + 2995, 5511, 2987, 2996, 3003, 2998, 3005, 5511, 3004, 5511, + 3002, 3006, 3009, 3013, 3015, 3016, 3018, 3019, 3026, 3023, + 3024, 3027, 3030, 3034, 3037, 3035, 3038, 5511, 3040, 3041, + 3042, 3043, 3050, 3052, 3053, 3054, 5511, 3058, 3060, 3063, + 3064, 3065, 3067, 3069, 3068, 3074, 3078, 3070, 3071, 3085, + 3080, 3081, 3087, 3095, 3097, 3102, 5511, 3098, 3096, 3110, + 3107, 3108, 3109, 3112, 3113, 3114, 3116, 3117, 3118, 3119, + + 3125, 3124, 3121, 3122, 3127, 3130, 3141, 3138, 3129, 3142, + 3072, 3143, 3146, 3151, 3152, 3155, 3157, 3149, 3159, 3170, + 3160, 3162, 3173, 3164, 3180, 3175, 5511, 3182, 3166, 3185, + 3177, 3186, 3188, 3190, 3198, 3193, 3194, 3195, 3203, 3196, + 5511, 3210, 3199, 3217, 3200, 3208, 3224, 3220, 3201, 3222, + 3226, 3227, 3230, 3228, 3232, 3233, 3236, 3237, 5511, 5511, + 3239, 3240, 5511, 3241, 3242, 3251, 3247, 3244, 3252, 3255, + 3259, 3256, 3260, 3258, 3264, 5511, 3266, 3275, 3270, 3272, + 3283, 3287, 3274, 3286, 3276, 3278, 3288, 3289, 3292, 3293, + 3294, 3296, 3305, 3302, 3300, 3304, 5511, 3303, 3306, 3312, + + 5511, 3309, 3310, 3313, 3317, 3330, 3331, 3321, 3334, 3318, + 3336, 3338, 3340, 3341, 3348, 3344, 3346, 3353, 3354, 3345, + 3347, 3357, 3365, 3368, 3372, 3375, 3370, 3371, 3379, 5511, + 3374, 3376, 3377, 3378, 3387, 3382, 3390, 3385, 5511, 3388, + 3391, 3393, 5511, 3392, 3401, 3406, 3408, 3394, 3415, 3411, + 3413, 3416, 3412, 5511, 3419, 5511, 3420, 3425, 3426, 5511, + 3428, 3429, 3430, 3432, 3433, 3434, 3438, 3445, 3436, 3446, + 3447, 3448, 3449, 3452, 3460, 3450, 5511, 3458, 3451, 3462, + 3472, 3466, 3468, 3461, 3474, 3463, 5511, 5511, 3478, 5511, + 3481, 3483, 3485, 5511, 3487, 3486, 3494, 3489, 3490, 3493, + + 3497, 3503, 5511, 3498, 3492, 3507, 3504, 3509, 3510, 3514, + 3515, 3516, 3517, 3518, 5511, 3519, 3521, 3529, 3520, 3523, + 3531, 3535, 3525, 5511, 3536, 3544, 3547, 3548, 3549, 5511, + 3550, 5511, 3551, 3552, 3555, 3554, 5511, 3561, 3558, 3567, + 3562, 3569, 3568, 3571, 3575, 3577, 3578, 3585, 3581, 3583, + 3582, 5511, 3584, 3587, 3592, 3593, 3589, 3597, 3605, 3602, + 3606, 3610, 3612, 3609, 3613, 3615, 3619, 3620, 3622, 3623, + 3631, 3627, 3633, 5511, 3634, 3635, 3637, 5511, 3638, 3639, + 3648, 3643, 3649, 3641, 3650, 3653, 5511, 3654, 3658, 3655, + 3669, 5511, 5511, 3656, 5511, 3665, 3663, 3672, 3652, 3673, + + 3679, 3676, 3681, 3683, 3684, 3689, 3690, 3697, 3698, 3699, + 3701, 3700, 3695, 5511, 5511, 3706, 3709, 3707, 3712, 3713, + 3717, 3718, 3725, 3721, 3722, 3728, 3732, 3739, 5511, 3730, + 3720, 3738, 5511, 3731, 3741, 3743, 3744, 3745, 3747, 3748, + 3752, 3749, 3754, 3755, 3757, 3758, 3761, 3762, 3763, 3768, + 3772, 5511, 3773, 3774, 3775, 3777, 3778, 3779, 3782, 3784, + 3785, 5511, 3789, 3788, 3792, 3797, 3791, 3799, 3807, 3814, + 3816, 3809, 3817, 3818, 3811, 3822, 3826, 5511, 3827, 3825, + 3828, 3829, 3834, 3836, 3837, 3839, 3840, 3843, 3844, 3847, + 3850, 3851, 3852, 3853, 3854, 5511, 3855, 3863, 3857, 3869, + + 3864, 3866, 3871, 3877, 3880, 3870, 3875, 3881, 3884, 5511, + 3885, 3886, 3887, 3888, 3895, 3891, 3896, 3897, 5511, 3899, + 3901, 3906, 3903, 3904, 3907, 3914, 3916, 3915, 5511, 3919, + 3920, 3922, 3924, 3926, 3929, 3928, 5511, 3932, 3936, 3938, + 3940, 3942, 3951, 3943, 3944, 3946, 3947, 3952, 3955, 3957, + 3954, 3971, 3958, 5511, 3960, 5511, 3967, 3972, 3981, 3977, + 3970, 5511, 3979, 3982, 3984, 3974, 3985, 5511, 3987, 3988, + 3991, 3993, 5511, 3997, 3996, 4002, 4003, 4008, 4009, 5511, + 4012, 4013, 4014, 4023, 4024, 4021, 4025, 4026, 4028, 4029, + 4030, 4031, 5511, 4033, 4035, 4042, 4045, 4044, 4034, 4047, + + 4056, 4046, 5511, 4052, 4048, 4058, 4060, 4061, 4062, 4064, + 4072, 4067, 4063, 5511, 4070, 4071, 4083, 4079, 4088, 5511, + 5511, 4075, 4084, 4091, 4080, 4092, 5511, 4095, 4102, 4097, + 4101, 4098, 5511, 5511, 4104, 5511, 4105, 5511, 4108, 5511, + 5511, 4110, 4111, 4112, 4113, 4120, 5511, 4125, 5511, 4127, + 4128, 4114, 4116, 4126, 5511, 4132, 4133, 4135, 5511, 4139, + 4142, 4140, 4141, 5511, 4144, 4146, 4149, 5511, 4152, 4155, + 4157, 4159, 4161, 4160, 4166, 4150, 4168, 4172, 4176, 4178, + 4182, 4179, 4169, 4183, 4185, 4188, 4189, 4190, 4192, 4194, + 4196, 4198, 4199, 4202, 4203, 4204, 4207, 4205, 4214, 4217, + + 4206, 4216, 4218, 4219, 4220, 4221, 4228, 4223, 4227, 5511, + 4229, 4230, 4233, 4241, 4235, 4240, 4246, 4254, 4258, 4259, + 5511, 4261, 5511, 4263, 4248, 3790, 4250, 5511, 4255, 4265, + 4267, 4268, 4270, 4271, 4272, 4273, 5511, 4277, 4278, 4284, + 4281, 5511, 4285, 4287, 4292, 4295, 4296, 4282, 4298, 4299, + 4302, 4301, 4305, 4307, 4314, 4309, 4311, 4312, 4319, 4315, + 4321, 4323, 4330, 4334, 4336, 4340, 5511, 4325, 5511, 4337, + 4329, 4322, 4345, 4343, 4347, 5511, 5511, 4349, 4351, 4353, + 4355, 4356, 4358, 4360, 5511, 4361, 4367, 4373, 4362, 5511, + 4359, 4365, 4378, 5511, 4368, 4382, 4383, 4387, 4384, 4388, + + 4391, 5511, 5511, 5511, 5511, 4392, 4394, 4395, 4396, 4397, + 4398, 4404, 4399, 5511, 5511, 5511, 4405, 4401, 4412, 4411, + 4413, 4418, 5511, 4420, 4422, 4423, 4421, 4425, 4430, 4431, + 4434, 4433, 4437, 4446, 4442, 4443, 4441, 4445, 4449, 4453, + 5511, 5511, 4454, 4458, 4459, 4466, 4463, 4464, 4476, 4471, + 4472, 4473, 4474, 4478, 4479, 4480, 5511, 4483, 4487, 5511, + 4481, 5511, 4491, 4494, 4485, 4495, 4497, 4498, 4500, 4502, + 5511, 5511, 4504, 4505, 4509, 4513, 4510, 4515, 4516, 4518, + 4514, 5511, 4519, 5511, 4520, 4522, 4536, 4527, 4538, 4543, + 4542, 4539, 4544, 5511, 4545, 4546, 5511, 4548, 4550, 4551, + + 5511, 4555, 4558, 4561, 5511, 4563, 5511, 4568, 5511, 4553, + 4571, 5511, 4569, 4574, 4577, 4579, 4580, 4572, 5511, 4581, + 4587, 4590, 4593, 4582, 4595, 4584, 4596, 4604, 4601, 4603, + 5511, 5511, 4612, 4605, 4588, 4609, 4613, 4620, 4615, 4617, + 4623, 5511, 5511, 4625, 5511, 4616, 4631, 5511, 4618, 4632, + 4627, 4633, 4636, 4626, 4637, 4642, 4639, 4647, 4662, 4648, + 4650, 4652, 4659, 4663, 4665, 4657, 4669, 4668, 4670, 4671, + 4672, 4675, 5511, 4677, 4678, 4679, 5511, 4683, 4684, 4686, + 4689, 5511, 4690, 4693, 4698, 5511, 4687, 4701, 4704, 4703, + 4706, 4715, 4710, 4711, 5511, 5511, 5511, 5511, 4717, 4713, + + 5511, 4718, 4722, 5511, 5511, 4719, 4724, 4725, 5511, 4726, + 5511, 4728, 5511, 4730, 4736, 4732, 5511, 4742, 4739, 5511, + 4751, 4753, 4755, 4748, 4746, 4756, 4758, 5511, 4765, 4762, + 4764, 4761, 4768, 4770, 4771, 4772, 4779, 4774, 4778, 5511, + 4781, 4780, 4782, 5511, 4784, 5511, 4785, 4788, 4789, 4787, + 4792, 4794, 4797, 4804, 4803, 4807, 4811, 5511, 4815, 4817, + 5511, 4810, 5511, 4819, 4812, 4820, 4821, 4822, 5511, 4824, + 4825, 4826, 4832, 5511, 4833, 4838, 5511, 4835, 4839, 4842, + 4844, 4846, 4848, 4850, 4853, 4855, 4856, 4857, 4863, 4869, + 4864, 5511, 5511, 5511, 4858, 4860, 4881, 4879, 4882, 4889, + + 4876, 5511, 4886, 4887, 4871, 4899, 4884, 4896, 5511, 4898, + 4888, 4900, 5511, 4904, 4906, 4908, 4910, 4911, 4915, 4918, + 4920, 4921, 5511, 4923, 5511, 5511, 4912, 5511, 4925, 4927, + 4928, 4929, 5511, 4933, 4934, 4935, 4936, 4938, 4939, 4941, + 5511, 5511, 4943, 5511, 4952, 4940, 4959, 4956, 4961, 4957, + 5511, 4963, 4965, 4966, 4967, 4968, 5511, 4969, 4970, 4972, + 4973, 4976, 4975, 4978, 4980, 4981, 5511, 5511, 4982, 4984, + 5511, 5511, 4988, 4999, 5000, 5511, 5511, 5511, 5006, 5511, + 5008, 5012, 5016, 5020, 5011, 5511, 5022, 5019, 5024, 5511, + 5023, 5026, 5511, 5511, 5027, 5029, 5030, 5511, 5031, 5032, + + 5035, 5040, 5043, 5044, 5046, 5048, 5053, 5056, 5054, 5055, + 5061, 5058, 5062, 5064, 5066, 5068, 5511, 5511, 5072, 5511, + 5511, 5075, 5077, 5081, 5085, 5087, 5089, 5091, 5511, 5069, + 5093, 5094, 5511, 5096, 5097, 5098, 5099, 5101, 5103, 5511, + 5511, 5104, 5105, 5106, 5117, 5107, 5511, 5120, 5115, 5113, + 5119, 5111, 5121, 5126, 5511, 5128, 5511, 5511, 5511, 5511, + 5511, 5511, 5511, 5511, 5131, 5511, 5136, 5511, 5129, 5133, + 5138, 5140, 5511, 5141, 5144, 5145, 5146, 5147, 5156, 4990, + 5149, 5151, 5159, 5153, 5161, 5160, 5163, 5511, 5165, 5167, + 5171, 5173, 5184, 5187, 5189, 5174, 5170, 5191, 5177, 5192, + + 5195, 5196, 5204, 5199, 5201, 5203, 5200, 5511, 5207, 5511, + 5205, 5511, 5511, 5209, 5214, 5210, 5206, 5230, 5232, 5217, + 5216, 5227, 5234, 5511, 5228, 5235, 5236, 5511, 5237, 5238, + 5239, 5241, 5242, 5244, 5245, 5247, 5511, 5251, 5253, 5260, + 5256, 5268, 5264, 5266, 5270, 5273, 5267, 5280, 5276, 5283, + 5511, 5284, 5277, 5285, 5279, 5287, 5295, 5290, 5291, 5293, + 5511, 5300, 5301, 5297, 5303, 5305, 5307, 5311, 5314, 5308, + 5511, 5315, 5316, 5318, 5325, 5327, 5329, 5323, 5331, 5333, + 5335, 5336, 5343, 5339, 5344, 5345, 5347, 5348, 5511, 5354, + 5349, 5511, 5355, 5356, 5357, 5358, 5362, 5511, 5366, 5359, + + 5369, 5370, 5373, 5374, 5511, 5380, 5383, 5384, 5511, 5385, + 5511, 5511, 5387, 5375, 5386, 5396, 5398, 5511, 5511, 5511, + 5419, 5426, 5433, 5440, 5447, 88, 5454, 5461, 5468, 5475, + 5482, 5489, 5496, 5503 } ; -static yyconst flex_int16_t yy_def[2813] = +static const flex_int16_t yy_def[2835] = { 0, - 2798, 1, 2799, 2799, 2800, 2800, 2801, 2801, 2802, 2802, - 2803, 2803, 2798, 2804, 2798, 2798, 2798, 2798, 2805, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2806, 2798, 2798, 2798, 2806, 2807, 2798, 2798, - 2798, 2807, 2808, 2798, 2798, 2798, 2798, 2808, 2809, 2798, - 2798, 2798, 2809, 2810, 2798, 2811, 2798, 2810, 2810, 2804, - 2804, 2798, 2812, 2805, 2812, 2805, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2806, - 2806, 2807, 2807, 2808, 2808, 2798, 2809, 2809, 2810, 2810, - 2811, 2811, 2810, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2810, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2810, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2810, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2810, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2798, 2798, 2804, 2798, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2810, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2810, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2798, - 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2798, 2798, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, 2804, - 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2798, 2804, 2798, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2798, 2798, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2804, 2798, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2798, 2798, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2798, 2798, 2804, 2798, 2804, 2798, 2804, 2798, 2798, - 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2798, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2798, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2798, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, - 2798, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2798, 2798, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2798, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2798, 2804, 2798, 2804, 2798, 2804, 2804, 2798, 2804, 2804, - - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, 2804, - 2798, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2798, 2798, 2798, 2804, 2804, 2798, 2804, 2804, 2798, 2798, - 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2798, 2804, 2804, - - 2804, 2798, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2798, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2798, 2804, 2798, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2798, 2798, 2798, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2798, - 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2798, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2798, 2804, 2804, 2798, 2798, 2804, 2804, 2804, 2798, 2798, - 2798, 2804, 2798, 2804, 2804, 2804, 2804, 2798, 2804, 2804, - 2804, 2798, 2804, 2804, 2798, 2798, 2804, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2798, - - 2804, 2798, 2798, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2798, - 2798, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2798, 2798, 2798, - 2798, 2798, 2804, 2798, 2804, 2798, 2804, 2804, 2804, 2804, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2798, 2804, 2798, - 2798, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - - 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804, - 2804, 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2798, - 2804, 2804, 2804, 2804, 2804, 2798, 2804, 2804, 2804, 2804, - 2804, 2804, 2798, 2804, 2804, 2804, 2798, 2804, 2798, 2798, - 2804, 2804, 2804, 2804, 2804, 2798, 2798, 0, 2798, 2798, - - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798 + 2820, 1, 2821, 2821, 2822, 2822, 2823, 2823, 2824, 2824, + 2825, 2825, 2820, 2826, 2820, 2820, 2820, 2820, 2827, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2828, 2820, 2820, 2820, 2828, 2829, 2820, 2820, + 2820, 2829, 2830, 2820, 2820, 2820, 2820, 2830, 2831, 2820, + 2820, 2820, 2831, 2832, 2820, 2833, 2820, 2832, 2832, 2826, + 2826, 2820, 2834, 2827, 2834, 2827, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2828, + 2828, 2829, 2829, 2830, 2830, 2820, 2831, 2831, 2832, 2832, + 2833, 2833, 2832, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2832, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2832, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2832, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2832, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2820, 2826, 2820, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2832, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2820, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2832, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, + 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2820, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2820, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2820, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, + 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2820, 2820, 2826, 2820, 2826, 2820, 2826, 2820, + 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, + 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2820, 2820, 2820, 2820, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2820, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2820, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2820, 2826, 2826, 2826, + + 2820, 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2820, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2820, 2826, 2820, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2820, 2820, 2820, 2826, 2826, + + 2820, 2826, 2826, 2820, 2820, 2826, 2826, 2826, 2820, 2826, + 2820, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2820, 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2820, 2826, 2820, 2820, 2826, 2820, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2826, + 2820, 2820, 2826, 2826, 2826, 2820, 2820, 2820, 2826, 2820, + 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, + 2826, 2826, 2820, 2820, 2826, 2826, 2826, 2820, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2820, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, + 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2826, 2820, 2826, 2820, 2826, 2826, + 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, + 2826, 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, + 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, + 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, + + 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, + 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 0, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820 } ; -static yyconst flex_uint16_t yy_nxt[5505] = +static const flex_int16_t yy_nxt[5552] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1407,562 +1404,567 @@ static yyconst flex_uint16_t yy_nxt[5505] = 276, 71, 71, 71, 71, 71, 277, 71, 71, 273, 283, 71, 284, 71, 285, 280, 289, 279, 281, 286, 71, 275, 282, 292, 71, 293, 294, 71, 290, 71, - 71, 287, 71, 288, 296, 298, 291, 71, 295, 299, - - 71, 71, 301, 71, 71, 303, 304, 297, 71, 302, - 305, 71, 71, 71, 71, 71, 71, 71, 300, 71, - 307, 71, 309, 71, 71, 71, 306, 311, 313, 71, - 71, 71, 71, 314, 312, 308, 318, 71, 71, 310, - 315, 322, 320, 71, 71, 316, 325, 71, 71, 71, - 317, 327, 71, 71, 321, 319, 71, 329, 146, 330, - 328, 323, 324, 71, 326, 71, 332, 331, 333, 71, - 334, 336, 71, 335, 71, 338, 71, 71, 71, 71, - 339, 71, 150, 71, 342, 71, 71, 71, 71, 145, - 349, 71, 347, 345, 343, 337, 71, 340, 350, 341, - - 71, 353, 344, 71, 71, 351, 346, 71, 352, 71, - 71, 348, 71, 71, 71, 360, 359, 71, 71, 363, - 361, 71, 358, 71, 354, 362, 355, 357, 356, 364, - 71, 71, 71, 71, 366, 71, 367, 71, 71, 71, - 71, 370, 71, 371, 373, 375, 71, 368, 365, 372, - 71, 71, 369, 71, 377, 376, 374, 71, 71, 380, - 71, 378, 71, 382, 71, 71, 383, 381, 71, 71, - 71, 387, 71, 71, 71, 388, 71, 71, 379, 71, - 390, 386, 384, 71, 392, 71, 385, 71, 394, 71, - 396, 389, 391, 71, 71, 393, 71, 397, 71, 395, - - 71, 398, 71, 71, 71, 483, 411, 405, 407, 71, - 71, 399, 416, 408, 400, 409, 412, 71, 406, 401, - 402, 403, 404, 71, 71, 413, 414, 415, 71, 71, - 71, 410, 71, 71, 417, 422, 71, 418, 420, 419, - 71, 421, 71, 424, 71, 423, 71, 71, 425, 426, - 429, 431, 71, 71, 71, 434, 71, 71, 427, 433, - 71, 71, 71, 71, 71, 435, 428, 430, 436, 447, - 440, 445, 71, 432, 437, 438, 71, 439, 446, 441, - 71, 71, 71, 448, 71, 71, 71, 71, 71, 449, - 71, 462, 442, 450, 71, 443, 460, 444, 501, 461, - - 71, 451, 71, 452, 464, 453, 458, 463, 459, 472, - 71, 474, 150, 71, 71, 479, 475, 71, 454, 473, - 476, 455, 71, 456, 71, 457, 71, 71, 465, 466, - 482, 480, 478, 477, 71, 71, 71, 71, 467, 71, - 468, 469, 470, 481, 486, 471, 71, 484, 485, 71, - 71, 71, 71, 495, 487, 71, 492, 489, 488, 490, - 494, 491, 71, 71, 493, 499, 71, 71, 71, 503, - 504, 71, 71, 502, 497, 496, 71, 498, 71, 71, - 71, 71, 509, 71, 71, 511, 71, 514, 512, 71, - 71, 71, 500, 71, 506, 507, 505, 508, 71, 71, - - 510, 71, 71, 513, 71, 516, 525, 517, 515, 71, - 520, 518, 519, 523, 524, 71, 527, 71, 71, 71, - 528, 521, 71, 522, 526, 529, 71, 71, 71, 533, - 530, 534, 531, 71, 71, 71, 537, 532, 535, 538, - 71, 71, 71, 71, 539, 71, 71, 536, 542, 71, - 71, 543, 71, 71, 71, 71, 540, 71, 544, 550, - 549, 71, 545, 541, 71, 551, 548, 71, 71, 71, - 554, 547, 546, 552, 71, 555, 71, 71, 71, 71, - 71, 71, 553, 71, 557, 71, 558, 565, 556, 567, - 71, 560, 143, 71, 566, 71, 71, 564, 559, 561, - - 563, 562, 71, 71, 569, 71, 572, 568, 574, 575, - 71, 570, 71, 71, 571, 71, 573, 71, 578, 71, - 71, 71, 71, 71, 577, 581, 71, 582, 584, 71, - 71, 71, 71, 576, 71, 583, 597, 71, 71, 579, - 580, 600, 585, 71, 71, 596, 141, 71, 586, 71, - 587, 595, 601, 598, 599, 588, 71, 589, 602, 71, - 604, 603, 71, 590, 71, 591, 606, 71, 592, 593, - 609, 605, 71, 71, 611, 594, 71, 607, 71, 610, - 608, 71, 613, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 619, 614, 71, 615, 626, 620, 624, 616, - - 623, 612, 71, 150, 617, 71, 622, 625, 618, 621, - 71, 71, 71, 71, 71, 71, 71, 627, 71, 633, - 635, 637, 71, 71, 71, 628, 630, 638, 631, 634, - 629, 636, 632, 71, 640, 71, 639, 71, 71, 71, - 71, 642, 71, 71, 71, 646, 71, 641, 645, 71, - 651, 643, 71, 647, 644, 652, 71, 654, 71, 71, - 648, 71, 650, 649, 656, 653, 655, 71, 657, 71, - 71, 658, 71, 659, 71, 71, 71, 661, 71, 71, - 660, 662, 71, 71, 667, 665, 664, 71, 666, 71, - 670, 71, 71, 669, 663, 671, 71, 71, 71, 675, - - 71, 71, 673, 71, 678, 71, 668, 71, 676, 679, - 672, 71, 682, 680, 677, 71, 71, 71, 674, 71, - 71, 684, 685, 71, 688, 681, 71, 71, 689, 690, - 71, 691, 71, 683, 686, 71, 71, 693, 687, 694, - 695, 71, 71, 71, 71, 71, 701, 71, 71, 699, - 71, 71, 71, 692, 71, 706, 698, 696, 71, 702, - 697, 71, 150, 705, 707, 700, 71, 703, 704, 708, - 71, 71, 711, 709, 71, 713, 710, 71, 715, 71, - 71, 71, 714, 716, 71, 71, 718, 71, 712, 71, - 717, 719, 71, 71, 71, 724, 71, 735, 722, 723, - - 720, 71, 721, 726, 71, 71, 71, 730, 728, 727, - 71, 733, 725, 71, 71, 732, 734, 71, 731, 71, - 71, 737, 71, 729, 71, 71, 739, 71, 71, 71, - 71, 71, 71, 71, 745, 71, 71, 71, 740, 736, - 746, 738, 71, 741, 71, 742, 71, 743, 747, 744, - 748, 750, 752, 753, 749, 71, 751, 71, 71, 71, - 754, 756, 758, 71, 71, 71, 71, 755, 71, 764, - 71, 71, 71, 71, 71, 765, 757, 71, 768, 71, - 71, 759, 760, 761, 763, 762, 148, 71, 767, 71, - 769, 766, 71, 771, 772, 71, 774, 773, 770, 71, - - 775, 71, 71, 71, 776, 71, 71, 71, 150, 778, - 71, 785, 779, 783, 781, 71, 71, 71, 784, 777, - 780, 71, 782, 71, 71, 71, 787, 791, 71, 71, - 786, 71, 792, 794, 71, 797, 788, 789, 795, 71, - 793, 71, 71, 71, 796, 790, 799, 71, 71, 71, - 803, 71, 71, 71, 71, 800, 71, 804, 805, 798, - 71, 71, 71, 146, 71, 71, 802, 817, 71, 809, - 806, 71, 801, 810, 808, 814, 811, 816, 807, 815, - 71, 818, 822, 812, 819, 71, 813, 71, 820, 71, - 821, 71, 71, 826, 71, 71, 145, 71, 71, 71, - - 834, 71, 71, 823, 838, 824, 839, 71, 71, 840, - 71, 841, 825, 71, 827, 828, 836, 829, 835, 837, - 830, 71, 843, 842, 71, 831, 71, 71, 71, 844, - 845, 832, 833, 846, 71, 71, 847, 71, 848, 71, - 71, 850, 71, 71, 854, 71, 71, 857, 853, 71, - 71, 71, 71, 71, 849, 862, 71, 71, 861, 851, - 855, 852, 865, 856, 859, 863, 866, 71, 858, 867, - 864, 71, 71, 860, 868, 71, 71, 71, 71, 869, - 71, 71, 71, 870, 71, 873, 871, 874, 71, 872, - 71, 875, 877, 71, 71, 880, 71, 71, 71, 878, - - 71, 71, 879, 884, 71, 71, 882, 876, 886, 883, - 71, 71, 71, 885, 71, 881, 887, 71, 890, 71, - 71, 71, 71, 71, 888, 895, 71, 71, 897, 891, - 893, 898, 71, 896, 71, 71, 71, 889, 892, 900, - 71, 71, 71, 902, 894, 71, 71, 71, 899, 907, - 71, 906, 71, 910, 71, 71, 901, 143, 904, 71, - 903, 905, 912, 911, 908, 71, 909, 71, 71, 914, - 71, 913, 71, 915, 71, 917, 918, 71, 71, 916, - 71, 920, 71, 71, 925, 927, 71, 929, 919, 71, - 71, 71, 71, 71, 921, 71, 926, 71, 922, 930, - - 71, 937, 923, 924, 932, 934, 928, 71, 931, 71, - 936, 71, 933, 71, 938, 71, 941, 71, 935, 943, - 71, 71, 71, 71, 71, 946, 150, 71, 940, 945, - 71, 939, 71, 949, 948, 71, 71, 942, 947, 944, - 71, 952, 71, 71, 71, 71, 71, 71, 964, 950, - 71, 967, 71, 71, 965, 951, 71, 955, 71, 953, - 966, 71, 969, 71, 956, 1125, 954, 957, 71, 71, - 971, 958, 71, 959, 972, 974, 970, 960, 968, 961, - 975, 71, 71, 71, 962, 71, 973, 977, 71, 963, - 71, 71, 71, 979, 71, 981, 976, 989, 71, 71, - - 978, 986, 71, 980, 985, 982, 987, 71, 984, 988, - 71, 990, 71, 983, 71, 71, 71, 71, 71, 71, - 71, 991, 71, 1002, 71, 71, 1005, 1001, 1007, 71, - 71, 1004, 71, 992, 993, 71, 994, 1006, 1003, 71, - 71, 995, 1027, 996, 1008, 1011, 71, 71, 1009, 997, - 1013, 1012, 71, 71, 998, 999, 71, 71, 1010, 1015, - 1014, 1000, 1017, 71, 71, 1016, 71, 71, 71, 1018, - 71, 1023, 1019, 71, 71, 1020, 1021, 71, 71, 1022, - 71, 71, 1024, 1026, 71, 71, 71, 71, 1028, 1025, - 1033, 1034, 71, 1030, 1031, 1032, 71, 71, 71, 71, - - 1029, 71, 71, 1035, 71, 71, 1036, 1041, 71, 1042, - 1043, 71, 71, 1045, 1040, 1046, 1037, 1038, 71, 1039, - 1044, 71, 1049, 71, 1048, 71, 1051, 1050, 71, 1052, - 71, 1047, 71, 1053, 71, 71, 71, 1054, 1059, 71, - 1061, 71, 71, 71, 71, 1062, 71, 1057, 1064, 71, - 71, 1058, 1055, 1056, 1065, 71, 71, 71, 71, 1060, - 1067, 1068, 1063, 71, 1070, 71, 1066, 1073, 71, 1069, - 71, 1072, 71, 71, 1074, 71, 71, 1075, 71, 1071, - 71, 1077, 71, 71, 71, 1081, 1083, 1084, 1076, 1085, - 1078, 71, 71, 71, 71, 1079, 1082, 71, 1088, 1086, - - 1080, 71, 1087, 71, 71, 1091, 1092, 71, 71, 1089, - 71, 71, 1093, 1095, 71, 71, 71, 1096, 71, 1100, - 71, 1090, 1101, 71, 71, 71, 1094, 1097, 71, 1103, - 1099, 1104, 71, 1098, 71, 1102, 1108, 71, 71, 71, - 71, 71, 1105, 71, 71, 1114, 71, 71, 1106, 1107, - 1110, 71, 71, 71, 71, 71, 1109, 71, 1111, 1118, - 1149, 1115, 1119, 1113, 1117, 1122, 1116, 1123, 1112, 1120, - 71, 71, 71, 71, 71, 1121, 71, 1124, 71, 1126, - 71, 71, 71, 71, 71, 1129, 71, 1135, 71, 71, - 1127, 1132, 1128, 71, 71, 71, 1130, 141, 1133, 71, - - 71, 1131, 71, 1136, 1146, 1134, 1139, 1141, 71, 1138, - 71, 1137, 71, 1145, 71, 1140, 1142, 1147, 1143, 71, - 71, 1144, 1148, 71, 71, 1152, 71, 71, 1151, 1154, - 1157, 71, 1150, 71, 71, 71, 71, 1155, 1158, 1159, - 71, 1161, 1153, 71, 1162, 71, 1156, 71, 71, 71, - 71, 71, 1163, 71, 71, 1160, 71, 71, 1169, 71, - 1164, 1167, 1165, 71, 71, 1168, 1170, 1166, 71, 1174, - 71, 71, 1171, 71, 1175, 1173, 1179, 1172, 71, 1178, - 71, 1181, 71, 71, 1176, 1180, 71, 71, 1177, 1185, - 71, 1183, 1184, 71, 1186, 71, 71, 1190, 1182, 71, - - 71, 1188, 1187, 1189, 71, 1199, 1197, 1278, 1198, 1191, - 71, 71, 1192, 1193, 71, 1200, 71, 1194, 1203, 1202, - 71, 1201, 71, 1195, 71, 1204, 71, 1196, 71, 1206, - 71, 1205, 71, 1207, 71, 71, 71, 1208, 71, 1209, - 71, 1213, 1210, 1216, 1212, 1217, 71, 71, 1211, 71, - 71, 71, 1214, 71, 71, 1218, 1220, 1219, 1215, 71, - 1225, 1221, 1226, 1222, 71, 1223, 71, 1224, 71, 1229, - 71, 71, 1228, 1232, 71, 71, 71, 1227, 1233, 71, - 1231, 1235, 71, 71, 71, 71, 71, 71, 1230, 1236, - 71, 1237, 1242, 1240, 71, 71, 1234, 71, 1248, 71, - - 1241, 71, 1238, 1239, 1243, 71, 1244, 1250, 71, 71, - 1247, 1251, 1245, 71, 71, 71, 1249, 1252, 1253, 71, - 1246, 1255, 71, 1257, 71, 71, 1258, 71, 71, 71, - 1262, 71, 1259, 71, 1254, 71, 71, 71, 1264, 1256, - 71, 1275, 1266, 71, 71, 71, 1268, 2798, 1269, 1260, - 1261, 71, 1267, 1263, 71, 71, 1265, 71, 71, 1270, - 1271, 71, 71, 1273, 71, 1272, 1274, 1280, 1277, 1276, - 1281, 71, 1283, 71, 71, 71, 71, 1279, 71, 1282, - 1284, 71, 1287, 71, 71, 71, 71, 1291, 71, 1292, - 71, 1294, 1286, 71, 1285, 71, 1293, 71, 71, 71, - - 71, 71, 1295, 71, 1288, 1289, 71, 1301, 1296, 1290, - 71, 1298, 71, 71, 1299, 71, 1306, 71, 1297, 1300, - 1305, 71, 71, 1302, 71, 71, 1308, 1310, 71, 71, - 1304, 71, 1311, 71, 1313, 1303, 1307, 1314, 71, 71, - 71, 1309, 1312, 1316, 1319, 1315, 71, 1320, 1321, 1323, - 71, 71, 71, 1317, 1322, 71, 1318, 71, 71, 71, - 71, 1324, 1325, 71, 1329, 1331, 71, 71, 71, 1326, - 71, 71, 1336, 71, 71, 71, 1328, 1337, 1327, 71, - 71, 1330, 1333, 1340, 71, 1334, 1332, 71, 1335, 71, - 71, 1341, 1338, 71, 1339, 71, 71, 71, 1343, 1342, - - 1347, 71, 1344, 1348, 71, 1345, 1349, 71, 1352, 71, - 71, 71, 1346, 1351, 71, 1350, 1354, 1357, 71, 1356, - 1358, 71, 1359, 71, 1353, 71, 71, 71, 1360, 1361, - 71, 71, 1355, 71, 1363, 1362, 1364, 71, 71, 71, - 1368, 71, 71, 71, 71, 1367, 71, 1365, 1371, 1374, - 1370, 1376, 1366, 71, 1375, 71, 1377, 71, 1372, 71, - 1379, 1369, 71, 71, 71, 1373, 71, 71, 71, 71, - 1386, 71, 71, 1378, 1387, 1382, 71, 71, 71, 1391, - 71, 1380, 1381, 1383, 1390, 71, 1385, 1384, 71, 71, - 71, 1389, 71, 71, 71, 71, 1392, 1388, 1400, 1393, - - 71, 1399, 1402, 71, 1396, 1401, 71, 1394, 1395, 1398, - 71, 1403, 71, 1397, 1404, 71, 71, 71, 71, 1408, - 71, 71, 71, 1409, 1406, 1405, 1411, 1415, 71, 1407, - 71, 71, 71, 1412, 71, 1416, 1410, 1417, 1414, 71, - 1413, 71, 71, 1418, 1423, 1419, 1424, 71, 71, 71, - 71, 1420, 1421, 71, 71, 1428, 71, 1429, 1427, 1430, - 71, 71, 1422, 71, 1431, 71, 1425, 1432, 71, 71, - 1426, 71, 1433, 71, 1435, 71, 1438, 71, 71, 71, - 71, 1434, 1437, 71, 1441, 71, 1442, 71, 71, 1436, - 71, 1446, 1439, 71, 71, 71, 1450, 71, 1443, 1440, - - 1448, 71, 1444, 1449, 71, 1451, 71, 1447, 1445, 71, - 1453, 71, 71, 71, 1452, 1456, 71, 1455, 1458, 1459, - 71, 71, 71, 71, 71, 71, 1454, 71, 1466, 71, - 1467, 1457, 71, 71, 1460, 1461, 71, 1464, 1470, 71, - 71, 1462, 1463, 71, 1471, 1473, 71, 71, 1475, 1465, - 71, 1474, 1468, 1469, 71, 1477, 1472, 1479, 71, 71, - 1476, 71, 71, 71, 1478, 1481, 1480, 1482, 71, 1484, - 71, 1485, 71, 71, 71, 71, 71, 1490, 1489, 71, - 71, 71, 71, 71, 1496, 1493, 1486, 1483, 1494, 1488, - 71, 1487, 1491, 71, 71, 2798, 71, 1524, 1497, 1492, - - 1495, 1499, 71, 1498, 1502, 1501, 1500, 71, 71, 1504, - 71, 1506, 1503, 71, 1505, 71, 71, 71, 71, 71, - 1507, 71, 71, 71, 1513, 1512, 1514, 1516, 1515, 1508, - 71, 71, 71, 71, 71, 71, 1509, 71, 1510, 1518, - 1520, 1511, 1519, 71, 71, 71, 71, 71, 71, 71, - 1528, 71, 71, 71, 1517, 1521, 71, 1533, 71, 1526, - 1525, 1527, 71, 71, 1522, 1523, 1531, 71, 1535, 1529, - 71, 1530, 71, 1536, 1532, 71, 71, 71, 71, 71, - 71, 1538, 1534, 71, 71, 1537, 1541, 1543, 1544, 71, - 2798, 1545, 71, 1542, 1540, 1550, 1551, 71, 1547, 1539, - - 1546, 1552, 71, 1548, 71, 71, 1555, 71, 1554, 71, - 71, 71, 71, 71, 1549, 71, 1553, 1558, 1559, 71, - 1566, 71, 1556, 71, 1561, 71, 71, 1560, 71, 1557, - 1563, 71, 1565, 1564, 1567, 71, 71, 71, 1562, 71, - 71, 1569, 71, 71, 1576, 1568, 71, 71, 71, 1570, - 1571, 1573, 71, 1572, 71, 1580, 1578, 1579, 71, 71, - 1575, 71, 1577, 71, 71, 1574, 1584, 1582, 1587, 1581, - 1583, 2798, 1590, 1588, 71, 1592, 71, 1589, 71, 1586, - 1585, 1593, 1591, 71, 1595, 71, 71, 71, 1594, 71, - 71, 1596, 1599, 71, 71, 71, 1601, 71, 71, 71, - - 71, 71, 1602, 1598, 71, 1603, 1597, 1600, 1606, 71, - 1607, 71, 71, 1612, 1604, 71, 71, 1608, 1605, 71, - 71, 71, 1609, 1618, 71, 1610, 1611, 71, 1613, 71, - 71, 1621, 71, 71, 71, 71, 1614, 1617, 1615, 1623, - 1616, 71, 71, 1619, 71, 71, 1624, 1625, 1620, 1626, - 71, 1630, 71, 1622, 1627, 71, 71, 1628, 71, 1634, - 71, 71, 71, 71, 71, 1629, 71, 71, 1632, 1636, - 71, 71, 71, 1641, 1631, 1635, 1637, 1633, 1638, 71, - 71, 1649, 1639, 1642, 1645, 71, 1644, 1640, 1643, 71, - 1647, 71, 1646, 71, 1650, 1651, 71, 71, 1648, 71, - - 71, 1653, 71, 71, 71, 1654, 71, 71, 71, 1652, - 71, 71, 71, 1659, 71, 71, 1663, 71, 71, 1660, - 71, 1664, 1669, 1655, 1657, 1658, 1656, 1661, 71, 1662, - 1668, 71, 71, 1667, 1665, 71, 71, 1666, 71, 71, - 1674, 1670, 71, 71, 1677, 1678, 71, 1679, 71, 1681, - 71, 1671, 1672, 71, 1682, 1673, 1675, 71, 1676, 1680, - 71, 1685, 71, 71, 1687, 71, 1689, 1686, 1688, 71, - 71, 1691, 71, 71, 1694, 71, 71, 71, 1683, 1693, - 1696, 1684, 71, 1695, 71, 71, 71, 1690, 71, 1703, - 71, 1705, 71, 71, 71, 71, 1706, 71, 1692, 71, - - 1697, 1698, 1699, 71, 1701, 1702, 1707, 1700, 1710, 71, - 1704, 1708, 1711, 71, 1709, 1714, 1715, 71, 71, 1713, - 71, 71, 1712, 71, 1717, 71, 71, 1720, 1721, 71, - 71, 1723, 71, 71, 71, 71, 1728, 71, 1727, 71, - 71, 1718, 1724, 1725, 71, 71, 1716, 1719, 71, 1731, - 1722, 71, 1730, 71, 1729, 71, 1726, 71, 1733, 1737, - 1736, 71, 1740, 71, 71, 71, 1741, 71, 71, 1735, - 1739, 71, 71, 71, 1732, 1742, 71, 1734, 1743, 71, - 1744, 1738, 71, 71, 1745, 1748, 1746, 71, 71, 1751, - 1752, 1747, 71, 71, 71, 71, 71, 71, 1755, 71, - - 71, 1749, 71, 71, 1761, 1764, 71, 71, 1754, 1762, - 71, 1765, 1753, 1750, 1756, 1757, 1758, 1759, 1760, 1763, - 71, 1768, 71, 71, 71, 71, 71, 71, 1774, 1786, - 1771, 1766, 71, 71, 71, 71, 1767, 1776, 1770, 1777, - 71, 71, 1778, 71, 1769, 71, 1772, 1773, 1775, 1779, - 1782, 71, 1783, 71, 1780, 1784, 1787, 71, 71, 1781, - 1785, 71, 71, 1790, 71, 71, 71, 71, 1795, 71, - 1789, 1792, 71, 1797, 71, 71, 1791, 1793, 71, 71, - 71, 71, 71, 1788, 71, 1802, 1801, 1798, 71, 1803, - 1799, 1794, 1804, 71, 1796, 1805, 71, 1807, 2798, 1800, - - 71, 71, 71, 71, 1806, 71, 1808, 1809, 71, 71, - 1811, 1810, 1813, 1812, 71, 71, 1815, 71, 71, 71, - 1819, 71, 71, 71, 1818, 71, 1814, 71, 1821, 1816, - 1817, 1820, 1822, 1823, 71, 71, 71, 71, 71, 71, - 71, 71, 1828, 1830, 1825, 1824, 1829, 71, 1832, 71, - 71, 71, 71, 1831, 1826, 71, 1827, 71, 1834, 1833, - 1835, 71, 1836, 71, 1837, 1841, 1842, 71, 1840, 1838, - 71, 1839, 71, 1843, 71, 71, 71, 1848, 71, 71, - 1850, 71, 71, 71, 1851, 1852, 71, 71, 1844, 1847, - 1845, 1846, 71, 71, 1854, 1849, 71, 1856, 71, 71, - - 1853, 1855, 1857, 71, 71, 71, 71, 71, 71, 71, - 71, 1859, 71, 1864, 71, 1860, 1861, 1868, 71, 1858, - 71, 1863, 1867, 1871, 71, 71, 1865, 1869, 1866, 1872, - 1874, 1862, 1870, 71, 1873, 1875, 71, 71, 71, 71, - 71, 71, 1877, 71, 71, 1878, 1882, 71, 1879, 1880, - 1885, 71, 71, 1881, 1876, 71, 71, 71, 1888, 71, - 1887, 1884, 1883, 71, 1889, 71, 1893, 71, 1890, 71, - 71, 71, 71, 71, 1894, 1891, 1899, 71, 1886, 1896, - 1895, 71, 1900, 71, 71, 1892, 1903, 1898, 71, 1897, - 71, 71, 71, 1904, 71, 71, 1905, 1915, 1901, 1906, - - 1908, 71, 1909, 71, 1902, 71, 1910, 1907, 71, 1911, - 71, 71, 1912, 71, 71, 1917, 71, 71, 71, 1913, - 1918, 71, 1914, 1919, 71, 1920, 71, 71, 1921, 1922, - 1924, 1923, 1916, 1926, 71, 71, 71, 71, 1925, 71, - 2798, 71, 71, 71, 71, 1927, 1934, 1935, 71, 71, - 71, 1930, 1929, 1928, 1931, 1932, 1933, 71, 71, 71, - 1943, 71, 71, 1936, 1938, 1940, 71, 71, 1942, 1945, - 71, 1939, 1948, 71, 1941, 1944, 1937, 1947, 71, 1950, - 1952, 1946, 1953, 71, 1951, 71, 71, 71, 71, 71, - 1954, 1949, 1957, 71, 71, 1958, 71, 1955, 1962, 71, - - 71, 1963, 71, 1956, 71, 1961, 1966, 71, 71, 1959, - 71, 1968, 71, 1967, 1964, 1969, 71, 71, 71, 1971, - 1960, 1972, 1965, 1970, 71, 71, 71, 1973, 1974, 71, - 71, 71, 71, 71, 1976, 71, 71, 1979, 1982, 71, - 71, 71, 71, 71, 1983, 71, 1978, 1985, 71, 1981, - 1984, 1975, 71, 1977, 1980, 1987, 71, 1989, 1992, 71, - 71, 1990, 71, 71, 1988, 71, 71, 1986, 1993, 2798, - 71, 71, 71, 71, 1991, 71, 71, 2003, 71, 71, - 71, 1994, 1995, 2004, 2000, 71, 71, 2021, 1996, 1998, - 1997, 2002, 1999, 2006, 2001, 71, 2008, 71, 2005, 2007, - - 2009, 71, 2010, 71, 71, 71, 2013, 71, 2016, 71, - 71, 71, 2011, 71, 71, 2017, 2014, 2012, 2018, 2015, - 2022, 71, 2023, 71, 71, 2025, 71, 71, 2027, 71, - 71, 2019, 71, 71, 2020, 2029, 71, 2030, 71, 71, - 71, 71, 2032, 2024, 2031, 2026, 2034, 2028, 2035, 71, - 2037, 71, 71, 71, 71, 71, 2040, 71, 2033, 2036, - 2039, 71, 2041, 2043, 71, 71, 2047, 71, 71, 71, - 2038, 71, 2045, 2798, 2044, 71, 71, 2042, 71, 2051, - 2052, 71, 71, 71, 2046, 71, 2050, 71, 2048, 2056, - 71, 71, 2049, 2054, 2058, 2053, 71, 2055, 71, 2059, - - 71, 2061, 71, 2057, 2063, 2062, 71, 71, 71, 71, - 71, 2066, 71, 2067, 71, 71, 71, 2060, 2064, 2065, - 2071, 2072, 71, 2069, 2075, 71, 2077, 2073, 71, 2074, - 71, 71, 71, 2070, 2068, 71, 2078, 2798, 71, 2086, - 71, 71, 71, 71, 71, 71, 2076, 2081, 2080, 2082, - 2083, 2084, 71, 2079, 71, 2091, 2087, 2085, 71, 2090, - 71, 71, 71, 2089, 2088, 71, 2092, 71, 2098, 71, - 71, 71, 71, 71, 2093, 71, 71, 71, 2096, 71, - 2094, 2100, 2095, 2097, 2106, 2099, 2103, 2101, 2104, 2102, - 71, 71, 71, 2105, 2109, 71, 2123, 2107, 71, 2110, - - 2111, 71, 71, 2108, 71, 2112, 2114, 2115, 71, 2113, - 2116, 71, 71, 71, 71, 2118, 71, 71, 71, 71, - 2122, 71, 2117, 71, 2124, 2125, 71, 71, 2119, 71, - 71, 2120, 2126, 71, 2129, 2130, 71, 2121, 2127, 71, - 71, 71, 71, 2128, 2132, 71, 2131, 71, 71, 2136, - 71, 2139, 71, 2138, 71, 71, 2135, 71, 2140, 71, - 2133, 2134, 71, 2144, 2143, 71, 2798, 2137, 2141, 71, - 2142, 71, 71, 2145, 2146, 2152, 2147, 71, 2148, 71, - 2153, 2150, 2149, 71, 2151, 71, 71, 2155, 71, 71, - 2157, 71, 71, 71, 71, 71, 71, 2154, 2156, 2160, - - 2165, 2162, 2163, 71, 2164, 71, 71, 2159, 71, 2166, - 2158, 71, 71, 71, 71, 71, 71, 2174, 2169, 2172, - 71, 2161, 71, 71, 2173, 71, 71, 2167, 2171, 2177, - 71, 71, 71, 2170, 2168, 71, 2180, 2181, 71, 71, - 2175, 2176, 71, 71, 2178, 71, 2185, 2182, 2183, 2179, - 71, 71, 2184, 2186, 2189, 71, 2188, 2190, 71, 2191, - 71, 2192, 71, 71, 71, 2187, 71, 2195, 71, 2196, - 71, 71, 71, 71, 71, 2193, 2201, 71, 2202, 71, - 2203, 71, 2194, 2197, 2198, 71, 2204, 71, 71, 2200, - 2199, 71, 2205, 71, 2210, 71, 2208, 71, 71, 2206, - - 71, 71, 71, 71, 71, 2217, 2211, 71, 2207, 71, - 71, 71, 71, 2209, 2214, 71, 2218, 2216, 71, 71, - 2213, 2224, 2798, 71, 2212, 2219, 2215, 2220, 2226, 2221, - 71, 2222, 71, 2225, 71, 2227, 2228, 71, 2223, 2229, - 71, 71, 2230, 71, 2231, 71, 2232, 71, 71, 71, - 2233, 71, 71, 2235, 71, 71, 71, 71, 2234, 71, - 2243, 2244, 71, 2240, 2247, 71, 71, 2237, 2236, 71, - 71, 71, 2239, 2238, 2242, 2241, 2249, 71, 2246, 2245, - 2248, 71, 71, 71, 2250, 71, 71, 71, 2251, 2252, - 2258, 71, 2259, 71, 2260, 71, 2253, 71, 71, 71, - - 71, 2254, 2256, 2255, 2264, 71, 2257, 71, 71, 71, - 2268, 71, 2262, 2261, 2267, 2269, 71, 2263, 71, 71, - 2270, 2271, 71, 71, 71, 2265, 71, 2266, 2273, 71, - 2272, 2276, 71, 71, 2280, 71, 2279, 71, 71, 2283, - 71, 71, 2274, 71, 2275, 2284, 71, 71, 2277, 71, - 2286, 71, 2278, 2281, 71, 2282, 2287, 71, 2285, 71, - 2288, 2291, 71, 2293, 71, 71, 2292, 2295, 71, 2289, - 2296, 2290, 71, 2298, 71, 71, 2299, 71, 2294, 71, - 71, 71, 71, 71, 2297, 2305, 71, 71, 71, 71, - 2303, 2304, 2301, 2302, 2307, 71, 2310, 71, 2306, 2300, - - 2309, 2308, 71, 71, 71, 71, 71, 2317, 71, 2314, - 2312, 2315, 2318, 71, 71, 71, 2311, 71, 2313, 71, - 2316, 2319, 2320, 2323, 71, 71, 71, 2325, 2798, 71, - 2324, 71, 71, 2321, 2328, 71, 2327, 2322, 2798, 2326, - 2329, 71, 2331, 71, 71, 2330, 2333, 2332, 71, 71, - 2337, 2334, 71, 2335, 2336, 71, 71, 71, 71, 2338, - 71, 71, 2339, 71, 71, 71, 71, 2340, 2343, 2342, - 2345, 71, 71, 71, 2346, 2341, 2344, 2348, 2347, 71, - 71, 71, 71, 71, 2349, 71, 2354, 71, 71, 71, - 2352, 2350, 2353, 2351, 71, 71, 2355, 2359, 71, 71, - - 71, 2356, 2363, 71, 2362, 71, 71, 71, 2357, 2361, - 71, 2367, 2674, 2358, 2360, 2368, 71, 2369, 2364, 2370, - 2365, 2371, 71, 71, 71, 71, 2366, 71, 71, 71, - 71, 71, 2372, 2373, 2376, 71, 2374, 71, 2379, 2380, - 71, 71, 2375, 2381, 71, 2377, 2382, 71, 2383, 71, - 2378, 2385, 71, 71, 2388, 71, 2386, 71, 2389, 71, - 71, 2384, 2390, 71, 71, 2394, 71, 2391, 2392, 71, - 2395, 71, 2387, 2396, 71, 2398, 71, 71, 2393, 71, - 71, 2401, 2402, 71, 2403, 2404, 2397, 71, 71, 71, - 2405, 71, 71, 2400, 71, 2399, 2410, 71, 71, 71, - - 2409, 71, 71, 2412, 2413, 71, 2414, 71, 71, 2407, - 71, 2406, 2408, 2416, 71, 2415, 71, 2418, 71, 71, - 71, 2421, 2411, 2417, 71, 2419, 2420, 2425, 71, 71, - 71, 2431, 71, 71, 2424, 2428, 2422, 2427, 71, 2423, - 2429, 71, 71, 2426, 71, 2432, 71, 2433, 71, 2430, - 71, 2434, 71, 2435, 2436, 71, 71, 2440, 71, 2439, - 2437, 71, 2438, 2443, 71, 71, 2446, 71, 2444, 71, - 71, 2448, 71, 71, 2449, 71, 2441, 2447, 2442, 2445, - 71, 71, 2450, 71, 2451, 2453, 71, 2454, 71, 2457, - 2455, 71, 71, 71, 2458, 71, 2461, 71, 2452, 71, - - 71, 2460, 71, 2456, 2459, 71, 71, 71, 2463, 71, - 71, 2462, 2464, 71, 2466, 2470, 71, 2471, 71, 2468, - 71, 2474, 2472, 2473, 2475, 71, 2467, 2465, 2476, 71, - 2469, 2477, 71, 2478, 71, 71, 71, 71, 71, 71, - 2483, 71, 2482, 2484, 2479, 2480, 71, 71, 2486, 71, - 71, 71, 2485, 2491, 71, 2481, 2489, 2487, 71, 71, - 2493, 71, 2488, 71, 71, 2497, 71, 71, 2490, 71, - 71, 71, 71, 71, 2500, 71, 71, 2494, 2495, 2492, - 2498, 2501, 2499, 2504, 2496, 71, 71, 2502, 2507, 71, - 2505, 71, 2503, 2509, 71, 2510, 71, 2512, 71, 71, - - 71, 71, 2506, 2516, 71, 2508, 2515, 71, 71, 71, - 71, 2520, 2511, 71, 71, 2513, 2514, 71, 71, 2522, - 2524, 71, 2525, 71, 2527, 71, 71, 2517, 2519, 71, - 71, 2518, 2521, 71, 71, 2523, 71, 2526, 2529, 2534, - 71, 71, 2536, 71, 2528, 2532, 2530, 71, 2537, 2531, - 2535, 2539, 2540, 71, 2533, 71, 2542, 71, 2541, 71, - 71, 71, 71, 2538, 71, 2544, 2545, 2547, 71, 2550, - 71, 2551, 71, 71, 71, 71, 71, 2543, 2554, 71, - 2555, 71, 71, 2546, 2553, 2548, 2549, 2556, 71, 71, - 2557, 2559, 71, 2552, 2558, 2560, 71, 2561, 71, 71, - - 2563, 71, 71, 71, 2562, 71, 2567, 2564, 2568, 71, - 71, 71, 71, 2572, 71, 71, 71, 2575, 71, 71, - 2571, 2574, 2576, 71, 2565, 2566, 2569, 71, 71, 2578, - 2570, 2580, 71, 2577, 2573, 71, 2579, 71, 71, 71, - 71, 71, 2581, 71, 2584, 71, 71, 2582, 71, 2586, - 71, 71, 2585, 2587, 71, 71, 71, 71, 2583, 2628, - 2588, 2596, 71, 2599, 71, 71, 2589, 71, 2590, 2591, - 2592, 2595, 2593, 2594, 2614, 2598, 71, 2597, 2600, 71, - 2601, 2602, 71, 2603, 71, 2604, 2605, 71, 71, 2606, - 2607, 2608, 71, 2609, 71, 71, 71, 71, 2613, 71, - - 71, 71, 2612, 71, 2615, 71, 71, 2619, 2620, 71, - 2611, 2621, 71, 2610, 2618, 71, 2616, 71, 2626, 71, - 71, 2617, 2623, 2627, 71, 71, 71, 71, 2624, 71, - 2622, 2625, 2632, 71, 2633, 2635, 71, 71, 2637, 71, - 2630, 71, 2636, 2638, 71, 2629, 71, 2631, 2639, 71, - 2640, 71, 2634, 2641, 71, 2642, 71, 71, 2644, 71, - 71, 2645, 2646, 71, 71, 71, 2643, 71, 2649, 2651, - 71, 71, 2654, 71, 71, 2647, 2648, 2653, 71, 2655, - 2650, 71, 2658, 71, 2657, 71, 71, 71, 71, 2652, - 2660, 2656, 71, 71, 71, 71, 71, 2659, 2665, 2666, - - 71, 71, 71, 2663, 71, 2661, 2668, 71, 2664, 71, - 2662, 71, 71, 2676, 2673, 2670, 2669, 2667, 2672, 71, - 71, 71, 71, 71, 71, 2699, 2675, 2671, 71, 71, - 71, 71, 2677, 2686, 71, 2688, 71, 2680, 71, 2678, - 2679, 71, 2689, 2682, 2685, 2683, 71, 2687, 2681, 2684, - 2690, 71, 2691, 71, 71, 71, 71, 71, 2694, 71, - 71, 2695, 2696, 71, 71, 2692, 71, 2702, 71, 71, - 71, 2706, 71, 71, 2693, 2698, 71, 2700, 71, 2707, - 71, 2708, 2710, 2703, 2697, 2704, 2701, 2705, 71, 71, - 2711, 71, 2715, 71, 2712, 2709, 71, 71, 71, 71, - - 71, 71, 2713, 2718, 71, 71, 2720, 71, 71, 71, - 2714, 71, 2717, 71, 2725, 71, 2726, 2716, 2722, 2798, - 2719, 2723, 71, 2721, 2729, 71, 2724, 2730, 71, 2731, - 2798, 2727, 71, 2732, 2728, 71, 71, 71, 71, 2737, - 71, 2733, 2734, 2735, 71, 71, 71, 2736, 71, 2738, - 2739, 71, 2740, 2742, 71, 71, 2745, 71, 71, 2741, - 71, 2748, 71, 2749, 71, 71, 71, 71, 71, 71, - 2752, 2747, 71, 2743, 2744, 2750, 2746, 2757, 2751, 71, - 2756, 71, 2755, 71, 71, 2760, 2753, 2754, 71, 71, - 2762, 71, 2763, 71, 2758, 71, 71, 71, 2764, 2767, - - 71, 71, 2765, 71, 2771, 2769, 2768, 2761, 71, 2759, - 2770, 71, 71, 71, 71, 2766, 2776, 71, 2774, 2772, - 71, 71, 71, 71, 71, 71, 2778, 2773, 2779, 71, - 2782, 2783, 71, 2775, 71, 71, 2786, 2787, 71, 2777, - 71, 2780, 71, 2781, 2784, 2789, 71, 2788, 2790, 71, - 71, 71, 71, 2785, 71, 2798, 2792, 2791, 2798, 2793, - 2798, 2794, 2796, 71, 2797, 71, 2798, 2798, 2798, 2798, - 2798, 2795, 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, 2798, - 74, 74, 74, 74, 140, 140, 2798, 2798, 2798, 140, - 140, 142, 142, 2798, 2798, 142, 2798, 142, 144, 2798, - 2798, 2798, 2798, 2798, 144, 147, 147, 2798, 2798, 2798, - 147, 147, 149, 2798, 2798, 2798, 2798, 2798, 149, 151, - 151, 2798, 151, 151, 151, 151, 75, 75, 2798, 75, - 75, 75, 75, 13, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - - 2798, 2798, 2798, 2798 + 71, 287, 71, 288, 296, 298, 291, 299, 295, 302, + + 71, 71, 304, 71, 71, 71, 71, 297, 71, 303, + 305, 301, 300, 306, 71, 71, 71, 71, 71, 71, + 71, 308, 71, 71, 310, 71, 71, 307, 312, 71, + 314, 71, 315, 71, 71, 313, 71, 309, 319, 71, + 321, 311, 317, 323, 316, 71, 71, 326, 71, 71, + 328, 318, 320, 71, 330, 71, 71, 71, 146, 331, + 71, 322, 329, 324, 325, 71, 327, 333, 337, 334, + 71, 335, 339, 71, 71, 332, 336, 71, 71, 71, + 71, 340, 71, 150, 71, 71, 71, 343, 71, 348, + 71, 350, 338, 351, 346, 344, 71, 71, 341, 71, + + 71, 352, 71, 342, 345, 353, 354, 71, 347, 71, + 71, 71, 71, 349, 71, 71, 361, 355, 362, 359, + 71, 356, 71, 71, 358, 363, 71, 357, 71, 364, + 365, 71, 367, 71, 71, 368, 71, 71, 366, 360, + 371, 71, 369, 71, 374, 372, 71, 376, 71, 378, + 71, 370, 373, 71, 71, 71, 377, 71, 71, 381, + 375, 379, 71, 383, 71, 71, 71, 382, 384, 71, + 71, 388, 71, 71, 71, 389, 71, 71, 380, 387, + 391, 71, 385, 71, 393, 71, 386, 71, 395, 71, + 397, 390, 392, 396, 71, 394, 71, 398, 406, 399, + + 71, 71, 71, 71, 71, 409, 408, 410, 71, 400, + 145, 412, 401, 71, 417, 71, 414, 402, 403, 404, + 405, 407, 71, 411, 415, 416, 413, 71, 71, 71, + 418, 71, 71, 424, 71, 71, 426, 71, 71, 71, + 422, 423, 425, 71, 421, 419, 71, 71, 420, 71, + 433, 428, 71, 427, 71, 429, 71, 436, 430, 435, + 71, 71, 71, 71, 432, 437, 71, 431, 71, 71, + 71, 438, 434, 440, 71, 441, 442, 439, 71, 448, + 71, 443, 71, 447, 490, 71, 71, 449, 460, 71, + 461, 71, 450, 71, 444, 462, 150, 445, 451, 446, + + 463, 71, 452, 71, 464, 466, 71, 71, 474, 478, + 453, 71, 454, 476, 455, 475, 71, 479, 477, 71, + 465, 71, 484, 71, 71, 71, 480, 456, 71, 71, + 457, 481, 458, 482, 459, 71, 488, 467, 468, 487, + 483, 71, 71, 486, 71, 71, 489, 469, 71, 470, + 471, 472, 71, 494, 473, 485, 496, 71, 497, 71, + 493, 491, 71, 71, 492, 501, 71, 495, 71, 71, + 71, 71, 71, 505, 506, 499, 71, 504, 71, 498, + 500, 71, 71, 71, 71, 503, 511, 513, 71, 71, + 507, 71, 514, 502, 508, 71, 510, 509, 71, 516, + + 71, 71, 143, 71, 512, 71, 518, 515, 517, 71, + 71, 519, 522, 527, 525, 521, 71, 71, 520, 528, + 529, 526, 71, 523, 71, 524, 71, 71, 531, 533, + 71, 532, 71, 535, 71, 71, 71, 540, 530, 71, + 537, 71, 539, 71, 71, 71, 71, 536, 541, 538, + 534, 544, 71, 71, 542, 71, 71, 545, 71, 71, + 71, 71, 546, 551, 71, 552, 543, 547, 71, 555, + 550, 71, 554, 71, 71, 557, 548, 549, 71, 558, + 553, 71, 71, 71, 71, 71, 71, 71, 141, 71, + 560, 71, 561, 568, 556, 570, 71, 563, 71, 71, + + 569, 71, 559, 567, 562, 564, 566, 565, 71, 71, + 572, 71, 575, 571, 71, 578, 71, 573, 71, 577, + 574, 71, 71, 71, 71, 71, 71, 581, 580, 585, + 584, 576, 71, 71, 71, 71, 71, 71, 587, 579, + 71, 71, 71, 150, 600, 582, 583, 586, 71, 71, + 588, 599, 603, 71, 589, 71, 590, 598, 602, 71, + 601, 591, 71, 592, 604, 607, 609, 606, 605, 593, + 71, 594, 71, 71, 595, 596, 71, 610, 71, 608, + 71, 597, 71, 612, 71, 614, 71, 616, 71, 611, + 71, 71, 71, 71, 71, 71, 613, 617, 622, 148, + + 618, 71, 71, 615, 623, 619, 71, 150, 626, 71, + 620, 628, 629, 624, 621, 627, 625, 71, 71, 71, + 71, 630, 71, 71, 71, 71, 71, 638, 636, 640, + 71, 146, 631, 71, 633, 71, 641, 634, 632, 637, + 643, 635, 71, 639, 71, 642, 71, 71, 71, 71, + 645, 71, 71, 71, 649, 654, 644, 648, 71, 71, + 655, 71, 646, 145, 647, 657, 71, 650, 71, 653, + 658, 71, 656, 659, 651, 660, 71, 652, 662, 71, + 661, 71, 71, 71, 71, 664, 71, 71, 665, 663, + 71, 71, 71, 668, 71, 667, 669, 71, 673, 71, + + 71, 672, 71, 674, 71, 666, 71, 676, 678, 71, + 71, 71, 71, 671, 71, 670, 679, 71, 675, 71, + 681, 71, 685, 680, 687, 682, 677, 71, 684, 683, + 686, 71, 688, 71, 691, 71, 71, 71, 71, 693, + 71, 694, 71, 696, 692, 689, 71, 698, 690, 697, + 71, 71, 71, 71, 71, 704, 71, 71, 702, 71, + 71, 71, 71, 695, 710, 701, 699, 71, 705, 700, + 71, 708, 709, 711, 703, 71, 706, 707, 712, 71, + 71, 71, 713, 71, 717, 714, 71, 719, 143, 71, + 71, 718, 720, 71, 71, 71, 722, 716, 71, 715, + + 721, 723, 71, 71, 728, 71, 71, 724, 71, 71, + 71, 725, 732, 731, 734, 730, 71, 71, 739, 71, + 71, 71, 726, 727, 729, 737, 736, 733, 735, 71, + 738, 71, 71, 71, 741, 743, 71, 71, 71, 71, + 71, 71, 71, 141, 740, 749, 71, 71, 742, 71, + 71, 750, 71, 71, 744, 745, 746, 757, 747, 71, + 748, 751, 752, 71, 755, 71, 71, 753, 756, 754, + 71, 71, 71, 758, 71, 762, 71, 759, 71, 71, + 71, 768, 71, 71, 71, 760, 769, 71, 71, 761, + 763, 71, 764, 767, 765, 771, 772, 766, 71, 71, + + 71, 71, 770, 773, 71, 777, 776, 774, 778, 779, + 71, 775, 71, 71, 71, 780, 71, 71, 71, 150, + 782, 71, 789, 783, 787, 785, 71, 71, 71, 788, + 781, 784, 71, 786, 71, 71, 71, 791, 795, 71, + 71, 790, 71, 796, 798, 71, 801, 792, 793, 799, + 71, 797, 71, 71, 71, 800, 794, 803, 71, 71, + 71, 807, 71, 71, 71, 71, 804, 71, 808, 809, + 802, 71, 71, 71, 71, 71, 71, 806, 821, 71, + 813, 810, 71, 805, 814, 812, 818, 815, 820, 811, + 819, 71, 822, 826, 816, 823, 71, 817, 71, 824, + + 71, 825, 71, 71, 830, 71, 71, 2820, 71, 71, + 71, 838, 71, 71, 827, 842, 828, 843, 71, 71, + 844, 71, 845, 829, 71, 831, 832, 840, 833, 839, + 841, 834, 71, 847, 846, 71, 835, 71, 71, 71, + 848, 849, 836, 837, 850, 71, 71, 851, 71, 852, + 71, 71, 854, 71, 71, 858, 71, 71, 861, 857, + 71, 71, 71, 71, 71, 853, 866, 71, 71, 865, + 855, 859, 856, 869, 860, 863, 867, 870, 71, 862, + 871, 868, 71, 71, 864, 71, 71, 873, 71, 71, + 872, 874, 71, 71, 71, 875, 878, 71, 71, 71, + + 876, 71, 877, 879, 880, 882, 71, 71, 885, 71, + 883, 71, 71, 71, 71, 884, 71, 71, 881, 71, + 887, 888, 889, 71, 892, 890, 891, 893, 886, 71, + 71, 895, 71, 71, 71, 71, 71, 71, 902, 71, + 900, 903, 71, 898, 71, 71, 71, 896, 901, 905, + 71, 71, 897, 71, 894, 71, 71, 71, 71, 899, + 904, 912, 71, 915, 911, 71, 906, 71, 909, 71, + 907, 908, 71, 910, 913, 71, 916, 914, 71, 919, + 71, 918, 71, 922, 917, 71, 920, 923, 71, 921, + 71, 71, 71, 71, 925, 930, 71, 932, 71, 934, + + 71, 71, 924, 71, 935, 71, 71, 71, 71, 2820, + 926, 927, 931, 929, 928, 71, 933, 71, 941, 937, + 939, 71, 942, 71, 943, 936, 71, 938, 71, 940, + 946, 71, 948, 71, 71, 71, 71, 951, 150, 945, + 950, 944, 71, 71, 71, 954, 71, 953, 71, 71, + 71, 947, 949, 957, 71, 71, 71, 952, 71, 71, + 969, 71, 71, 972, 71, 970, 71, 71, 955, 956, + 960, 71, 71, 958, 959, 961, 974, 971, 1138, 962, + 71, 975, 71, 963, 71, 964, 71, 977, 979, 965, + 71, 966, 973, 980, 71, 71, 967, 71, 976, 982, + + 978, 968, 71, 71, 981, 71, 71, 984, 986, 71, + 71, 71, 983, 994, 991, 992, 990, 985, 71, 987, + 71, 71, 995, 989, 993, 71, 71, 988, 71, 71, + 71, 71, 71, 996, 71, 1010, 1007, 2820, 71, 71, + 71, 71, 1006, 71, 1011, 997, 1008, 998, 71, 999, + 1009, 1012, 71, 71, 1000, 1013, 1001, 1016, 71, 1014, + 71, 71, 1002, 1018, 1017, 71, 1023, 1003, 1004, 71, + 71, 1015, 1020, 1019, 1005, 1022, 71, 71, 1021, 71, + 71, 71, 71, 1028, 71, 71, 1025, 71, 1026, 71, + 1031, 1029, 71, 71, 71, 1024, 1027, 71, 1039, 71, + + 1038, 71, 71, 1030, 71, 71, 1033, 1032, 1036, 1035, + 1037, 71, 71, 1034, 71, 71, 71, 71, 1040, 1041, + 71, 2820, 1047, 71, 71, 1048, 1044, 71, 1049, 1052, + 1046, 1042, 71, 1043, 1045, 71, 1050, 71, 1051, 71, + 1054, 1055, 1059, 71, 71, 1053, 1056, 71, 71, 1057, + 71, 71, 1058, 71, 71, 1065, 1067, 1060, 71, 71, + 71, 71, 71, 1068, 1061, 71, 1063, 71, 1062, 1064, + 1070, 1066, 1071, 71, 71, 1072, 71, 71, 1073, 1069, + 71, 1074, 71, 1076, 1079, 71, 1075, 71, 1078, 71, + 71, 1080, 71, 71, 1081, 71, 1077, 71, 1083, 71, + + 71, 71, 1087, 1089, 1090, 1082, 1091, 1084, 71, 71, + 71, 71, 1085, 1088, 71, 1094, 1092, 1086, 71, 1093, + 71, 71, 1097, 1098, 71, 71, 1095, 71, 71, 1099, + 1101, 71, 71, 71, 1102, 71, 1106, 71, 1096, 1107, + 71, 71, 71, 1100, 1103, 71, 1109, 1105, 1110, 71, + 1104, 71, 1108, 1114, 71, 71, 71, 71, 71, 1111, + 71, 71, 1120, 71, 71, 1112, 1113, 1116, 71, 71, + 71, 71, 71, 1115, 71, 1117, 1124, 1155, 1121, 1125, + 1119, 1123, 1128, 1122, 1129, 1118, 1126, 71, 71, 71, + 71, 71, 1127, 1131, 1130, 71, 71, 71, 71, 71, + + 1132, 71, 71, 1135, 71, 1141, 71, 71, 71, 71, + 1133, 1134, 71, 71, 1136, 71, 1151, 1139, 1145, 71, + 1137, 1142, 71, 1140, 1144, 71, 1143, 1147, 71, 71, + 1152, 71, 71, 1146, 71, 1153, 1148, 1156, 1149, 1158, + 1157, 1150, 71, 1154, 71, 71, 71, 1160, 1163, 71, + 71, 1159, 71, 71, 71, 1161, 71, 1164, 1165, 1167, + 1168, 71, 71, 71, 1162, 1170, 1166, 71, 71, 71, + 1169, 71, 71, 71, 71, 71, 1175, 1171, 71, 1173, + 71, 1180, 1172, 1174, 1176, 71, 71, 71, 71, 71, + 1177, 1185, 1179, 1181, 1178, 1184, 1187, 71, 71, 71, + + 1182, 1186, 1191, 1189, 71, 1183, 71, 1192, 71, 1188, + 71, 1190, 71, 71, 1196, 71, 1205, 71, 1206, 1204, + 1194, 71, 71, 1193, 71, 1195, 71, 1209, 1203, 1207, + 1208, 1197, 71, 71, 1198, 1199, 71, 1210, 71, 1200, + 71, 1211, 71, 1212, 71, 1201, 71, 1213, 71, 1202, + 71, 1214, 71, 1215, 71, 71, 2820, 1220, 1216, 1218, + 1219, 1223, 1217, 1224, 1233, 71, 71, 71, 1221, 71, + 1225, 71, 71, 1222, 71, 1226, 71, 1232, 71, 71, + 71, 1227, 1235, 71, 71, 1234, 1228, 71, 1229, 2820, + 1230, 1239, 1231, 1238, 1236, 71, 1240, 71, 1237, 71, + + 1242, 1243, 71, 71, 71, 1241, 71, 71, 1244, 71, + 71, 71, 1247, 71, 1249, 71, 1251, 71, 71, 1258, + 1248, 1245, 1246, 1254, 1250, 1255, 71, 1257, 71, 1252, + 1256, 71, 71, 71, 1259, 1262, 71, 1260, 1253, 71, + 1264, 71, 71, 1265, 71, 71, 71, 1269, 71, 1266, + 71, 71, 1261, 71, 1271, 71, 71, 71, 2820, 1263, + 1273, 71, 1277, 1275, 71, 1274, 1267, 1268, 71, 1278, + 1270, 1276, 71, 1272, 71, 71, 71, 71, 1282, 1280, + 1279, 1281, 71, 71, 71, 1287, 1288, 71, 1284, 71, + 1285, 71, 71, 1283, 1289, 1290, 1291, 1286, 71, 71, + + 71, 71, 1294, 71, 71, 71, 1298, 1299, 71, 1301, + 1293, 71, 71, 71, 1300, 71, 71, 1292, 71, 71, + 1295, 71, 71, 1308, 1296, 1302, 71, 71, 1297, 71, + 1305, 1303, 71, 1306, 1313, 71, 1304, 1312, 71, 1307, + 71, 71, 71, 1317, 71, 1315, 1309, 1311, 1318, 71, + 71, 1320, 1310, 71, 71, 71, 71, 71, 1321, 1328, + 1316, 1314, 1319, 71, 71, 71, 1330, 1322, 1326, 1323, + 1324, 1327, 71, 1325, 71, 71, 1332, 71, 1329, 1331, + 71, 71, 1334, 71, 71, 1336, 71, 71, 1338, 71, + 71, 1343, 71, 1333, 71, 1335, 1344, 71, 71, 1337, + + 1340, 71, 1347, 71, 1339, 1341, 71, 1342, 71, 71, + 1348, 71, 1345, 71, 71, 71, 1346, 1350, 1354, 1356, + 1349, 1351, 1355, 71, 1352, 71, 71, 1359, 71, 71, + 1353, 71, 71, 1364, 1358, 1361, 1365, 1363, 71, 71, + 71, 1357, 71, 1360, 71, 1366, 71, 1367, 1368, 71, + 71, 71, 1362, 71, 1369, 1373, 1371, 71, 71, 1375, + 1370, 71, 71, 71, 1374, 71, 71, 1372, 1378, 1381, + 1377, 1383, 71, 71, 1382, 71, 1384, 71, 71, 1379, + 71, 1376, 71, 1386, 71, 1380, 71, 71, 1393, 71, + 71, 1392, 1385, 1389, 71, 1394, 1396, 1387, 71, 1388, + + 71, 71, 71, 1399, 71, 1390, 1398, 1391, 71, 71, + 71, 71, 71, 71, 71, 1395, 2820, 1397, 71, 1407, + 1400, 71, 71, 1401, 1408, 1404, 1409, 1402, 1406, 1403, + 1410, 71, 71, 1405, 71, 1413, 71, 1411, 1412, 71, + 71, 71, 1416, 71, 71, 1414, 1417, 71, 1419, 1423, + 71, 71, 1415, 71, 71, 71, 1420, 71, 1424, 1418, + 1425, 1426, 71, 1422, 1421, 71, 1427, 1431, 1432, 71, + 71, 1428, 1429, 71, 71, 71, 71, 1436, 1437, 71, + 1435, 1438, 71, 71, 71, 1430, 1439, 71, 1433, 1440, + 71, 71, 71, 71, 71, 1434, 1443, 71, 1446, 1444, + + 71, 1445, 71, 1441, 71, 71, 71, 1442, 71, 1447, + 1449, 71, 1450, 71, 1454, 71, 1458, 71, 71, 1452, + 1451, 1448, 1455, 1456, 71, 71, 71, 1461, 1459, 71, + 1457, 1453, 71, 71, 71, 71, 71, 1464, 1467, 71, + 1466, 71, 71, 1463, 71, 1460, 71, 71, 1474, 71, + 71, 1462, 71, 1465, 1468, 1469, 71, 1475, 1472, 71, + 71, 1470, 1471, 71, 1479, 1478, 71, 71, 1481, 1476, + 1477, 1473, 1482, 1483, 71, 1485, 1487, 71, 71, 71, + 1480, 71, 71, 1484, 71, 71, 71, 1490, 1486, 71, + 1489, 71, 1492, 71, 1493, 71, 71, 1488, 71, 1497, + + 1494, 71, 1498, 71, 71, 71, 1504, 1495, 1501, 1491, + 1496, 1502, 71, 1506, 71, 1499, 71, 71, 1500, 1505, + 1510, 1507, 71, 1503, 71, 1509, 71, 71, 1512, 1511, + 71, 1513, 1514, 71, 71, 71, 71, 71, 71, 1515, + 71, 1521, 1508, 1520, 1522, 1524, 1516, 71, 71, 71, + 71, 71, 71, 1517, 1523, 1518, 71, 1519, 1527, 71, + 71, 1526, 71, 71, 71, 1528, 71, 71, 71, 1536, + 1529, 1525, 71, 71, 71, 71, 71, 71, 1532, 1534, + 1533, 1535, 1530, 1531, 1541, 71, 71, 71, 1539, 71, + 71, 1544, 1537, 1538, 1543, 71, 71, 1540, 71, 71, + + 71, 1547, 1545, 71, 71, 71, 1542, 1549, 1552, 1546, + 1551, 1553, 71, 71, 1548, 1550, 1558, 1559, 71, 71, + 1554, 1560, 71, 71, 1563, 71, 1562, 1555, 71, 71, + 1557, 1561, 1556, 71, 71, 71, 71, 71, 1566, 1567, + 71, 1564, 71, 1575, 71, 71, 1570, 71, 1565, 71, + 71, 1574, 1569, 1572, 1568, 71, 1573, 1576, 71, 1571, + 1578, 71, 71, 71, 71, 1577, 71, 1585, 1579, 1580, + 71, 71, 71, 71, 1582, 71, 1589, 1581, 1588, 71, + 1587, 1591, 1584, 71, 1592, 71, 1586, 1596, 1583, 1599, + 1590, 71, 1597, 71, 71, 71, 1602, 1593, 1601, 71, + + 71, 71, 71, 1595, 1594, 1598, 1603, 1604, 71, 71, + 1608, 71, 1600, 71, 1605, 71, 71, 71, 71, 71, + 1606, 1610, 71, 1607, 1609, 1612, 71, 1611, 71, 71, + 1615, 71, 71, 1621, 1613, 1616, 71, 71, 1614, 71, + 71, 1617, 1618, 71, 1627, 1619, 1620, 71, 71, 1622, + 71, 71, 1630, 71, 71, 71, 71, 1623, 1624, 1632, + 1626, 1633, 1625, 71, 1628, 71, 71, 71, 1634, 1629, + 1635, 71, 1639, 71, 1631, 1636, 71, 71, 71, 1643, + 71, 71, 71, 71, 71, 71, 1638, 71, 1645, 1641, + 1637, 71, 1650, 71, 71, 1640, 1644, 1642, 71, 1646, + + 71, 1681, 1648, 1647, 1649, 1651, 1653, 1654, 71, 71, + 71, 71, 1652, 1655, 1656, 71, 1657, 1659, 1658, 1660, + 71, 71, 71, 71, 1662, 71, 71, 71, 1663, 71, + 71, 71, 71, 1661, 71, 71, 1668, 71, 71, 1672, + 71, 1669, 71, 71, 1673, 1678, 1664, 1666, 1667, 1665, + 1670, 71, 1671, 1677, 71, 71, 71, 1674, 1676, 71, + 1675, 1683, 71, 1679, 71, 71, 1686, 1687, 71, 1688, + 71, 1690, 71, 71, 1680, 71, 1682, 71, 1684, 71, + 1685, 1695, 1689, 71, 1691, 1694, 71, 1696, 71, 1698, + 71, 1697, 1700, 71, 1692, 71, 1693, 1699, 71, 71, + + 1703, 71, 1702, 71, 1704, 1705, 71, 71, 71, 71, + 1712, 71, 71, 71, 71, 1701, 71, 1714, 1706, 1707, + 1708, 71, 1715, 71, 1718, 1709, 1716, 1710, 1711, 1713, + 71, 1720, 1717, 71, 1722, 71, 1719, 71, 1724, 71, + 71, 71, 1721, 71, 1726, 71, 71, 1729, 1730, 71, + 71, 1732, 71, 71, 71, 71, 1723, 71, 1736, 1737, + 71, 1727, 1733, 1734, 71, 71, 1725, 1728, 71, 71, + 1731, 71, 71, 71, 1743, 1740, 1735, 71, 1738, 71, + 1739, 1741, 1747, 71, 1746, 71, 1752, 71, 71, 71, + 1750, 71, 1749, 1745, 1751, 1742, 71, 1744, 1754, 71, + + 71, 71, 71, 1748, 1753, 71, 71, 71, 1758, 71, + 1761, 1755, 1762, 71, 1757, 71, 71, 71, 71, 71, + 1756, 1765, 71, 71, 1759, 71, 71, 1771, 1764, 2820, + 71, 71, 1772, 1760, 71, 1763, 1767, 1766, 1768, 1773, + 1769, 1770, 1774, 71, 71, 1776, 1778, 71, 1775, 71, + 1777, 71, 1779, 71, 71, 1784, 1781, 71, 71, 71, + 71, 71, 1789, 1780, 1786, 1787, 71, 71, 1788, 1792, + 71, 1790, 1785, 1782, 1783, 1794, 1791, 1793, 71, 1796, + 1795, 71, 1797, 71, 71, 71, 1800, 71, 71, 71, + 71, 71, 71, 1802, 1805, 71, 1799, 1807, 71, 1801, + + 71, 71, 1803, 71, 71, 71, 71, 71, 1812, 1798, + 1808, 1811, 2820, 1809, 71, 1813, 1804, 1806, 1814, 71, + 1815, 71, 1817, 1810, 71, 71, 71, 1816, 71, 71, + 1818, 1819, 71, 71, 1821, 1820, 1823, 1822, 71, 71, + 1825, 71, 71, 71, 1829, 71, 71, 71, 1828, 71, + 1824, 71, 1831, 1826, 1827, 1830, 1832, 1833, 71, 71, + 71, 71, 71, 71, 71, 71, 1838, 1840, 1835, 1834, + 1839, 71, 1842, 71, 71, 71, 71, 1841, 1836, 71, + 1837, 71, 1844, 1843, 1845, 71, 1846, 71, 1847, 1851, + 1852, 71, 1850, 1848, 71, 1849, 71, 1853, 71, 71, + + 71, 1858, 71, 71, 1860, 71, 71, 71, 1861, 1862, + 71, 71, 1854, 1857, 1855, 1856, 71, 71, 1864, 1859, + 71, 1866, 71, 71, 1863, 1865, 1867, 71, 71, 71, + 71, 71, 71, 71, 71, 1869, 71, 1874, 71, 1870, + 1871, 1878, 71, 1868, 71, 1873, 1877, 1881, 71, 71, + 1875, 1879, 1876, 1882, 1884, 1872, 1880, 71, 1883, 1885, + 71, 71, 71, 71, 71, 71, 1887, 71, 71, 1888, + 1892, 71, 1889, 1890, 71, 71, 1894, 1891, 1886, 1896, + 71, 71, 71, 1899, 71, 1895, 1893, 1898, 71, 1900, + 71, 71, 1904, 1901, 71, 71, 71, 71, 71, 1905, + + 71, 1897, 71, 1907, 1910, 71, 71, 1911, 1902, 1906, + 71, 1903, 1914, 2820, 1909, 71, 1908, 1912, 71, 71, + 1915, 1916, 71, 71, 1919, 71, 71, 1921, 71, 1922, + 1913, 1917, 71, 71, 1920, 71, 71, 1926, 1928, 1918, + 71, 1923, 1924, 1929, 71, 1925, 71, 71, 71, 1930, + 71, 71, 71, 1933, 71, 1934, 71, 1927, 1931, 1932, + 1937, 71, 71, 71, 1935, 71, 71, 71, 71, 71, + 1940, 71, 1936, 1945, 1938, 1947, 71, 1941, 71, 1943, + 1939, 1942, 71, 1944, 1949, 71, 71, 1946, 1948, 71, + 1952, 1954, 71, 1956, 71, 1953, 71, 71, 1955, 1950, + + 1951, 1958, 71, 71, 1961, 1963, 1964, 1959, 71, 1962, + 71, 71, 71, 71, 71, 1957, 1960, 1965, 1968, 71, + 71, 1966, 71, 1969, 1973, 71, 71, 1974, 1967, 1972, + 71, 71, 1977, 71, 71, 71, 1979, 1970, 71, 1978, + 1980, 71, 1975, 71, 71, 71, 1982, 1983, 1971, 1976, + 1981, 71, 71, 1984, 71, 1985, 71, 71, 71, 1987, + 71, 71, 71, 1990, 1993, 71, 1994, 71, 71, 1986, + 71, 71, 1989, 1996, 71, 71, 71, 1992, 1991, 1988, + 2000, 71, 1995, 1998, 2003, 71, 71, 71, 71, 2001, + 71, 71, 71, 1999, 2004, 71, 1997, 71, 71, 2002, + + 2014, 71, 71, 71, 71, 71, 2005, 2006, 2015, 2011, + 71, 2009, 71, 2007, 2247, 2008, 2010, 2013, 2017, 2012, + 71, 2019, 71, 2016, 71, 2018, 2020, 71, 2021, 71, + 71, 71, 2024, 2025, 2027, 71, 2026, 2022, 71, 71, + 71, 71, 71, 2023, 2028, 2029, 2033, 71, 2034, 71, + 71, 2036, 71, 71, 2032, 2038, 71, 71, 2030, 2040, + 71, 2031, 2041, 71, 71, 71, 71, 71, 71, 2035, + 71, 2037, 2039, 2046, 2043, 2047, 71, 71, 2042, 71, + 2044, 2049, 71, 71, 71, 2051, 2045, 2052, 71, 2048, + 71, 2053, 2055, 71, 71, 2050, 2059, 71, 71, 71, + + 71, 71, 2056, 2057, 71, 2063, 2054, 2064, 71, 71, + 71, 2068, 71, 2058, 71, 2062, 71, 71, 2060, 71, + 71, 2073, 2061, 2065, 2066, 2067, 2070, 71, 71, 71, + 2071, 2075, 71, 71, 2069, 71, 2074, 71, 2078, 71, + 2079, 71, 71, 2072, 2077, 71, 2083, 2087, 2076, 71, + 2084, 71, 2081, 71, 2085, 71, 71, 71, 2089, 71, + 71, 2090, 2080, 2082, 71, 71, 2086, 71, 71, 2093, + 71, 71, 2092, 71, 2094, 2099, 2088, 2095, 2098, 2096, + 71, 2097, 2091, 71, 71, 71, 2102, 71, 2103, 2101, + 71, 2104, 71, 2100, 71, 71, 2110, 71, 71, 2105, + + 71, 71, 2111, 2106, 71, 2107, 71, 2112, 2108, 71, + 71, 2109, 2113, 2117, 2118, 71, 71, 2114, 2116, 2115, + 2121, 71, 71, 2122, 2123, 71, 71, 71, 2120, 2124, + 2126, 2127, 2125, 2128, 71, 2119, 71, 71, 71, 71, + 2130, 71, 71, 71, 71, 2134, 71, 71, 71, 2820, + 2135, 2136, 2129, 2131, 2137, 71, 2132, 71, 71, 71, + 71, 71, 2133, 2138, 2141, 71, 2139, 2140, 2142, 71, + 2144, 71, 2143, 71, 71, 71, 71, 71, 2148, 2151, + 71, 2145, 2150, 71, 71, 71, 2152, 2147, 71, 2155, + 2156, 2146, 71, 71, 2153, 2149, 71, 71, 2160, 2154, + + 2157, 71, 2159, 2158, 71, 71, 2163, 2161, 71, 2165, + 71, 71, 2164, 2167, 71, 71, 2169, 71, 71, 2162, + 2168, 71, 2166, 71, 71, 71, 71, 71, 2172, 71, + 2174, 2175, 2176, 71, 2178, 2171, 2170, 2177, 71, 71, + 71, 71, 2179, 2180, 2182, 71, 71, 2185, 71, 2187, + 2173, 2181, 71, 71, 71, 71, 2190, 71, 2184, 71, + 2820, 2186, 71, 71, 2183, 71, 2193, 2194, 71, 2189, + 71, 2188, 71, 71, 71, 2195, 2197, 2196, 2191, 71, + 2192, 71, 71, 2200, 2202, 71, 2201, 2198, 2203, 71, + 2204, 71, 71, 2199, 2205, 71, 71, 2208, 71, 2209, + + 2207, 71, 71, 71, 2206, 71, 2214, 71, 2215, 71, + 2216, 71, 71, 2210, 2211, 71, 71, 71, 71, 71, + 71, 2213, 2218, 2212, 2217, 2221, 2223, 71, 2219, 71, + 71, 71, 71, 71, 71, 2230, 71, 2220, 2222, 2224, + 71, 71, 71, 71, 2227, 2225, 71, 2229, 71, 2226, + 2231, 2232, 2820, 71, 71, 2233, 2228, 2237, 2239, 71, + 2234, 71, 2238, 71, 2240, 2235, 2241, 71, 71, 2236, + 2242, 71, 71, 2243, 71, 2244, 71, 2245, 71, 2246, + 71, 71, 2248, 71, 71, 71, 71, 2256, 2249, 2257, + 71, 71, 2253, 2260, 71, 71, 2250, 71, 71, 2262, + + 71, 2252, 2251, 2255, 2254, 71, 2259, 2261, 71, 71, + 2266, 71, 71, 2258, 71, 71, 2265, 2271, 71, 2272, + 71, 2273, 71, 2263, 71, 71, 2264, 71, 71, 2267, + 2268, 2269, 71, 2270, 71, 71, 71, 2277, 71, 2275, + 2274, 2280, 71, 71, 2276, 2281, 2282, 71, 2278, 71, + 71, 2283, 2284, 71, 2279, 2288, 71, 2285, 71, 2286, + 71, 2287, 71, 2289, 71, 2294, 71, 2293, 71, 71, + 2297, 71, 71, 71, 71, 71, 2290, 2298, 71, 2291, + 71, 71, 2292, 2295, 2300, 2301, 71, 2296, 2302, 2299, + 2305, 71, 2303, 2306, 2307, 71, 71, 71, 2304, 2309, + + 71, 71, 2310, 2312, 71, 71, 2313, 71, 71, 71, + 71, 71, 71, 2311, 71, 2308, 2319, 71, 71, 2317, + 2318, 2315, 2316, 2321, 71, 71, 71, 2320, 2322, 2314, + 2323, 71, 2324, 71, 71, 71, 71, 2331, 71, 2326, + 2328, 2329, 2332, 71, 71, 2325, 71, 71, 2327, 2330, + 71, 2333, 2334, 2337, 71, 71, 71, 2339, 71, 71, + 2338, 2342, 71, 2341, 2335, 2343, 71, 71, 2336, 2340, + 2345, 71, 71, 2347, 2820, 2346, 71, 71, 2348, 71, + 2344, 2349, 2350, 2351, 71, 71, 71, 71, 2352, 71, + 2353, 71, 71, 71, 71, 2354, 71, 2357, 71, 2356, + + 71, 2359, 2355, 2360, 71, 2358, 2361, 71, 71, 2362, + 71, 71, 2363, 71, 2368, 71, 2364, 71, 71, 2366, + 2367, 2365, 71, 71, 2369, 2373, 71, 71, 71, 71, + 2377, 71, 71, 71, 2383, 71, 2370, 2375, 2371, 2381, + 71, 2372, 2374, 2820, 2376, 2384, 2378, 2379, 2382, 71, + 2385, 71, 71, 2380, 2386, 71, 71, 71, 71, 71, + 2387, 71, 2388, 71, 71, 2391, 71, 2389, 71, 2394, + 2395, 71, 2390, 2396, 71, 2397, 71, 2392, 2400, 2393, + 2398, 71, 71, 2401, 71, 71, 2399, 71, 2403, 2404, + 71, 2405, 71, 71, 71, 71, 2406, 71, 2407, 2409, + + 71, 71, 2402, 71, 2410, 2411, 71, 2413, 71, 71, + 2412, 2416, 2408, 2417, 71, 2414, 71, 71, 71, 2419, + 2418, 2422, 71, 2415, 2420, 71, 71, 2425, 71, 71, + 71, 71, 2424, 71, 2427, 2428, 71, 2430, 71, 71, + 71, 2421, 2423, 2429, 71, 71, 71, 2431, 2433, 71, + 71, 2436, 71, 2426, 2440, 71, 2432, 2434, 2435, 2438, + 71, 71, 2446, 71, 2439, 71, 2447, 2437, 2442, 2443, + 71, 2441, 71, 2448, 2444, 71, 71, 2449, 71, 2450, + 2445, 71, 71, 71, 71, 71, 2451, 2452, 71, 2458, + 71, 71, 71, 2455, 2459, 2461, 71, 71, 2463, 71, + + 71, 2453, 71, 71, 2462, 2456, 71, 2464, 2457, 2454, + 2460, 71, 2465, 2469, 71, 2466, 71, 71, 2468, 71, + 2467, 2470, 2473, 71, 71, 2471, 71, 2474, 71, 2477, + 71, 71, 71, 2476, 2472, 71, 2475, 71, 71, 71, + 2479, 71, 2820, 71, 2478, 71, 2482, 2480, 2486, 71, + 2487, 2484, 71, 2490, 2488, 71, 2491, 2481, 2483, 71, + 2489, 71, 2485, 2492, 71, 2493, 71, 2494, 71, 71, + 2495, 71, 2499, 2502, 71, 71, 2498, 71, 71, 2496, + 2500, 71, 2501, 71, 71, 71, 2507, 71, 2497, 2505, + 2509, 71, 71, 71, 71, 71, 2513, 71, 71, 2503, + + 71, 71, 71, 2506, 2504, 71, 2516, 71, 2511, 2517, + 71, 2514, 2508, 2510, 2515, 2512, 71, 71, 2520, 2523, + 71, 2518, 2521, 71, 71, 71, 2519, 2525, 71, 2526, + 71, 2528, 71, 71, 71, 71, 2533, 71, 71, 71, + 2532, 2529, 2522, 2524, 2527, 71, 71, 2537, 71, 2530, + 2531, 71, 71, 2539, 2541, 71, 2542, 71, 2534, 71, + 2544, 71, 2535, 71, 2536, 2538, 71, 2820, 71, 71, + 71, 71, 2546, 71, 2540, 2551, 71, 71, 2553, 2543, + 2545, 2549, 71, 2554, 71, 2552, 2547, 2548, 2556, 71, + 2550, 2557, 71, 2555, 71, 71, 2559, 71, 2558, 71, + + 71, 71, 71, 2563, 2561, 2562, 2564, 2560, 2567, 71, + 2568, 71, 71, 71, 2565, 2566, 2571, 71, 2572, 71, + 2569, 71, 2570, 71, 71, 71, 2573, 2576, 71, 2575, + 2577, 71, 2578, 71, 71, 2580, 71, 2574, 71, 2579, + 71, 71, 71, 2585, 2581, 2586, 71, 71, 71, 71, + 2590, 71, 71, 71, 71, 2593, 71, 2820, 2589, 2592, + 2582, 2587, 2583, 2584, 2594, 71, 2596, 2595, 2588, 71, + 71, 2591, 71, 2598, 71, 2599, 71, 2597, 71, 71, + 71, 71, 71, 71, 2602, 71, 71, 2604, 71, 71, + 2605, 71, 2603, 71, 71, 71, 2600, 71, 2601, 2614, + + 2617, 71, 2606, 71, 2610, 2607, 2608, 2609, 2611, 2612, + 2616, 2618, 71, 71, 2613, 2615, 2699, 2619, 2620, 71, + 2621, 71, 2622, 2623, 71, 71, 2624, 2625, 2628, 71, + 2626, 2627, 71, 71, 2629, 71, 71, 71, 2633, 71, + 71, 2632, 71, 71, 71, 71, 2635, 2634, 71, 2639, + 2630, 2631, 2640, 71, 2638, 2641, 71, 71, 2636, 71, + 2646, 71, 2637, 2648, 2643, 2647, 71, 71, 71, 71, + 2644, 71, 2642, 2645, 71, 71, 2652, 71, 2655, 71, + 2653, 71, 71, 2650, 2657, 71, 2656, 2658, 71, 2659, + 71, 2665, 2649, 2660, 71, 2651, 2654, 2661, 71, 2662, + + 71, 2663, 71, 2664, 71, 2666, 71, 71, 2668, 71, + 71, 71, 71, 2671, 71, 2673, 71, 71, 71, 71, + 71, 2675, 2680, 2670, 71, 2669, 71, 2667, 71, 2672, + 71, 2677, 71, 71, 71, 2674, 2679, 2682, 2678, 71, + 2681, 71, 71, 2683, 71, 2676, 71, 2687, 2688, 71, + 2690, 71, 2684, 71, 71, 2685, 2686, 71, 71, 71, + 71, 2696, 71, 2695, 71, 2689, 71, 2692, 2694, 71, + 2698, 2691, 71, 71, 71, 2697, 71, 2693, 71, 2708, + 71, 2700, 2701, 71, 71, 2710, 71, 71, 2702, 2704, + 71, 2703, 2707, 2709, 2705, 2717, 2706, 71, 2711, 2712, + + 71, 2713, 71, 2715, 71, 71, 2714, 2716, 71, 71, + 2718, 2721, 71, 71, 71, 2724, 71, 71, 71, 71, + 71, 2728, 71, 71, 2720, 2820, 2722, 71, 2729, 71, + 71, 2730, 2725, 2719, 2723, 2726, 2727, 2732, 2731, 2733, + 71, 71, 2735, 71, 2734, 71, 2737, 71, 71, 71, + 71, 71, 71, 2740, 71, 71, 2742, 71, 71, 2736, + 71, 2738, 2739, 2747, 71, 2748, 71, 2744, 2745, 71, + 2741, 2743, 2751, 71, 2752, 2753, 2746, 71, 2754, 71, + 71, 71, 2749, 71, 2755, 2750, 71, 2759, 2756, 71, + 71, 2757, 71, 71, 2760, 2761, 71, 71, 71, 2758, + + 71, 2762, 2767, 71, 71, 2764, 71, 2770, 71, 2763, + 71, 2765, 2771, 71, 71, 2774, 71, 2769, 71, 2766, + 71, 71, 2768, 2772, 71, 2778, 2773, 71, 71, 71, + 2782, 71, 2779, 2777, 2780, 2775, 71, 2776, 71, 2784, + 71, 2785, 71, 2787, 71, 2789, 71, 2786, 71, 71, + 2783, 2791, 71, 2790, 2781, 2792, 71, 71, 71, 2793, + 71, 71, 71, 2788, 2794, 2796, 2798, 71, 71, 71, + 71, 71, 71, 2800, 2801, 71, 2804, 2795, 2805, 71, + 2797, 2799, 71, 71, 2808, 2809, 71, 71, 71, 2802, + 2803, 2806, 2811, 71, 2810, 2812, 71, 71, 71, 71, + + 71, 2807, 2820, 2814, 2813, 2815, 2820, 2816, 2818, 71, + 2819, 71, 2820, 2820, 2820, 2820, 2820, 2820, 2817, 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, 2820, 74, 74, 74, + 74, 140, 140, 2820, 2820, 2820, 140, 140, 142, 142, + 2820, 2820, 142, 2820, 142, 144, 2820, 2820, 2820, 2820, + 2820, 144, 147, 147, 2820, 2820, 2820, 147, 147, 149, + 2820, 2820, 2820, 2820, 2820, 149, 151, 151, 2820, 151, + + 151, 151, 151, 75, 75, 2820, 75, 75, 75, 75, + 13, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820 } ; -static yyconst flex_int16_t yy_chk[5505] = +static const flex_int16_t yy_chk[5552] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1972,13 +1974,13 @@ static yyconst flex_int16_t yy_chk[5505] = 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, 2804, 31, + 10, 10, 15, 25, 9, 29, 15, 25, 2826, 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, 946, 24, 24, + 34, 21, 23, 24, 12, 23, 24, 951, 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, @@ -2017,559 +2019,564 @@ static yyconst flex_int16_t yy_chk[5505] = 180, 181, 183, 184, 185, 186, 181, 187, 190, 178, 186, 189, 187, 188, 188, 184, 189, 183, 184, 188, 191, 179, 185, 192, 193, 193, 194, 196, 190, 192, - 198, 188, 194, 188, 195, 197, 191, 199, 194, 198, - - 195, 197, 200, 204, 201, 202, 203, 196, 200, 201, - 204, 202, 203, 205, 206, 207, 208, 209, 199, 210, - 206, 211, 208, 212, 213, 214, 205, 210, 212, 215, - 216, 217, 220, 213, 211, 207, 217, 218, 219, 209, - 214, 221, 219, 222, 224, 215, 223, 221, 229, 225, - 216, 225, 223, 226, 220, 218, 231, 227, 146, 228, - 226, 222, 222, 227, 224, 228, 230, 229, 231, 232, - 232, 234, 230, 233, 233, 235, 237, 234, 236, 238, - 236, 235, 239, 240, 238, 241, 242, 243, 244, 144, - 245, 255, 243, 241, 239, 234, 245, 236, 246, 237, - - 247, 249, 240, 248, 246, 247, 242, 249, 248, 250, - 252, 244, 251, 253, 254, 256, 255, 257, 259, 259, - 257, 256, 254, 258, 250, 258, 251, 253, 252, 260, - 261, 264, 260, 262, 262, 263, 263, 265, 266, 267, - 268, 266, 270, 267, 269, 271, 278, 264, 261, 268, - 269, 271, 265, 272, 273, 272, 270, 274, 275, 275, - 273, 274, 276, 277, 279, 280, 278, 276, 281, 277, - 282, 282, 283, 284, 286, 283, 285, 288, 274, 349, - 285, 281, 279, 287, 287, 289, 280, 290, 289, 293, - 291, 284, 286, 299, 292, 288, 291, 292, 295, 290, - - 296, 293, 294, 297, 300, 349, 299, 295, 297, 303, - 298, 294, 303, 298, 294, 298, 300, 304, 296, 294, - 294, 294, 294, 301, 305, 301, 301, 302, 302, 306, - 315, 298, 307, 311, 304, 308, 308, 304, 306, 305, - 309, 307, 310, 310, 312, 309, 313, 314, 311, 312, - 315, 317, 316, 318, 319, 320, 324, 317, 313, 319, - 321, 320, 326, 322, 328, 321, 314, 316, 322, 328, - 324, 326, 323, 318, 322, 323, 325, 323, 327, 325, - 329, 333, 366, 329, 327, 334, 331, 332, 336, 329, - 337, 336, 325, 329, 339, 325, 333, 325, 366, 334, - - 345, 329, 330, 330, 337, 330, 331, 336, 332, 339, - 340, 341, 343, 344, 342, 345, 341, 341, 330, 340, - 342, 330, 346, 330, 347, 330, 338, 350, 338, 338, - 348, 346, 344, 343, 351, 353, 348, 354, 338, 355, - 338, 338, 338, 347, 352, 338, 356, 350, 351, 358, - 352, 357, 360, 360, 352, 361, 357, 354, 353, 355, - 359, 356, 362, 363, 358, 364, 359, 365, 367, 368, - 368, 364, 368, 367, 362, 361, 369, 363, 370, 371, - 373, 374, 373, 372, 375, 374, 376, 376, 375, 377, - 378, 379, 365, 380, 370, 371, 369, 372, 381, 388, - - 373, 382, 385, 375, 383, 378, 385, 379, 377, 384, - 382, 380, 381, 383, 384, 386, 387, 392, 394, 389, - 388, 382, 387, 382, 386, 389, 390, 391, 393, 393, - 390, 394, 391, 395, 396, 397, 397, 392, 395, 398, - 399, 400, 401, 402, 399, 398, 403, 396, 402, 404, - 405, 403, 406, 407, 408, 410, 400, 409, 404, 410, - 409, 413, 405, 401, 411, 411, 408, 417, 412, 414, - 414, 407, 406, 412, 416, 416, 418, 419, 420, 421, - 424, 423, 413, 425, 418, 427, 419, 426, 417, 428, - 430, 421, 142, 426, 427, 428, 433, 425, 420, 423, - - 424, 423, 429, 431, 430, 434, 432, 429, 434, 435, - 436, 431, 432, 437, 431, 435, 433, 438, 437, 439, - 442, 440, 441, 443, 436, 440, 444, 441, 443, 445, - 448, 447, 449, 435, 450, 442, 449, 452, 451, 438, - 439, 452, 444, 454, 456, 448, 140, 453, 445, 446, - 446, 447, 453, 450, 451, 446, 455, 446, 454, 461, - 456, 455, 457, 446, 459, 446, 458, 460, 446, 446, - 460, 457, 458, 462, 462, 446, 463, 458, 465, 461, - 459, 464, 464, 466, 467, 468, 469, 470, 471, 476, - 472, 473, 470, 465, 474, 466, 478, 471, 476, 467, - - 474, 463, 478, 477, 468, 479, 473, 477, 469, 472, - 480, 481, 482, 483, 484, 485, 486, 479, 487, 485, - 487, 489, 489, 488, 491, 480, 482, 490, 483, 486, - 481, 488, 484, 490, 492, 493, 491, 495, 494, 496, - 492, 494, 498, 497, 499, 498, 500, 493, 497, 70, - 501, 495, 502, 499, 496, 501, 501, 503, 503, 509, - 499, 516, 500, 499, 505, 502, 504, 504, 506, 506, - 505, 507, 507, 508, 510, 512, 511, 510, 513, 508, - 509, 511, 514, 515, 516, 514, 513, 517, 515, 518, - 519, 520, 521, 518, 512, 520, 519, 522, 523, 524, - - 526, 527, 522, 525, 527, 524, 517, 528, 525, 527, - 521, 529, 529, 527, 526, 530, 531, 532, 523, 536, - 533, 531, 532, 534, 535, 528, 537, 538, 536, 537, - 535, 538, 539, 530, 533, 541, 540, 539, 534, 540, - 541, 542, 543, 544, 545, 546, 547, 547, 549, 545, - 548, 551, 550, 538, 557, 552, 544, 542, 553, 548, - 543, 552, 64, 551, 553, 546, 554, 549, 550, 554, - 555, 556, 557, 555, 558, 559, 556, 560, 561, 567, - 562, 559, 560, 562, 561, 563, 564, 565, 558, 566, - 563, 564, 564, 569, 570, 568, 577, 577, 567, 567, - - 565, 568, 566, 570, 571, 572, 574, 573, 572, 571, - 575, 576, 569, 573, 578, 575, 576, 576, 574, 579, - 582, 579, 580, 572, 581, 583, 581, 584, 585, 586, - 587, 588, 592, 589, 587, 590, 591, 594, 582, 578, - 588, 580, 598, 583, 593, 584, 596, 585, 589, 586, - 590, 592, 594, 595, 591, 597, 593, 599, 600, 595, - 596, 598, 600, 601, 602, 603, 604, 597, 606, 606, - 605, 607, 608, 610, 611, 607, 599, 609, 610, 612, - 613, 601, 602, 603, 605, 604, 59, 614, 609, 616, - 611, 608, 615, 613, 614, 617, 616, 615, 612, 618, - - 617, 619, 620, 621, 618, 623, 622, 627, 625, 620, - 624, 627, 621, 625, 623, 626, 628, 629, 626, 619, - 622, 630, 624, 631, 632, 638, 629, 633, 633, 636, - 628, 634, 634, 635, 635, 639, 630, 631, 636, 640, - 634, 639, 641, 642, 638, 632, 641, 643, 644, 646, - 645, 647, 648, 649, 650, 642, 645, 646, 647, 640, - 653, 660, 656, 54, 651, 661, 644, 660, 659, 651, - 648, 665, 643, 651, 650, 653, 651, 659, 649, 656, - 662, 661, 665, 651, 662, 666, 651, 663, 663, 664, - 664, 667, 668, 669, 674, 671, 53, 672, 673, 669, - - 671, 675, 677, 666, 675, 667, 676, 676, 679, 677, - 678, 678, 668, 670, 670, 670, 673, 670, 672, 674, - 670, 680, 680, 679, 681, 670, 685, 682, 683, 681, - 682, 670, 670, 683, 684, 686, 684, 687, 685, 688, - 690, 687, 689, 691, 691, 692, 694, 694, 690, 693, - 695, 697, 696, 698, 686, 699, 699, 702, 698, 688, - 692, 689, 702, 693, 696, 700, 703, 710, 695, 704, - 700, 700, 703, 697, 705, 704, 706, 707, 708, 706, - 705, 709, 711, 707, 712, 710, 708, 711, 713, 709, - 715, 712, 714, 714, 716, 717, 718, 720, 722, 715, - - 721, 717, 716, 722, 723, 724, 720, 713, 724, 721, - 726, 725, 727, 723, 729, 718, 725, 728, 728, 730, - 732, 731, 733, 740, 726, 733, 735, 737, 735, 729, - 731, 736, 736, 733, 738, 739, 742, 727, 730, 738, - 741, 743, 744, 740, 732, 745, 746, 747, 737, 745, - 750, 744, 751, 748, 749, 752, 739, 48, 742, 748, - 741, 743, 750, 749, 746, 754, 747, 753, 757, 752, - 755, 751, 758, 753, 759, 755, 756, 756, 760, 754, - 761, 758, 764, 762, 763, 765, 766, 767, 757, 769, - 763, 765, 770, 767, 759, 768, 764, 772, 760, 768, - - 771, 774, 761, 762, 770, 771, 766, 774, 769, 773, - 773, 775, 770, 776, 775, 777, 778, 779, 772, 780, - 780, 781, 778, 784, 782, 783, 783, 787, 777, 782, - 785, 776, 786, 786, 785, 788, 789, 779, 784, 781, - 790, 789, 792, 793, 795, 800, 796, 798, 798, 787, - 799, 801, 801, 802, 799, 788, 805, 793, 803, 790, - 800, 804, 803, 957, 795, 957, 792, 796, 797, 806, - 805, 797, 807, 797, 806, 808, 804, 797, 802, 797, - 808, 808, 809, 810, 797, 811, 807, 810, 812, 797, - 813, 814, 815, 812, 816, 813, 809, 821, 817, 823, - - 811, 818, 821, 812, 817, 814, 819, 818, 816, 820, - 820, 822, 819, 815, 824, 827, 825, 822, 828, 830, - 833, 823, 854, 828, 829, 831, 831, 827, 833, 835, - 834, 830, 832, 824, 825, 826, 826, 832, 829, 836, - 842, 826, 854, 826, 834, 837, 837, 838, 835, 826, - 840, 838, 843, 846, 826, 826, 840, 841, 836, 842, - 841, 826, 844, 849, 845, 843, 847, 848, 844, 845, - 852, 850, 846, 851, 855, 847, 848, 850, 853, 849, - 856, 857, 851, 853, 860, 858, 859, 863, 855, 852, - 860, 861, 865, 857, 858, 859, 866, 861, 867, 869, - - 856, 868, 870, 863, 871, 872, 865, 870, 878, 871, - 872, 873, 874, 874, 869, 875, 866, 867, 876, 868, - 873, 875, 879, 882, 878, 880, 880, 879, 879, 880, - 881, 876, 883, 881, 885, 884, 886, 882, 887, 888, - 889, 891, 890, 892, 887, 890, 889, 885, 892, 893, - 894, 886, 883, 884, 893, 895, 896, 897, 899, 888, - 895, 896, 891, 900, 899, 901, 894, 902, 904, 897, - 905, 901, 907, 902, 903, 903, 908, 904, 906, 900, - 909, 906, 910, 911, 914, 910, 912, 913, 905, 914, - 907, 919, 912, 913, 915, 908, 911, 916, 917, 915, - - 909, 920, 916, 923, 917, 921, 922, 922, 924, 919, - 925, 921, 923, 925, 926, 928, 927, 926, 929, 930, - 932, 920, 931, 935, 933, 930, 924, 927, 931, 933, - 929, 934, 934, 928, 936, 932, 938, 937, 939, 941, - 938, 940, 935, 942, 944, 945, 945, 947, 936, 937, - 940, 948, 949, 951, 950, 953, 939, 980, 941, 950, - 980, 947, 951, 944, 949, 954, 948, 955, 942, 952, - 952, 954, 956, 955, 958, 953, 959, 956, 960, 958, - 961, 962, 963, 965, 964, 961, 966, 968, 968, 969, - 959, 964, 960, 970, 971, 973, 962, 43, 965, 977, - - 972, 963, 974, 969, 977, 966, 972, 974, 979, 971, - 978, 970, 976, 976, 981, 973, 974, 978, 974, 982, - 983, 974, 979, 984, 985, 983, 986, 987, 982, 985, - 989, 989, 981, 990, 991, 992, 993, 986, 990, 991, - 994, 993, 984, 995, 994, 996, 987, 997, 998, 999, - 1000, 1001, 995, 1003, 1002, 992, 1004, 1005, 1001, 1007, - 996, 999, 997, 1006, 1008, 1000, 1002, 998, 1009, 1006, - 1010, 1013, 1003, 1014, 1007, 1005, 1012, 1004, 1015, 1010, - 1017, 1014, 1012, 1019, 1008, 1013, 1016, 1020, 1009, 1018, - 1021, 1016, 1017, 1024, 1018, 1018, 1022, 1022, 1015, 1025, - - 1102, 1020, 1019, 1021, 1023, 1026, 1024, 1102, 1025, 1023, - 1029, 1026, 1023, 1023, 1027, 1027, 1028, 1023, 1030, 1029, - 1031, 1028, 1036, 1023, 1030, 1031, 1032, 1023, 1033, 1033, - 1037, 1032, 1034, 1034, 1035, 1038, 1039, 1035, 1040, 1035, - 1041, 1039, 1036, 1042, 1038, 1043, 14, 1046, 1037, 1042, - 1044, 1043, 1040, 1045, 1052, 1044, 1046, 1045, 1041, 1047, - 1047, 1046, 1048, 1046, 1048, 1046, 1049, 1046, 1051, 1052, - 1053, 1054, 1051, 1055, 1056, 1058, 1057, 1049, 1055, 1055, - 1054, 1057, 1059, 1060, 1061, 1062, 1063, 1064, 1053, 1058, - 1065, 1059, 1064, 1062, 1067, 1068, 1056, 1066, 1070, 1070, - - 1063, 1071, 1060, 1061, 1065, 1069, 1066, 1072, 1072, 1073, - 1069, 1073, 1067, 1076, 1075, 1077, 1071, 1075, 1076, 1079, - 1068, 1078, 1078, 1080, 1080, 1081, 1081, 1082, 1083, 1084, - 1085, 1085, 1082, 1086, 1077, 1087, 1088, 1089, 1087, 1079, - 1099, 1099, 1089, 1090, 1091, 1093, 1091, 13, 1093, 1083, - 1084, 1100, 1090, 1086, 1094, 1095, 1088, 1096, 1097, 1094, - 1095, 1098, 1101, 1097, 1103, 1096, 1098, 1105, 1101, 1100, - 1106, 1109, 1108, 1105, 1107, 1110, 1106, 1103, 1108, 1107, - 1109, 1111, 1112, 1112, 1113, 1115, 1116, 1117, 1122, 1118, - 1119, 1121, 1111, 1117, 1110, 1118, 1119, 1121, 1123, 1124, - - 1125, 1126, 1122, 1128, 1113, 1115, 1127, 1127, 1122, 1116, - 1129, 1124, 1130, 1133, 1125, 1131, 1132, 1132, 1123, 1126, - 1131, 1134, 1136, 1128, 1138, 1139, 1134, 1137, 1142, 1140, - 1130, 1141, 1137, 1137, 1139, 1129, 1133, 1140, 1143, 1144, - 1146, 1136, 1138, 1142, 1144, 1141, 1145, 1144, 1145, 1147, - 1150, 1149, 1151, 1143, 1146, 1147, 1143, 1148, 1152, 1153, - 1155, 1148, 1149, 1154, 1153, 1155, 1156, 1159, 1158, 1150, - 1160, 1161, 1161, 1162, 1163, 1164, 1152, 1162, 1151, 1166, - 1167, 1154, 1158, 1165, 1168, 1159, 1156, 1169, 1160, 1165, - 1170, 1166, 1163, 1171, 1164, 1172, 1173, 1175, 1168, 1167, - - 1172, 1174, 1169, 1173, 1176, 1170, 1174, 1177, 1177, 1178, - 1179, 1180, 1171, 1176, 1181, 1175, 1179, 1182, 1190, 1181, - 1183, 1184, 1184, 1182, 1178, 1189, 1183, 1185, 1185, 1187, - 1187, 1188, 1180, 1191, 1189, 1188, 1190, 1192, 1193, 1194, - 1194, 1195, 1196, 1197, 1198, 1193, 1199, 1191, 1197, 1200, - 1196, 1201, 1192, 1202, 1200, 1200, 1201, 1201, 1198, 1203, - 1203, 1195, 1204, 1205, 1207, 1199, 1206, 1208, 1209, 1211, - 1210, 1212, 1213, 1202, 1211, 1206, 1210, 1216, 1214, 1215, - 1217, 1204, 1205, 1207, 1214, 1215, 1209, 1208, 1218, 1219, - 1220, 1213, 1221, 1225, 1222, 1224, 1216, 1212, 1224, 1217, - - 1223, 1223, 1226, 1226, 1220, 1225, 1227, 1218, 1219, 1222, - 1228, 1227, 1229, 1221, 1228, 1230, 1231, 1232, 1235, 1232, - 1236, 1234, 1237, 1232, 1230, 1229, 1234, 1238, 1238, 1231, - 1239, 1243, 1240, 1235, 1244, 1239, 1232, 1240, 1237, 1241, - 1236, 1242, 1245, 1241, 1246, 1242, 1247, 1247, 1249, 1251, - 1246, 1243, 1244, 1252, 1253, 1253, 1260, 1254, 1252, 1256, - 1256, 1258, 1245, 1254, 1258, 1261, 1249, 1259, 1259, 1264, - 1251, 1263, 1260, 1265, 1263, 1266, 1266, 1267, 1268, 1269, - 1271, 1261, 1265, 1273, 1269, 1270, 1270, 1272, 1277, 1264, - 1274, 1274, 1267, 1275, 1280, 1276, 1278, 1278, 1271, 1268, - - 1276, 1279, 1272, 1277, 1282, 1279, 1283, 1275, 1273, 1281, - 1281, 1284, 1285, 1286, 1280, 1284, 1289, 1283, 1286, 1288, - 1288, 1290, 1291, 1292, 1293, 1295, 1282, 1294, 1294, 1298, - 1295, 1285, 1296, 1297, 1289, 1290, 1300, 1292, 1298, 1299, - 1304, 1291, 1291, 1301, 1299, 1301, 1302, 1309, 1303, 1293, - 1307, 1302, 1296, 1297, 1303, 1305, 1300, 1308, 1308, 1310, - 1304, 1305, 1312, 1313, 1307, 1310, 1309, 1312, 1314, 1314, - 1315, 1315, 1316, 1317, 1318, 1319, 1320, 1320, 1319, 1322, - 1321, 1328, 1323, 1352, 1324, 1323, 1316, 1313, 1323, 1318, - 1324, 1317, 1321, 1325, 1326, 0, 1327, 1352, 1325, 1322, - - 1323, 1327, 1329, 1326, 1330, 1329, 1328, 1331, 1332, 1332, - 1330, 1334, 1331, 1333, 1333, 1335, 1336, 1334, 1337, 1338, - 1335, 1339, 1340, 1343, 1341, 1340, 1342, 1344, 1343, 1336, - 1341, 1345, 1342, 1344, 1346, 1348, 1337, 1349, 1338, 1346, - 1348, 1339, 1347, 1347, 1350, 1351, 1353, 1354, 1355, 1357, - 1356, 1358, 1359, 1360, 1345, 1349, 1356, 1362, 1362, 1354, - 1353, 1355, 1363, 1364, 1350, 1351, 1359, 1367, 1364, 1357, - 1366, 1358, 1365, 1365, 1360, 1368, 1369, 1370, 1371, 1373, - 1372, 1367, 1363, 1376, 1374, 1366, 1370, 1372, 1373, 1378, - 0, 1373, 1379, 1371, 1369, 1379, 1380, 1380, 1376, 1368, - - 1374, 1381, 1381, 1376, 1382, 1383, 1384, 1384, 1383, 1385, - 1386, 1389, 1387, 1388, 1378, 1390, 1382, 1387, 1388, 1391, - 1394, 1392, 1385, 1393, 1390, 1396, 1394, 1389, 1397, 1386, - 1392, 1398, 1393, 1392, 1395, 1395, 1399, 1400, 1391, 1401, - 1403, 1397, 1404, 1405, 1405, 1396, 1406, 1407, 1411, 1398, - 1399, 1401, 1408, 1400, 1409, 1409, 1407, 1408, 1410, 1412, - 1404, 1413, 1406, 1416, 1418, 1403, 1411, 1410, 1414, 1409, - 1410, 0, 1417, 1414, 1414, 1419, 1419, 1416, 1417, 1413, - 1412, 1420, 1418, 1421, 1422, 1423, 1425, 1420, 1421, 1426, - 1422, 1423, 1427, 1429, 1428, 1433, 1429, 1431, 1427, 1434, - - 1435, 1436, 1429, 1426, 1437, 1431, 1425, 1428, 1435, 1438, - 1436, 1439, 1440, 1441, 1433, 1442, 1443, 1437, 1434, 1441, - 1444, 1445, 1438, 1447, 1446, 1439, 1440, 1448, 1442, 1447, - 1449, 1451, 1451, 1452, 1458, 1453, 1443, 1446, 1444, 1453, - 1445, 1454, 1455, 1448, 1456, 1457, 1454, 1455, 1449, 1456, - 1460, 1461, 1461, 1452, 1457, 1462, 1463, 1458, 1464, 1465, - 1465, 1466, 1467, 1470, 1468, 1460, 1469, 1471, 1463, 1467, - 1474, 1473, 1481, 1472, 1462, 1466, 1468, 1464, 1469, 1472, - 1475, 1481, 1470, 1473, 1476, 1476, 1475, 1471, 1474, 1477, - 1478, 1478, 1477, 1480, 1482, 1483, 1483, 1484, 1480, 1485, - - 1482, 1485, 1486, 1487, 1488, 1486, 1489, 1490, 1491, 1484, - 1492, 1495, 1496, 1491, 1494, 1493, 1495, 1497, 1498, 1492, - 1501, 1496, 1500, 1487, 1489, 1490, 1488, 1493, 1500, 1494, - 1499, 1499, 1502, 1498, 1496, 1504, 1503, 1497, 1505, 1510, - 1505, 1501, 1506, 1507, 1507, 1508, 1508, 1509, 1509, 1511, - 1511, 1502, 1503, 1512, 1512, 1504, 1506, 1513, 1506, 1510, - 1514, 1515, 1515, 1516, 1517, 1518, 1520, 1516, 1518, 1521, - 1517, 1522, 1520, 1523, 1525, 1525, 1524, 1522, 1513, 1524, - 1527, 1514, 1526, 1526, 1529, 1530, 1527, 1521, 1528, 1531, - 1532, 1534, 1535, 1538, 1542, 1531, 1534, 1534, 1523, 1541, - - 1528, 1528, 1528, 1537, 1529, 1530, 1535, 1528, 1538, 1536, - 1532, 1536, 1539, 1540, 1537, 1542, 1543, 1543, 1539, 1541, - 1544, 1546, 1540, 1545, 1545, 1547, 1548, 1548, 1549, 1549, - 1550, 1553, 1553, 1554, 1556, 1557, 1559, 1559, 1558, 1560, - 1562, 1546, 1554, 1556, 1558, 1561, 1544, 1547, 1563, 1562, - 1550, 1565, 1561, 1566, 1560, 1568, 1557, 1564, 1564, 1569, - 1568, 1570, 1572, 1571, 1577, 1569, 1573, 1578, 1572, 1566, - 1571, 1576, 1573, 1575, 1563, 1574, 1574, 1565, 1575, 1579, - 1576, 1570, 1580, 1581, 1577, 1580, 1578, 1582, 1583, 1583, - 1584, 1579, 1585, 1586, 1587, 1589, 1584, 1590, 1587, 1593, - - 1594, 1581, 1591, 1595, 1594, 1597, 1597, 1598, 1586, 1595, - 1596, 1598, 1585, 1582, 1587, 1589, 1590, 1591, 1593, 1596, - 1599, 1600, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1616, - 1603, 1599, 1608, 1607, 1606, 1616, 1599, 1608, 1602, 1609, - 1609, 1610, 1610, 1612, 1601, 1611, 1604, 1605, 1607, 1611, - 1613, 1613, 1614, 1614, 1612, 1615, 1617, 1618, 1619, 1612, - 1615, 1615, 1617, 1620, 1622, 1624, 1625, 1623, 1626, 1620, - 1619, 1623, 1627, 1628, 1626, 1629, 1622, 1624, 1631, 1628, - 1632, 1633, 1635, 1618, 1639, 1635, 1633, 1629, 1636, 1636, - 1631, 1625, 1637, 1637, 1627, 1638, 1638, 1640, 0, 1632, - - 1641, 1644, 1642, 1640, 1639, 1643, 1641, 1642, 1646, 1648, - 1644, 1643, 1648, 1646, 1649, 1650, 1650, 1652, 1653, 1654, - 1655, 1655, 1656, 1657, 1654, 1660, 1649, 1658, 1657, 1652, - 1653, 1656, 1658, 1659, 1659, 1661, 1662, 1663, 1664, 1667, - 1670, 1665, 1664, 1666, 1661, 1660, 1665, 1669, 1669, 1666, - 1675, 1671, 1677, 1667, 1662, 1673, 1663, 1674, 1670, 1669, - 1671, 1672, 1672, 1676, 1673, 1677, 1680, 1680, 1676, 1674, - 1682, 1675, 1683, 1682, 1684, 1687, 1686, 1688, 1689, 1690, - 1690, 1696, 1691, 1688, 1691, 1692, 1692, 1695, 1683, 1687, - 1684, 1686, 1693, 1698, 1695, 1689, 1697, 1697, 1699, 1700, - - 1693, 1696, 1698, 1701, 1702, 1703, 1704, 1705, 1707, 1710, - 1708, 1700, 1711, 1705, 1714, 1701, 1702, 1709, 1709, 1699, - 1712, 1704, 1708, 1712, 1713, 1716, 1705, 1710, 1707, 1713, - 1716, 1703, 1711, 1717, 1714, 1717, 1718, 1719, 1720, 1722, - 1724, 1725, 1719, 1727, 1726, 1720, 1726, 1729, 1722, 1724, - 1730, 1730, 1731, 1725, 1718, 1732, 1733, 1736, 1733, 1734, - 1732, 1729, 1727, 1735, 1734, 1737, 1738, 1740, 1735, 1739, - 1743, 1741, 1738, 1744, 1739, 1736, 1745, 1745, 1731, 1741, - 1740, 1746, 1746, 1747, 1748, 1737, 1749, 1744, 1750, 1743, - 1754, 1752, 1749, 1750, 1751, 1759, 1751, 1759, 1747, 1752, - - 1753, 1753, 1754, 1757, 1748, 1755, 1755, 1752, 1756, 1756, - 1758, 1760, 1757, 1763, 1762, 1761, 1765, 1769, 1770, 1758, - 1761, 1761, 1758, 1762, 1766, 1763, 1767, 1772, 1765, 1766, - 1769, 1767, 1760, 1771, 1771, 1773, 1774, 1775, 1770, 1776, - 0, 1780, 1781, 1778, 1779, 1772, 1780, 1781, 1787, 1789, - 1788, 1775, 1774, 1773, 1776, 1778, 1779, 1784, 1786, 1790, - 1791, 1791, 1794, 1784, 1786, 1788, 1792, 1796, 1790, 1793, - 1793, 1787, 1796, 1795, 1789, 1792, 1784, 1795, 1797, 1798, - 1799, 1794, 1800, 1803, 1798, 1798, 1799, 1801, 1800, 1802, - 1801, 1797, 1806, 1806, 1807, 1807, 1808, 1802, 1809, 1809, - - 1810, 1810, 1811, 1803, 1812, 1808, 1813, 1821, 1814, 1807, - 1815, 1815, 1813, 1814, 1811, 1816, 1816, 1820, 1817, 1818, - 1807, 1820, 1812, 1817, 1822, 1818, 1824, 1821, 1822, 1825, - 1826, 1827, 1828, 1830, 1825, 1833, 1829, 1828, 1831, 1831, - 1832, 1835, 1834, 1836, 1832, 1837, 1827, 1834, 1839, 1830, - 1833, 1824, 1838, 1826, 1829, 1836, 1840, 1838, 1841, 1841, - 1843, 1839, 1844, 1845, 1837, 1846, 1847, 1835, 1843, 0, - 1848, 1849, 1850, 1851, 1840, 1872, 1853, 1854, 1854, 1857, - 1855, 1844, 1845, 1855, 1850, 1856, 1858, 1872, 1846, 1848, - 1847, 1853, 1849, 1857, 1851, 1859, 1859, 1862, 1856, 1858, - - 1860, 1860, 1861, 1861, 1863, 1864, 1864, 1865, 1866, 1866, - 1867, 1870, 1862, 1869, 1871, 1867, 1865, 1863, 1869, 1865, - 1873, 1873, 1874, 1874, 1875, 1876, 1876, 1877, 1878, 1878, - 1882, 1870, 1879, 1883, 1871, 1880, 1880, 1881, 1881, 1884, - 1888, 1886, 1883, 1875, 1882, 1877, 1886, 1879, 1887, 1887, - 1889, 1889, 1890, 1892, 1891, 1895, 1892, 1896, 1884, 1888, - 1891, 1893, 1893, 1894, 1894, 1897, 1898, 1898, 1900, 1901, - 1890, 1902, 1896, 0, 1895, 1903, 1905, 1893, 1906, 1903, - 1904, 1904, 1907, 1910, 1897, 1912, 1902, 1911, 1900, 1909, - 1909, 1913, 1901, 1906, 1911, 1905, 1915, 1907, 1917, 1912, - - 1914, 1914, 1916, 1910, 1916, 1915, 1920, 1919, 1921, 1922, - 1923, 1920, 1924, 1921, 1929, 1925, 1927, 1913, 1917, 1919, - 1925, 1927, 1928, 1923, 1930, 1931, 1932, 1928, 1934, 1929, - 1930, 1933, 1932, 1924, 1922, 1935, 1933, 0, 1936, 1941, - 1937, 1938, 1939, 1940, 1944, 1941, 1931, 1936, 1935, 1937, - 1938, 1939, 1942, 1934, 1946, 1948, 1942, 1940, 1947, 1947, - 1950, 1948, 1952, 1946, 1944, 1949, 1949, 1953, 1954, 1954, - 1955, 1960, 1956, 1959, 1949, 1958, 1961, 1965, 1952, 1964, - 1950, 1956, 1950, 1953, 1964, 1955, 1960, 1958, 1961, 1959, - 1963, 1966, 1983, 1963, 1967, 1967, 1983, 1965, 1968, 1968, - - 1970, 1970, 1971, 1966, 1972, 1971, 1973, 1974, 1976, 1972, - 1975, 1975, 1973, 1974, 1977, 1977, 1978, 1979, 1980, 1981, - 1981, 1984, 1976, 1988, 1984, 1985, 1985, 1986, 1978, 1987, - 1989, 1979, 1986, 1991, 1989, 1990, 1990, 1980, 1987, 1993, - 1994, 1995, 1996, 1988, 1993, 1997, 1991, 1998, 1999, 1997, - 2002, 2000, 2001, 1999, 2004, 2014, 1996, 2000, 2001, 2005, - 1994, 1995, 2011, 2006, 2005, 2007, 0, 1998, 2002, 2006, - 2004, 2017, 2008, 2007, 2008, 2017, 2011, 2012, 2012, 2013, - 2018, 2014, 2013, 2015, 2015, 2019, 2018, 2020, 2020, 2021, - 2024, 2024, 2026, 2028, 2031, 2032, 2033, 2019, 2021, 2031, - - 2038, 2033, 2034, 2034, 2036, 2036, 2038, 2028, 2039, 2039, - 2026, 2040, 2041, 2042, 2044, 2048, 2045, 2049, 2042, 2046, - 2046, 2032, 2050, 2049, 2048, 2054, 2051, 2040, 2045, 2053, - 2053, 2055, 2062, 2044, 2041, 2057, 2057, 2058, 2058, 2063, - 2050, 2051, 2059, 2060, 2054, 2064, 2062, 2059, 2060, 2055, - 2061, 2065, 2061, 2063, 2066, 2066, 2065, 2067, 2067, 2068, - 2068, 2069, 2069, 2070, 2071, 2064, 2072, 2072, 2073, 2073, - 2076, 2074, 2075, 2077, 2081, 2070, 2078, 2078, 2079, 2079, - 2080, 2080, 2071, 2074, 2075, 2082, 2081, 2083, 2084, 2077, - 2076, 2085, 2082, 2086, 2087, 2087, 2085, 2088, 2089, 2083, - - 2090, 2091, 2092, 2093, 2094, 2094, 2088, 2095, 2084, 2100, - 2096, 2099, 2097, 2086, 2091, 2101, 2095, 2093, 2102, 2103, - 2090, 2102, 0, 2104, 2089, 2096, 2092, 2097, 2104, 2099, - 2105, 2100, 2113, 2103, 2115, 2105, 2106, 2106, 2101, 2107, - 2107, 2108, 2108, 2110, 2110, 2112, 2112, 2114, 2117, 2118, - 2113, 2119, 2120, 2115, 2121, 2122, 2123, 2127, 2114, 2124, - 2124, 2126, 2126, 2121, 2129, 2129, 2133, 2118, 2117, 2128, - 2134, 2131, 2120, 2119, 2123, 2122, 2132, 2132, 2128, 2127, - 2131, 2136, 2135, 2137, 2133, 2138, 2139, 2140, 2134, 2135, - 2141, 2141, 2142, 2142, 2143, 2144, 2136, 2145, 2146, 2147, - - 2143, 2137, 2139, 2138, 2147, 2148, 2140, 2149, 2151, 2150, - 2151, 2156, 2145, 2144, 2150, 2152, 2152, 2146, 2153, 2158, - 2153, 2154, 2154, 2159, 2160, 2148, 2161, 2149, 2158, 2162, - 2156, 2161, 2165, 2166, 2167, 2167, 2166, 2169, 2168, 2170, - 2170, 2171, 2159, 2173, 2160, 2171, 2174, 2176, 2162, 2178, - 2174, 2179, 2165, 2168, 2182, 2169, 2175, 2175, 2173, 2184, - 2176, 2180, 2180, 2183, 2183, 2186, 2182, 2185, 2185, 2178, - 2186, 2179, 2187, 2188, 2188, 2193, 2193, 2194, 2184, 2195, - 2196, 2197, 2198, 2200, 2187, 2199, 2199, 2205, 2207, 2204, - 2197, 2198, 2195, 2196, 2204, 2206, 2207, 2208, 2200, 2194, - - 2206, 2205, 2209, 2211, 2212, 2214, 2213, 2215, 2215, 2212, - 2209, 2213, 2216, 2216, 2217, 2219, 2208, 2218, 2211, 2220, - 2214, 2217, 2218, 2221, 2224, 2222, 2223, 2223, 0, 2221, - 2222, 2225, 2230, 2219, 2226, 2226, 2225, 2220, 0, 2224, - 2227, 2227, 2231, 2231, 2232, 2230, 2233, 2232, 2234, 2235, - 2236, 2233, 2233, 2234, 2235, 2237, 2236, 2238, 2239, 2237, - 2240, 2241, 2238, 2242, 2243, 2245, 2248, 2239, 2242, 2241, - 2245, 2246, 2250, 2252, 2246, 2240, 2243, 2250, 2248, 2251, - 2253, 2254, 2260, 2255, 2251, 2256, 2256, 2257, 2261, 2266, - 2254, 2252, 2255, 2253, 2262, 2264, 2257, 2263, 2263, 2268, - - 2265, 2260, 2267, 2267, 2266, 2270, 2272, 2273, 2261, 2265, - 2655, 2273, 2655, 2262, 2264, 2274, 2274, 2275, 2268, 2276, - 2270, 2277, 2277, 2275, 2278, 2276, 2272, 2281, 2279, 2282, - 2284, 2285, 2278, 2279, 2284, 2286, 2281, 2288, 2288, 2289, - 2289, 2296, 2282, 2290, 2290, 2285, 2292, 2292, 2294, 2294, - 2286, 2297, 2299, 2300, 2300, 2304, 2297, 2297, 2301, 2301, - 2306, 2296, 2302, 2302, 2303, 2307, 2307, 2303, 2304, 2308, - 2308, 2310, 2299, 2309, 2309, 2311, 2311, 2312, 2306, 2313, - 2316, 2314, 2315, 2315, 2316, 2319, 2310, 2314, 2320, 2321, - 2319, 2319, 2322, 2313, 2323, 2312, 2324, 2325, 2335, 2326, - - 2323, 2330, 2324, 2326, 2327, 2327, 2330, 2332, 2337, 2321, - 2333, 2320, 2322, 2333, 2336, 2332, 2338, 2336, 2339, 2340, - 2341, 2338, 2325, 2335, 2343, 2337, 2337, 2342, 2342, 2344, - 2346, 2347, 2347, 2355, 2341, 2345, 2339, 2344, 2352, 2340, - 2345, 2345, 2354, 2343, 2348, 2348, 2349, 2349, 2356, 2346, - 2350, 2350, 2351, 2351, 2352, 2353, 2357, 2356, 2358, 2355, - 2353, 2362, 2354, 2360, 2360, 2361, 2364, 2364, 2361, 2367, - 2365, 2366, 2366, 2369, 2367, 2370, 2357, 2365, 2358, 2362, - 2372, 2375, 2369, 2374, 2370, 2373, 2373, 2374, 2376, 2377, - 2375, 2378, 2379, 2385, 2377, 2377, 2384, 2384, 2372, 2387, - - 2388, 2379, 2391, 2376, 2378, 2392, 2393, 2395, 2387, 2397, - 2399, 2385, 2388, 2401, 2392, 2399, 2400, 2400, 2403, 2395, - 2404, 2404, 2401, 2403, 2404, 2410, 2393, 2391, 2406, 2406, - 2397, 2407, 2407, 2408, 2408, 2409, 2411, 2412, 2415, 2418, - 2414, 2419, 2412, 2415, 2409, 2410, 2414, 2416, 2417, 2417, - 2421, 2420, 2416, 2422, 2423, 2411, 2420, 2418, 2426, 2422, - 2424, 2424, 2419, 2427, 2428, 2430, 2430, 2432, 2421, 2433, - 2434, 2436, 2435, 2437, 2434, 2438, 2440, 2426, 2427, 2423, - 2432, 2435, 2433, 2438, 2428, 2439, 2442, 2436, 2441, 2441, - 2439, 2447, 2437, 2444, 2444, 2445, 2445, 2449, 2449, 2450, - - 2451, 2452, 2440, 2454, 2454, 2442, 2452, 2455, 2456, 2457, - 2459, 2459, 2447, 2463, 2462, 2450, 2451, 2466, 2460, 2462, - 2464, 2464, 2465, 2465, 2467, 2467, 2469, 2455, 2457, 2468, - 2470, 2456, 2460, 2471, 2472, 2463, 2479, 2466, 2468, 2473, - 2473, 2475, 2475, 2480, 2467, 2471, 2469, 2474, 2479, 2470, - 2474, 2481, 2482, 2482, 2472, 2483, 2484, 2481, 2483, 2485, - 2487, 2488, 2484, 2480, 2489, 2487, 2488, 2490, 2491, 2492, - 2492, 2494, 2494, 2490, 2495, 2496, 2501, 2485, 2498, 2498, - 2499, 2499, 2500, 2489, 2496, 2491, 2491, 2500, 2511, 2502, - 2501, 2503, 2503, 2495, 2502, 2504, 2504, 2505, 2505, 2506, - - 2508, 2508, 2513, 2514, 2506, 2515, 2515, 2511, 2517, 2517, - 2519, 2520, 2518, 2521, 2521, 2522, 2523, 2526, 2526, 2529, - 2520, 2523, 2528, 2528, 2513, 2514, 2518, 2535, 2531, 2530, - 2519, 2532, 2532, 2529, 2522, 2530, 2531, 2533, 2536, 2537, - 2538, 2542, 2533, 2539, 2537, 2541, 2543, 2535, 2544, 2539, - 2548, 2545, 2538, 2541, 2546, 2547, 2549, 2552, 2536, 2590, - 2542, 2549, 2553, 2556, 2556, 2590, 2543, 2577, 2544, 2545, - 2546, 2548, 2547, 2547, 2577, 2553, 2558, 2552, 2557, 2557, - 2558, 2562, 2562, 2564, 2564, 2565, 2565, 2567, 2565, 2566, - 2566, 2567, 2566, 2569, 2569, 2570, 2571, 2573, 2574, 2574, - - 2578, 2579, 2573, 2581, 2578, 2582, 2583, 2583, 2584, 2584, - 2571, 2585, 2585, 2570, 2582, 2586, 2579, 2587, 2589, 2588, - 2591, 2581, 2587, 2589, 2589, 2592, 2593, 2594, 2588, 2595, - 2586, 2588, 2594, 2596, 2595, 2597, 2597, 2598, 2601, 2601, - 2592, 2612, 2598, 2604, 2604, 2591, 2624, 2593, 2605, 2605, - 2606, 2606, 2596, 2607, 2607, 2608, 2608, 2610, 2611, 2611, - 2615, 2612, 2614, 2614, 2616, 2618, 2610, 2617, 2617, 2619, - 2619, 2622, 2624, 2626, 2623, 2615, 2616, 2623, 2625, 2625, - 2618, 2628, 2629, 2630, 2628, 2631, 2632, 2634, 2629, 2622, - 2631, 2626, 2633, 2636, 2647, 2643, 2649, 2630, 2643, 2645, - - 2645, 2650, 2648, 2634, 2652, 2632, 2648, 2653, 2636, 2654, - 2633, 2656, 2657, 2657, 2654, 2650, 2649, 2647, 2653, 2658, - 2659, 2661, 2660, 2662, 2664, 2681, 2656, 2652, 2663, 2665, - 2667, 2681, 2658, 2668, 2668, 2670, 2670, 2661, 2669, 2659, - 2660, 2671, 2671, 2663, 2667, 2664, 2674, 2669, 2662, 2665, - 2672, 2672, 2673, 2673, 2675, 2676, 2677, 2678, 2676, 2679, - 2680, 2677, 2678, 2682, 2685, 2674, 2683, 2684, 2684, 2689, - 2687, 2692, 2692, 2694, 2675, 2680, 2695, 2682, 2693, 2693, - 2698, 2694, 2696, 2685, 2679, 2687, 2683, 2689, 2696, 2699, - 2697, 2700, 2701, 2701, 2698, 2695, 2697, 2703, 2704, 2705, - - 2707, 2708, 2699, 2705, 2709, 2710, 2708, 2712, 2711, 2713, - 2700, 2714, 2704, 2716, 2713, 2717, 2714, 2703, 2710, 0, - 2707, 2711, 2719, 2709, 2718, 2718, 2712, 2719, 2725, 2720, - 0, 2716, 2721, 2721, 2717, 2720, 2722, 2723, 2724, 2726, - 2731, 2722, 2723, 2724, 2727, 2726, 2732, 2725, 2730, 2727, - 2728, 2728, 2730, 2732, 2733, 2734, 2735, 2736, 2737, 2731, - 2738, 2738, 2735, 2740, 2740, 2742, 2741, 2743, 2744, 2745, - 2742, 2737, 2747, 2733, 2734, 2741, 2736, 2747, 2741, 2746, - 2746, 2748, 2745, 2750, 2751, 2751, 2743, 2744, 2752, 2753, - 2753, 2754, 2754, 2755, 2748, 2756, 2757, 2762, 2755, 2758, - - 2758, 2759, 2756, 2760, 2762, 2760, 2759, 2752, 2764, 2750, - 2761, 2761, 2763, 2765, 2766, 2757, 2768, 2768, 2765, 2763, - 2769, 2771, 2773, 2772, 2774, 2778, 2771, 2764, 2772, 2775, - 2775, 2777, 2777, 2766, 2779, 2780, 2780, 2781, 2781, 2769, - 2782, 2773, 2792, 2774, 2778, 2784, 2784, 2782, 2785, 2785, - 2786, 2788, 2793, 2779, 2791, 0, 2788, 2786, 0, 2791, - 0, 2792, 2794, 2794, 2795, 2795, 0, 0, 0, 0, - 0, 2793, 2799, 2799, 2799, 2799, 2799, 2799, 2799, 2800, - 2800, 2800, 2800, 2800, 2800, 2800, 2801, 2801, 2801, 2801, - 2801, 2801, 2801, 2802, 2802, 2802, 2802, 2802, 2802, 2802, - - 2803, 2803, 2803, 2803, 2803, 2803, 2803, 2805, 2805, 0, - 2805, 2805, 2805, 2805, 2806, 2806, 0, 0, 0, 2806, - 2806, 2807, 2807, 0, 0, 2807, 0, 2807, 2808, 0, - 0, 0, 0, 0, 2808, 2809, 2809, 0, 0, 0, - 2809, 2809, 2810, 0, 0, 0, 0, 0, 2810, 2811, - 2811, 0, 2811, 2811, 2811, 2811, 2812, 2812, 0, 2812, - 2812, 2812, 2812, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, - - 2798, 2798, 2798, 2798 + 199, 188, 194, 188, 195, 197, 191, 198, 194, 200, + + 195, 197, 202, 198, 201, 200, 204, 196, 202, 201, + 203, 199, 198, 204, 205, 206, 203, 207, 208, 209, + 210, 206, 211, 213, 208, 212, 215, 205, 210, 214, + 212, 216, 213, 217, 218, 211, 219, 207, 217, 220, + 219, 209, 215, 221, 214, 222, 224, 223, 225, 221, + 225, 216, 218, 223, 227, 226, 229, 231, 146, 228, + 227, 220, 226, 222, 222, 228, 224, 230, 234, 231, + 232, 232, 235, 230, 234, 229, 233, 233, 235, 236, + 237, 236, 238, 239, 243, 240, 241, 238, 242, 243, + 244, 245, 234, 246, 241, 239, 247, 245, 236, 246, + + 248, 247, 250, 237, 240, 248, 249, 251, 242, 252, + 253, 254, 249, 244, 255, 257, 256, 250, 257, 254, + 261, 251, 256, 258, 253, 258, 264, 252, 259, 259, + 260, 262, 262, 260, 263, 263, 265, 266, 261, 255, + 266, 267, 264, 268, 269, 267, 270, 271, 278, 273, + 269, 265, 268, 271, 272, 273, 272, 274, 275, 275, + 270, 274, 276, 277, 279, 280, 281, 276, 278, 277, + 282, 282, 283, 284, 286, 283, 285, 288, 274, 281, + 285, 290, 279, 287, 287, 289, 280, 293, 289, 295, + 291, 284, 286, 290, 292, 288, 291, 292, 295, 293, + + 294, 297, 298, 296, 301, 298, 297, 298, 299, 294, + 144, 299, 294, 300, 303, 303, 301, 294, 294, 294, + 294, 296, 302, 298, 302, 302, 300, 304, 305, 306, + 304, 307, 308, 309, 309, 311, 311, 310, 312, 315, + 307, 308, 310, 314, 306, 305, 313, 316, 305, 317, + 318, 313, 319, 312, 320, 314, 318, 321, 315, 320, + 322, 354, 325, 321, 317, 322, 323, 316, 332, 333, + 324, 323, 319, 324, 327, 324, 325, 323, 326, 328, + 334, 326, 329, 327, 354, 328, 335, 329, 332, 330, + 333, 338, 330, 340, 326, 334, 344, 326, 330, 326, + + 335, 337, 330, 343, 337, 338, 341, 345, 340, 343, + 330, 331, 331, 342, 331, 341, 346, 344, 342, 342, + 337, 348, 349, 351, 347, 352, 345, 331, 349, 350, + 331, 346, 331, 347, 331, 339, 353, 339, 339, 352, + 348, 355, 353, 351, 356, 357, 353, 339, 358, 339, + 339, 339, 359, 358, 339, 350, 360, 361, 361, 362, + 357, 355, 360, 363, 356, 365, 364, 359, 366, 367, + 370, 365, 368, 369, 369, 363, 369, 368, 371, 362, + 364, 372, 373, 375, 374, 367, 374, 375, 376, 378, + 370, 379, 376, 366, 371, 380, 373, 372, 377, 377, + + 381, 382, 142, 383, 374, 384, 379, 376, 378, 386, + 387, 380, 383, 386, 384, 382, 385, 389, 381, 387, + 388, 385, 390, 383, 392, 383, 388, 391, 390, 392, + 393, 391, 394, 394, 395, 396, 397, 399, 389, 401, + 396, 398, 398, 399, 400, 402, 403, 395, 400, 397, + 393, 403, 404, 405, 401, 406, 407, 404, 409, 408, + 410, 411, 405, 410, 414, 411, 402, 406, 412, 414, + 409, 413, 413, 415, 416, 416, 407, 408, 418, 418, + 412, 419, 420, 421, 422, 423, 426, 425, 140, 427, + 420, 429, 421, 428, 415, 430, 432, 423, 70, 428, + + 429, 430, 419, 427, 422, 425, 426, 425, 431, 433, + 432, 435, 434, 431, 438, 437, 436, 433, 434, 436, + 433, 437, 439, 440, 443, 441, 442, 439, 438, 443, + 442, 435, 444, 445, 446, 447, 450, 449, 445, 437, + 451, 452, 453, 64, 451, 440, 441, 444, 454, 458, + 446, 450, 454, 456, 447, 448, 448, 449, 453, 455, + 452, 448, 457, 448, 455, 458, 460, 457, 456, 448, + 459, 448, 460, 461, 448, 448, 463, 460, 465, 459, + 462, 448, 467, 462, 464, 464, 466, 466, 468, 461, + 469, 470, 471, 472, 474, 473, 463, 467, 472, 59, + + 468, 475, 476, 465, 473, 469, 478, 479, 476, 481, + 470, 479, 480, 474, 471, 478, 475, 482, 480, 483, + 484, 481, 485, 486, 487, 489, 488, 489, 487, 491, + 491, 54, 482, 493, 484, 490, 492, 485, 483, 488, + 494, 486, 492, 490, 495, 493, 494, 496, 497, 498, + 496, 500, 499, 502, 500, 503, 495, 499, 501, 504, + 503, 503, 497, 53, 498, 505, 505, 501, 511, 502, + 506, 506, 504, 507, 501, 508, 508, 501, 510, 507, + 509, 509, 512, 513, 510, 512, 514, 515, 513, 511, + 516, 517, 518, 516, 519, 515, 517, 520, 521, 522, + + 523, 520, 524, 522, 521, 514, 525, 524, 526, 528, + 530, 527, 532, 519, 526, 518, 527, 529, 523, 533, + 529, 531, 531, 528, 533, 529, 525, 534, 530, 529, + 532, 535, 534, 536, 537, 538, 539, 540, 541, 539, + 537, 540, 543, 541, 538, 535, 542, 543, 536, 542, + 544, 545, 546, 547, 548, 549, 549, 551, 547, 550, + 554, 552, 553, 540, 555, 546, 544, 556, 550, 545, + 555, 553, 554, 556, 548, 557, 551, 552, 557, 558, + 559, 560, 558, 561, 562, 559, 563, 564, 48, 565, + 562, 563, 565, 564, 568, 566, 567, 561, 569, 560, + + 566, 567, 567, 570, 571, 572, 573, 568, 574, 575, + 571, 569, 575, 574, 576, 573, 577, 580, 580, 581, + 576, 578, 570, 570, 572, 579, 578, 575, 577, 583, + 579, 579, 582, 584, 582, 584, 585, 586, 587, 588, + 589, 590, 591, 43, 581, 590, 592, 593, 583, 594, + 595, 591, 596, 597, 585, 586, 587, 598, 588, 599, + 589, 592, 593, 598, 596, 600, 601, 594, 597, 595, + 602, 603, 604, 599, 605, 603, 606, 600, 607, 608, + 609, 609, 610, 611, 612, 601, 610, 614, 615, 602, + 604, 613, 605, 608, 606, 612, 613, 607, 616, 617, + + 618, 619, 611, 614, 620, 618, 617, 615, 619, 620, + 621, 616, 622, 623, 624, 621, 626, 625, 630, 628, + 623, 627, 630, 624, 628, 626, 629, 631, 632, 629, + 622, 625, 633, 627, 634, 635, 641, 632, 636, 636, + 639, 631, 637, 637, 638, 638, 642, 633, 634, 639, + 643, 637, 642, 644, 645, 641, 635, 644, 646, 647, + 649, 648, 650, 651, 652, 653, 645, 648, 649, 650, + 643, 656, 663, 659, 14, 654, 664, 647, 663, 662, + 654, 651, 668, 646, 654, 653, 656, 654, 662, 652, + 659, 665, 664, 668, 654, 665, 669, 654, 666, 666, + + 667, 667, 670, 671, 672, 677, 674, 13, 675, 676, + 672, 674, 678, 680, 669, 678, 670, 679, 679, 682, + 680, 681, 681, 671, 673, 673, 673, 676, 673, 675, + 677, 673, 683, 683, 682, 684, 673, 688, 685, 686, + 684, 685, 673, 673, 686, 687, 689, 687, 690, 688, + 691, 693, 690, 692, 694, 694, 695, 697, 697, 693, + 696, 698, 700, 699, 701, 689, 702, 702, 705, 701, + 691, 695, 692, 705, 696, 699, 703, 706, 714, 698, + 707, 703, 703, 706, 700, 708, 707, 709, 710, 711, + 708, 710, 712, 709, 713, 711, 714, 716, 715, 717, + + 712, 719, 713, 715, 716, 718, 718, 720, 721, 722, + 719, 724, 725, 730, 721, 720, 727, 726, 717, 729, + 724, 725, 726, 728, 729, 727, 728, 730, 722, 731, + 732, 732, 733, 734, 735, 736, 739, 737, 739, 741, + 737, 740, 740, 735, 742, 743, 746, 733, 737, 742, + 744, 745, 734, 747, 731, 748, 750, 749, 751, 736, + 741, 749, 755, 752, 748, 756, 743, 753, 746, 752, + 744, 745, 754, 747, 750, 758, 753, 751, 759, 756, + 757, 755, 761, 759, 754, 762, 757, 760, 760, 758, + 763, 764, 765, 766, 762, 767, 770, 769, 768, 771, + + 772, 767, 761, 769, 772, 771, 773, 774, 776, 0, + 763, 764, 768, 766, 765, 775, 770, 777, 777, 774, + 775, 779, 778, 780, 779, 773, 781, 774, 778, 776, + 782, 783, 784, 784, 785, 786, 782, 787, 787, 781, + 786, 780, 788, 789, 790, 790, 791, 789, 793, 792, + 796, 783, 785, 793, 794, 799, 797, 788, 800, 802, + 802, 803, 804, 805, 805, 803, 808, 806, 791, 792, + 797, 969, 807, 794, 796, 799, 807, 804, 969, 800, + 801, 808, 810, 801, 809, 801, 811, 810, 812, 801, + 813, 801, 806, 812, 812, 814, 801, 815, 809, 814, + + 811, 801, 816, 817, 813, 818, 819, 816, 817, 820, + 821, 827, 815, 825, 822, 823, 821, 816, 825, 818, + 822, 823, 826, 820, 824, 824, 828, 819, 826, 829, + 831, 832, 833, 827, 835, 835, 832, 0, 834, 836, + 839, 838, 831, 837, 836, 828, 833, 829, 830, 830, + 834, 837, 840, 846, 830, 838, 830, 841, 841, 839, + 842, 849, 830, 844, 842, 847, 849, 830, 830, 844, + 845, 840, 846, 845, 830, 848, 850, 851, 847, 852, + 853, 848, 855, 854, 856, 857, 851, 858, 852, 854, + 857, 855, 859, 860, 864, 850, 853, 861, 865, 862, + + 864, 863, 867, 856, 865, 869, 859, 858, 862, 861, + 863, 870, 872, 860, 871, 874, 873, 875, 867, 869, + 876, 0, 875, 877, 883, 876, 872, 878, 877, 880, + 874, 870, 881, 871, 873, 880, 878, 879, 879, 886, + 883, 884, 886, 887, 888, 881, 884, 884, 885, 885, + 889, 893, 885, 890, 891, 892, 894, 887, 896, 899, + 895, 892, 894, 895, 888, 897, 890, 898, 889, 891, + 897, 893, 898, 900, 902, 899, 901, 904, 900, 896, + 905, 901, 906, 904, 907, 909, 902, 910, 906, 912, + 907, 908, 908, 913, 909, 911, 905, 914, 911, 915, + + 916, 919, 915, 917, 918, 910, 919, 912, 924, 917, + 918, 920, 913, 916, 921, 922, 920, 914, 925, 921, + 928, 922, 926, 927, 927, 929, 924, 930, 926, 928, + 930, 931, 933, 932, 931, 934, 935, 937, 925, 936, + 940, 938, 935, 929, 932, 936, 938, 934, 939, 939, + 933, 941, 937, 943, 942, 944, 946, 943, 945, 940, + 947, 949, 950, 950, 952, 941, 942, 945, 953, 954, + 956, 955, 958, 944, 985, 946, 955, 985, 952, 956, + 949, 954, 959, 953, 960, 947, 957, 957, 959, 961, + 960, 962, 958, 962, 961, 963, 964, 965, 966, 967, + + 963, 968, 970, 966, 971, 973, 973, 974, 975, 976, + 964, 965, 977, 978, 967, 981, 981, 970, 977, 986, + 968, 974, 979, 971, 976, 982, 975, 979, 983, 984, + 982, 987, 989, 978, 988, 983, 979, 986, 979, 988, + 987, 979, 990, 984, 991, 992, 997, 990, 994, 994, + 1001, 989, 995, 996, 998, 991, 999, 995, 996, 998, + 999, 1000, 1002, 1003, 992, 1001, 997, 1004, 1005, 1006, + 1000, 1008, 1007, 1009, 1010, 1011, 1006, 1002, 1012, 1004, + 1013, 1011, 1003, 1005, 1007, 1014, 1015, 1018, 1019, 1020, + 1008, 1017, 1010, 1012, 1009, 1015, 1019, 1017, 1021, 1022, + + 1013, 1018, 1023, 1021, 1024, 1014, 1025, 1023, 1023, 1020, + 1030, 1022, 1026, 1027, 1027, 1029, 1031, 1032, 1032, 1030, + 1025, 1034, 1031, 1024, 1033, 1026, 1028, 1035, 1029, 1033, + 1034, 1028, 1036, 1035, 1028, 1028, 1037, 1036, 1041, 1028, + 1044, 1037, 1038, 1038, 1042, 1028, 1039, 1039, 1040, 1028, + 1043, 1040, 1045, 1040, 1046, 1047, 0, 1045, 1041, 1043, + 1044, 1048, 1042, 1049, 1054, 1050, 1054, 1048, 1046, 1049, + 1050, 1051, 1052, 1047, 1055, 1051, 1053, 1053, 1057, 1058, + 1059, 1052, 1057, 1062, 1060, 1055, 1052, 1064, 1052, 0, + 1052, 1061, 1052, 1060, 1058, 1063, 1061, 1061, 1059, 1065, + + 1063, 1064, 1066, 1067, 1068, 1062, 1069, 1072, 1065, 1070, + 1071, 1073, 1068, 1074, 1070, 1077, 1072, 1079, 1075, 1079, + 1069, 1066, 1067, 1075, 1071, 1076, 1076, 1078, 1078, 1073, + 1077, 1081, 1082, 1083, 1081, 1084, 1084, 1082, 1074, 1085, + 1086, 1086, 1087, 1087, 1088, 1089, 1090, 1091, 1091, 1088, + 1092, 1093, 1083, 1094, 1093, 1095, 1096, 1100, 0, 1085, + 1095, 1097, 1100, 1097, 1101, 1096, 1089, 1090, 1099, 1101, + 1092, 1099, 1102, 1094, 1103, 1106, 1104, 1105, 1105, 1103, + 1102, 1104, 1107, 1108, 1109, 1111, 1112, 1115, 1107, 1113, + 1108, 1111, 1112, 1106, 1113, 1114, 1115, 1109, 1116, 1117, + + 1119, 1114, 1118, 1118, 1121, 1122, 1123, 1124, 1125, 1127, + 1117, 1128, 1123, 1124, 1125, 1127, 1129, 1116, 1130, 1131, + 1119, 1132, 1133, 1133, 1121, 1128, 1134, 1135, 1122, 1136, + 1130, 1128, 1137, 1131, 1138, 1138, 1129, 1137, 1139, 1132, + 1140, 1142, 1145, 1143, 1144, 1140, 1134, 1136, 1143, 1143, + 1146, 1145, 1135, 1147, 1148, 1149, 1157, 1151, 1146, 1151, + 1142, 1139, 1144, 1150, 1152, 1155, 1153, 1147, 1150, 1148, + 1149, 1150, 1153, 1149, 1156, 1154, 1155, 1158, 1152, 1154, + 1159, 1160, 1157, 1161, 1162, 1159, 1164, 1165, 1161, 1166, + 1167, 1167, 1168, 1156, 1169, 1158, 1168, 1170, 1172, 1160, + + 1164, 1173, 1171, 1174, 1162, 1165, 1175, 1166, 1171, 1176, + 1172, 1177, 1169, 1178, 1180, 1179, 1170, 1174, 1178, 1180, + 1173, 1175, 1179, 1181, 1176, 1182, 1183, 1183, 1184, 1185, + 1177, 1186, 1187, 1188, 1182, 1185, 1189, 1187, 1196, 1188, + 1198, 1181, 1189, 1184, 1190, 1190, 1191, 1191, 1193, 1193, + 1194, 1195, 1186, 1197, 1194, 1198, 1196, 1199, 1200, 1200, + 1195, 1201, 1202, 1203, 1199, 1204, 1205, 1197, 1203, 1206, + 1202, 1207, 1208, 1215, 1206, 1206, 1207, 1207, 1210, 1204, + 1211, 1201, 1209, 1209, 1212, 1205, 1213, 1214, 1216, 1218, + 1217, 1215, 1208, 1212, 1216, 1217, 1219, 1210, 1220, 1211, + + 1221, 1223, 1219, 1222, 1224, 1213, 1221, 1214, 1225, 1222, + 1226, 1227, 1228, 1229, 1232, 1218, 0, 1220, 1230, 1230, + 1223, 1231, 1236, 1224, 1231, 1227, 1232, 1225, 1229, 1226, + 1233, 1233, 1234, 1228, 1235, 1236, 1237, 1234, 1235, 1238, + 1239, 1242, 1239, 1241, 1243, 1237, 1239, 1244, 1241, 1245, + 1245, 1250, 1238, 1246, 1251, 1247, 1242, 1248, 1246, 1239, + 1247, 1248, 1249, 1244, 1243, 1252, 1249, 1253, 1254, 1254, + 1256, 1250, 1251, 1253, 1258, 1259, 1260, 1260, 1261, 1271, + 1259, 1263, 1263, 1265, 1261, 1252, 1265, 1267, 1256, 1266, + 1266, 1268, 1272, 1270, 1274, 1258, 1270, 1273, 1273, 1271, + + 1275, 1272, 1278, 1267, 1279, 1276, 1280, 1268, 1282, 1274, + 1276, 1277, 1277, 1281, 1281, 1284, 1285, 1285, 1283, 1279, + 1278, 1275, 1282, 1283, 1286, 1287, 1288, 1288, 1286, 1289, + 1284, 1280, 1290, 1291, 1292, 1293, 1296, 1291, 1295, 1295, + 1293, 1297, 1298, 1290, 1299, 1287, 1300, 1301, 1301, 1303, + 1304, 1289, 1302, 1292, 1296, 1297, 1305, 1302, 1299, 1306, + 1307, 1298, 1298, 1311, 1306, 1305, 1308, 1309, 1308, 1303, + 1304, 1300, 1309, 1310, 1314, 1312, 1315, 1315, 1316, 1310, + 1307, 1312, 1319, 1311, 1317, 1320, 1323, 1319, 1314, 1324, + 1317, 1321, 1321, 1322, 1322, 1325, 1326, 1316, 1329, 1326, + + 1323, 1327, 1327, 1328, 1333, 1330, 1331, 1324, 1330, 1320, + 1325, 1330, 1331, 1333, 1332, 1328, 1334, 1335, 1329, 1332, + 1337, 1334, 1336, 1330, 1338, 1336, 1337, 1339, 1339, 1338, + 1340, 1340, 1341, 1343, 1342, 1344, 1345, 1346, 1341, 1342, + 1347, 1348, 1335, 1347, 1349, 1351, 1343, 1348, 1352, 1350, + 1349, 1351, 1356, 1344, 1350, 1345, 1353, 1346, 1354, 1354, + 1355, 1353, 1357, 1358, 1359, 1355, 1360, 1361, 1362, 1363, + 1356, 1352, 1364, 1365, 1366, 1363, 1367, 1375, 1359, 1361, + 1360, 1362, 1357, 1358, 1369, 1369, 1370, 1373, 1366, 1371, + 1372, 1372, 1364, 1365, 1371, 1374, 1376, 1367, 1377, 1380, + + 1378, 1375, 1373, 1379, 1381, 1385, 1370, 1377, 1380, 1374, + 1379, 1380, 1383, 1386, 1376, 1378, 1386, 1387, 1387, 1389, + 1381, 1388, 1388, 1390, 1391, 1391, 1390, 1383, 1392, 1393, + 1385, 1389, 1383, 1394, 1395, 1396, 1397, 1398, 1394, 1395, + 1399, 1392, 1401, 1402, 1400, 1404, 1398, 1405, 1393, 1402, + 1406, 1401, 1397, 1400, 1396, 1407, 1400, 1403, 1403, 1399, + 1405, 1408, 1409, 1411, 1412, 1404, 1413, 1413, 1406, 1407, + 1414, 1415, 1418, 1416, 1409, 1417, 1417, 1408, 1416, 1419, + 1415, 1418, 1412, 1420, 1418, 1421, 1414, 1422, 1411, 1425, + 1417, 1424, 1422, 1422, 1426, 1425, 1428, 1419, 1427, 1427, + + 1433, 1429, 1428, 1421, 1420, 1424, 1429, 1430, 1431, 1434, + 1435, 1436, 1426, 1430, 1431, 1441, 1435, 1439, 1437, 1442, + 1433, 1437, 1443, 1434, 1436, 1439, 1444, 1437, 1445, 1446, + 1443, 1447, 1448, 1449, 1441, 1444, 1450, 1451, 1442, 1449, + 1452, 1445, 1446, 1453, 1455, 1447, 1448, 1454, 1456, 1450, + 1455, 1457, 1459, 1459, 1460, 1461, 1462, 1451, 1452, 1461, + 1454, 1462, 1453, 1463, 1456, 1464, 1465, 1466, 1463, 1457, + 1464, 1468, 1469, 1469, 1460, 1465, 1470, 1471, 1472, 1473, + 1473, 1475, 1474, 1478, 1479, 1511, 1468, 1476, 1475, 1471, + 1466, 1477, 1480, 1481, 1482, 1470, 1474, 1472, 1480, 1476, + + 1483, 1511, 1478, 1477, 1479, 1481, 1483, 1484, 1484, 1489, + 1485, 1488, 1482, 1485, 1486, 1486, 1488, 1490, 1489, 1491, + 1491, 1492, 1493, 1490, 1493, 1494, 1495, 1496, 1494, 1497, + 1498, 1499, 1500, 1492, 1503, 1504, 1499, 1502, 1501, 1503, + 1505, 1500, 1509, 1506, 1504, 1508, 1495, 1497, 1498, 1496, + 1501, 1508, 1502, 1507, 1507, 1510, 1512, 1504, 1506, 1513, + 1505, 1513, 1518, 1509, 1514, 1515, 1515, 1516, 1516, 1517, + 1517, 1519, 1519, 1521, 1510, 1522, 1512, 1524, 1514, 1529, + 1514, 1524, 1518, 1520, 1520, 1523, 1523, 1525, 1526, 1528, + 1531, 1526, 1530, 1525, 1521, 1528, 1522, 1529, 1530, 1532, + + 1533, 1533, 1532, 1534, 1534, 1535, 1536, 1537, 1538, 1540, + 1539, 1535, 1543, 1545, 1549, 1531, 1539, 1542, 1536, 1536, + 1536, 1546, 1542, 1542, 1545, 1536, 1543, 1537, 1538, 1540, + 1544, 1547, 1544, 1548, 1549, 1550, 1546, 1547, 1551, 1551, + 1552, 1554, 1548, 1553, 1553, 1555, 1556, 1556, 1557, 1557, + 1558, 1561, 1561, 1562, 1564, 1565, 1550, 1568, 1566, 1567, + 1567, 1554, 1562, 1564, 1566, 1569, 1552, 1555, 1570, 1572, + 1558, 1574, 1571, 1573, 1573, 1570, 1565, 1575, 1568, 1577, + 1569, 1571, 1578, 1579, 1577, 1580, 1583, 1583, 1578, 1585, + 1581, 1586, 1580, 1575, 1582, 1572, 1581, 1574, 1585, 1584, + + 1582, 1587, 1588, 1579, 1584, 1589, 1590, 1591, 1589, 1592, + 1592, 1586, 1593, 1595, 1588, 1594, 1598, 1596, 1593, 1599, + 1587, 1596, 1602, 1603, 1590, 1600, 1604, 1603, 1595, 0, + 1605, 1610, 1604, 1591, 1608, 1594, 1598, 1596, 1599, 1605, + 1600, 1602, 1606, 1606, 1607, 1608, 1609, 1609, 1607, 1611, + 1608, 1612, 1610, 1613, 1614, 1615, 1612, 1616, 1620, 1617, + 1621, 1615, 1620, 1611, 1617, 1618, 1618, 1619, 1619, 1622, + 1622, 1621, 1616, 1613, 1614, 1624, 1621, 1623, 1623, 1625, + 1624, 1624, 1626, 1627, 1628, 1625, 1629, 1631, 1626, 1632, + 1633, 1634, 1629, 1632, 1635, 1636, 1628, 1637, 1638, 1631, + + 1635, 1640, 1633, 1637, 1641, 1644, 1642, 1648, 1644, 1627, + 1638, 1642, 0, 1640, 1645, 1645, 1634, 1636, 1646, 1646, + 1647, 1647, 1649, 1641, 1650, 1653, 1651, 1648, 1649, 1652, + 1650, 1651, 1655, 1657, 1653, 1652, 1657, 1655, 1658, 1659, + 1659, 1661, 1662, 1663, 1664, 1664, 1665, 1666, 1663, 1669, + 1658, 1667, 1666, 1661, 1662, 1665, 1667, 1668, 1668, 1670, + 1671, 1672, 1673, 1676, 1679, 1674, 1673, 1675, 1670, 1669, + 1674, 1678, 1678, 1675, 1684, 1680, 1686, 1676, 1671, 1682, + 1672, 1683, 1679, 1678, 1680, 1681, 1681, 1685, 1682, 1686, + 1689, 1689, 1685, 1683, 1691, 1684, 1692, 1691, 1693, 1696, + + 1695, 1697, 1698, 1699, 1699, 1705, 1700, 1697, 1700, 1701, + 1701, 1704, 1692, 1696, 1693, 1695, 1702, 1707, 1704, 1698, + 1706, 1706, 1708, 1709, 1702, 1705, 1707, 1710, 1711, 1712, + 1713, 1714, 1716, 1719, 1717, 1709, 1720, 1714, 1723, 1710, + 1711, 1718, 1718, 1708, 1721, 1713, 1717, 1721, 1722, 1725, + 1714, 1719, 1716, 1722, 1725, 1712, 1720, 1726, 1723, 1726, + 1727, 1728, 1729, 1731, 1733, 1734, 1728, 1736, 1735, 1729, + 1735, 1739, 1731, 1733, 1738, 1741, 1738, 1734, 1727, 1740, + 1740, 1743, 1742, 1743, 1744, 1739, 1736, 1742, 1745, 1744, + 1746, 1747, 1748, 1745, 1749, 1751, 1750, 1753, 1748, 1749, + + 1754, 1741, 1757, 1751, 1755, 1755, 1756, 1756, 1746, 1750, + 1758, 1747, 1759, 0, 1754, 1760, 1753, 1757, 1759, 1761, + 1760, 1761, 1764, 1762, 1763, 1763, 1765, 1765, 1766, 1766, + 1758, 1762, 1767, 1768, 1764, 1769, 1770, 1769, 1771, 1762, + 1772, 1767, 1768, 1771, 1771, 1768, 1773, 1775, 1776, 1772, + 1777, 1779, 1780, 1776, 1784, 1777, 1782, 1770, 1773, 1775, + 1781, 1781, 1783, 1785, 1779, 1799, 1786, 1788, 1790, 1794, + 1784, 1789, 1780, 1790, 1782, 1794, 1797, 1785, 1796, 1788, + 1783, 1786, 1791, 1789, 1796, 1798, 1800, 1791, 1794, 1802, + 1799, 1801, 1801, 1803, 1803, 1800, 1804, 1805, 1802, 1797, + + 1798, 1805, 1806, 1807, 1808, 1809, 1810, 1806, 1813, 1808, + 1808, 1809, 1810, 1812, 1811, 1804, 1807, 1811, 1816, 1816, + 1818, 1812, 1817, 1817, 1819, 1819, 1820, 1820, 1813, 1818, + 1821, 1822, 1823, 1831, 1824, 1825, 1825, 1817, 1823, 1824, + 1826, 1826, 1821, 1830, 1834, 1827, 1828, 1830, 1817, 1822, + 1827, 1832, 1828, 1831, 1835, 1832, 1836, 1837, 1838, 1835, + 1839, 1840, 1842, 1838, 1841, 1841, 1842, 1843, 1844, 1834, + 1845, 1846, 1837, 1844, 1847, 1848, 1849, 1840, 1839, 1836, + 1848, 1850, 1843, 1846, 1851, 1851, 1853, 1854, 1855, 1849, + 1856, 1857, 1858, 1847, 1853, 1859, 1845, 1860, 1861, 1850, + + 1864, 1864, 1863, 2126, 1867, 1865, 1854, 1855, 1865, 1860, + 1866, 1858, 1868, 1856, 2126, 1857, 1859, 1863, 1867, 1861, + 1869, 1869, 1872, 1866, 1875, 1868, 1870, 1870, 1871, 1871, + 1873, 1874, 1874, 1875, 1876, 1876, 1875, 1872, 1880, 1877, + 1879, 1881, 1882, 1873, 1877, 1879, 1883, 1883, 1884, 1884, + 1885, 1886, 1886, 1887, 1882, 1888, 1888, 1889, 1880, 1890, + 1890, 1881, 1891, 1891, 1892, 1893, 1894, 1895, 1897, 1885, + 1899, 1887, 1889, 1897, 1893, 1898, 1898, 1901, 1892, 1902, + 1894, 1900, 1900, 1906, 1903, 1902, 1895, 1903, 1907, 1899, + 1904, 1904, 1905, 1905, 1908, 1901, 1909, 1909, 1911, 1912, + + 1913, 1914, 1906, 1907, 1916, 1914, 1904, 1915, 1915, 1917, + 1918, 1920, 1920, 1908, 1921, 1913, 1923, 1924, 1911, 1922, + 1925, 1925, 1912, 1916, 1917, 1918, 1922, 1926, 1928, 1927, + 1923, 1927, 1930, 1931, 1921, 1932, 1926, 1933, 1931, 1934, + 1932, 1936, 1935, 1924, 1930, 1938, 1936, 1941, 1928, 1939, + 1938, 1940, 1934, 1941, 1939, 1942, 1944, 1945, 1943, 1946, + 1947, 1944, 1933, 1935, 1943, 1948, 1940, 1951, 1949, 1947, + 1950, 1953, 1946, 1955, 1948, 1953, 1942, 1949, 1952, 1950, + 1957, 1951, 1945, 1961, 1952, 1958, 1958, 1966, 1959, 1957, + 1960, 1960, 1963, 1955, 1959, 1964, 1965, 1965, 1967, 1960, + + 1969, 1970, 1966, 1961, 1971, 1961, 1972, 1967, 1963, 1975, + 1974, 1964, 1969, 1974, 1975, 1976, 1977, 1970, 1972, 1971, + 1978, 1978, 1979, 1979, 1981, 1981, 1982, 1983, 1977, 1982, + 1984, 1985, 1983, 1986, 1986, 1976, 1984, 1985, 1987, 1988, + 1988, 1989, 1990, 1991, 1992, 1992, 1994, 1999, 1995, 0, + 1994, 1995, 1987, 1989, 1996, 1996, 1990, 1998, 1997, 2002, + 2000, 2005, 1991, 1997, 2000, 2004, 1998, 1999, 2001, 2001, + 2004, 2006, 2002, 2007, 2008, 2009, 2013, 2010, 2008, 2011, + 2012, 2005, 2010, 2015, 2016, 2011, 2012, 2007, 2022, 2016, + 2017, 2006, 2018, 2025, 2013, 2009, 2017, 2023, 2023, 2015, + + 2018, 2019, 2022, 2019, 2024, 2026, 2026, 2024, 2028, 2029, + 2030, 2032, 2028, 2031, 2031, 2029, 2035, 2035, 2037, 2025, + 2032, 2039, 2030, 2042, 2043, 2044, 2045, 2052, 2042, 2053, + 2044, 2045, 2046, 2046, 2050, 2039, 2037, 2048, 2048, 2054, + 2050, 2051, 2051, 2052, 2054, 2056, 2057, 2058, 2058, 2061, + 2043, 2053, 2060, 2062, 2063, 2061, 2065, 2065, 2057, 2066, + 0, 2060, 2067, 2076, 2056, 2069, 2069, 2070, 2070, 2063, + 2071, 2062, 2072, 2074, 2073, 2071, 2073, 2072, 2066, 2075, + 2067, 2077, 2083, 2076, 2078, 2078, 2077, 2074, 2079, 2079, + 2080, 2080, 2082, 2075, 2081, 2081, 2084, 2084, 2085, 2085, + + 2083, 2086, 2087, 2088, 2082, 2089, 2090, 2090, 2091, 2091, + 2092, 2092, 2093, 2086, 2087, 2094, 2095, 2096, 2098, 2101, + 2097, 2089, 2094, 2088, 2093, 2097, 2099, 2099, 2095, 2102, + 2100, 2103, 2104, 2105, 2106, 2106, 2108, 2096, 2098, 2100, + 2109, 2107, 2111, 2112, 2103, 2101, 2113, 2105, 2115, 2102, + 2107, 2108, 0, 2116, 2114, 2109, 2104, 2114, 2116, 2117, + 2111, 2125, 2115, 2127, 2117, 2112, 2118, 2118, 2129, 2113, + 2119, 2119, 2120, 2120, 2122, 2122, 2124, 2124, 2130, 2125, + 2131, 2132, 2127, 2133, 2134, 2135, 2136, 2136, 2129, 2138, + 2138, 2139, 2133, 2141, 2141, 2148, 2130, 2140, 2143, 2144, + + 2144, 2132, 2131, 2135, 2134, 2145, 2140, 2143, 2146, 2147, + 2148, 2149, 2150, 2139, 2152, 2151, 2147, 2153, 2153, 2154, + 2154, 2155, 2156, 2145, 2157, 2158, 2146, 2155, 2160, 2149, + 2150, 2151, 2159, 2152, 2161, 2172, 2162, 2159, 2168, 2157, + 2156, 2162, 2171, 2163, 2158, 2163, 2164, 2164, 2160, 2165, + 2170, 2165, 2166, 2166, 2161, 2172, 2174, 2168, 2173, 2170, + 2175, 2171, 2178, 2173, 2179, 2180, 2180, 2179, 2181, 2182, + 2183, 2183, 2191, 2184, 2186, 2189, 2174, 2184, 2192, 2175, + 2187, 2195, 2178, 2181, 2187, 2188, 2188, 2182, 2189, 2186, + 2193, 2193, 2191, 2195, 2196, 2196, 2197, 2199, 2192, 2198, + + 2198, 2200, 2199, 2201, 2201, 2206, 2206, 2207, 2208, 2209, + 2210, 2211, 2213, 2200, 2218, 2197, 2212, 2212, 2217, 2210, + 2211, 2208, 2209, 2217, 2220, 2219, 2221, 2213, 2218, 2207, + 2219, 2222, 2220, 2224, 2227, 2225, 2226, 2228, 2228, 2222, + 2225, 2226, 2229, 2229, 2230, 2221, 2232, 2231, 2224, 2227, + 2233, 2230, 2231, 2234, 2237, 2235, 2236, 2236, 2238, 2234, + 2235, 2239, 2239, 2238, 2232, 2240, 2240, 2243, 2233, 2237, + 2244, 2244, 2245, 2246, 0, 2245, 2247, 2248, 2246, 2246, + 2243, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2250, 2249, + 2251, 2254, 2255, 2256, 2261, 2252, 2258, 2255, 2265, 2254, + + 2259, 2258, 2253, 2259, 2263, 2256, 2261, 2264, 2266, 2263, + 2267, 2268, 2264, 2269, 2269, 2270, 2265, 2273, 2274, 2267, + 2268, 2266, 2275, 2277, 2270, 2276, 2276, 2281, 2278, 2279, + 2280, 2280, 2283, 2285, 2288, 2286, 2273, 2278, 2274, 2286, + 2288, 2275, 2277, 0, 2279, 2289, 2281, 2283, 2287, 2287, + 2290, 2289, 2292, 2285, 2291, 2291, 2290, 2293, 2295, 2296, + 2292, 2298, 2293, 2299, 2300, 2298, 2310, 2295, 2302, 2302, + 2303, 2303, 2296, 2304, 2304, 2306, 2306, 2299, 2311, 2300, + 2308, 2308, 2313, 2311, 2311, 2318, 2310, 2314, 2314, 2315, + 2315, 2316, 2316, 2317, 2320, 2324, 2317, 2326, 2318, 2321, + + 2321, 2335, 2313, 2322, 2322, 2323, 2323, 2325, 2325, 2327, + 2324, 2328, 2320, 2329, 2329, 2326, 2330, 2328, 2334, 2333, + 2330, 2335, 2336, 2327, 2333, 2333, 2337, 2338, 2339, 2346, + 2340, 2349, 2337, 2338, 2340, 2341, 2341, 2346, 2344, 2354, + 2351, 2334, 2336, 2344, 2347, 2350, 2352, 2347, 2350, 2353, + 2355, 2352, 2357, 2339, 2356, 2356, 2349, 2351, 2351, 2354, + 2358, 2360, 2361, 2361, 2355, 2362, 2362, 2353, 2358, 2359, + 2366, 2357, 2363, 2363, 2359, 2359, 2364, 2364, 2365, 2365, + 2360, 2368, 2367, 2369, 2370, 2371, 2366, 2367, 2372, 2374, + 2374, 2375, 2376, 2370, 2375, 2378, 2378, 2379, 2380, 2380, + + 2387, 2368, 2381, 2383, 2379, 2371, 2384, 2381, 2372, 2369, + 2376, 2385, 2383, 2388, 2388, 2384, 2390, 2389, 2387, 2391, + 2385, 2389, 2392, 2393, 2394, 2390, 2400, 2392, 2392, 2399, + 2399, 2402, 2406, 2394, 2391, 2403, 2393, 2407, 2408, 2410, + 2402, 2412, 0, 2414, 2400, 2416, 2407, 2403, 2414, 2415, + 2415, 2410, 2419, 2419, 2416, 2418, 2419, 2406, 2408, 2425, + 2418, 2424, 2412, 2421, 2421, 2422, 2422, 2423, 2423, 2426, + 2424, 2427, 2429, 2432, 2432, 2430, 2427, 2431, 2429, 2425, + 2430, 2433, 2431, 2434, 2435, 2436, 2437, 2438, 2426, 2435, + 2439, 2439, 2437, 2442, 2441, 2443, 2445, 2445, 2447, 2433, + + 2450, 2448, 2449, 2436, 2434, 2451, 2449, 2452, 2442, 2450, + 2453, 2447, 2438, 2441, 2448, 2443, 2455, 2454, 2453, 2456, + 2456, 2451, 2454, 2462, 2457, 2465, 2452, 2459, 2459, 2460, + 2460, 2464, 2464, 2466, 2467, 2468, 2470, 2470, 2471, 2472, + 2468, 2465, 2455, 2457, 2462, 2473, 2475, 2475, 2478, 2466, + 2467, 2476, 2479, 2478, 2480, 2480, 2481, 2481, 2471, 2482, + 2483, 2483, 2472, 2484, 2473, 2476, 2485, 0, 2486, 2487, + 2488, 2495, 2484, 2496, 2479, 2489, 2489, 2491, 2491, 2482, + 2483, 2487, 2490, 2495, 2505, 2490, 2485, 2486, 2497, 2501, + 2488, 2498, 2498, 2496, 2497, 2499, 2500, 2507, 2499, 2503, + + 2504, 2511, 2500, 2505, 2503, 2504, 2506, 2501, 2508, 2508, + 2510, 2510, 2506, 2512, 2507, 2507, 2514, 2514, 2515, 2515, + 2511, 2516, 2512, 2517, 2518, 2527, 2516, 2519, 2519, 2518, + 2520, 2520, 2521, 2521, 2522, 2524, 2524, 2517, 2529, 2522, + 2530, 2531, 2532, 2532, 2527, 2534, 2534, 2535, 2536, 2537, + 2538, 2538, 2539, 2546, 2540, 2543, 2543, 0, 2537, 2540, + 2529, 2535, 2530, 2531, 2545, 2545, 2547, 2546, 2536, 2548, + 2550, 2539, 2547, 2549, 2549, 2550, 2552, 2548, 2553, 2554, + 2555, 2556, 2558, 2559, 2554, 2560, 2561, 2556, 2563, 2562, + 2558, 2564, 2555, 2565, 2566, 2569, 2552, 2570, 2553, 2566, + + 2573, 2573, 2559, 2680, 2563, 2560, 2561, 2562, 2564, 2564, + 2570, 2574, 2574, 2575, 2565, 2569, 2680, 2575, 2579, 2579, + 2581, 2581, 2582, 2582, 2585, 2582, 2583, 2583, 2585, 2583, + 2584, 2584, 2588, 2584, 2587, 2587, 2591, 2589, 2592, 2592, + 2595, 2591, 2596, 2597, 2599, 2600, 2596, 2595, 2601, 2601, + 2588, 2589, 2602, 2602, 2600, 2603, 2603, 2604, 2597, 2605, + 2607, 2606, 2599, 2608, 2605, 2607, 2607, 2609, 2610, 2608, + 2606, 2612, 2604, 2606, 2611, 2613, 2612, 2614, 2615, 2615, + 2613, 2616, 2630, 2610, 2619, 2619, 2616, 2622, 2622, 2623, + 2623, 2630, 2609, 2624, 2624, 2611, 2614, 2625, 2625, 2626, + + 2626, 2627, 2627, 2628, 2628, 2631, 2631, 2632, 2634, 2634, + 2635, 2636, 2637, 2637, 2638, 2639, 2639, 2642, 2643, 2644, + 2646, 2643, 2649, 2636, 2652, 2635, 2650, 2632, 2649, 2638, + 2645, 2645, 2651, 2648, 2653, 2642, 2648, 2651, 2646, 2654, + 2650, 2656, 2669, 2652, 2665, 2644, 2670, 2665, 2667, 2667, + 2670, 2671, 2653, 2672, 2674, 2654, 2656, 2675, 2676, 2677, + 2678, 2677, 2681, 2676, 2682, 2669, 2684, 2672, 2675, 2679, + 2679, 2671, 2683, 2686, 2685, 2678, 2687, 2674, 2689, 2690, + 2690, 2681, 2682, 2697, 2691, 2692, 2692, 2696, 2683, 2685, + 2699, 2684, 2689, 2691, 2686, 2699, 2687, 2693, 2693, 2694, + + 2694, 2695, 2695, 2697, 2698, 2700, 2696, 2698, 2701, 2702, + 2700, 2703, 2704, 2707, 2705, 2706, 2706, 2703, 2711, 2717, + 2709, 2714, 2714, 2716, 2702, 0, 2704, 2715, 2715, 2721, + 2720, 2716, 2707, 2701, 2705, 2709, 2711, 2718, 2717, 2719, + 2722, 2725, 2721, 2718, 2720, 2719, 2723, 2723, 2726, 2727, + 2729, 2730, 2731, 2727, 2732, 2733, 2730, 2734, 2735, 2722, + 2736, 2725, 2726, 2735, 2738, 2736, 2739, 2732, 2733, 2741, + 2729, 2731, 2740, 2740, 2741, 2742, 2734, 2743, 2743, 2744, + 2747, 2742, 2738, 2745, 2744, 2739, 2746, 2748, 2745, 2749, + 2753, 2746, 2755, 2748, 2749, 2750, 2750, 2752, 2754, 2747, + + 2756, 2752, 2757, 2758, 2759, 2754, 2760, 2760, 2757, 2753, + 2764, 2755, 2762, 2762, 2763, 2764, 2765, 2759, 2766, 2756, + 2767, 2770, 2758, 2763, 2768, 2768, 2763, 2769, 2772, 2773, + 2773, 2774, 2769, 2767, 2770, 2765, 2778, 2766, 2775, 2775, + 2776, 2776, 2777, 2778, 2779, 2780, 2780, 2777, 2781, 2782, + 2774, 2782, 2784, 2781, 2772, 2783, 2783, 2785, 2786, 2784, + 2787, 2788, 2791, 2779, 2785, 2787, 2790, 2790, 2793, 2794, + 2795, 2796, 2800, 2793, 2794, 2797, 2797, 2786, 2799, 2799, + 2788, 2791, 2801, 2802, 2802, 2803, 2803, 2804, 2814, 2795, + 2796, 2800, 2806, 2806, 2804, 2807, 2807, 2808, 2810, 2815, + + 2813, 2801, 0, 2810, 2808, 2813, 0, 2814, 2816, 2816, + 2817, 2817, 0, 0, 0, 0, 0, 0, 2815, 2821, + 2821, 2821, 2821, 2821, 2821, 2821, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2823, 2823, 2823, 2823, 2823, 2823, 2823, + 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2825, 2825, 2825, + 2825, 2825, 2825, 2825, 2827, 2827, 0, 2827, 2827, 2827, + 2827, 2828, 2828, 0, 0, 0, 2828, 2828, 2829, 2829, + 0, 0, 2829, 0, 2829, 2830, 0, 0, 0, 0, + 0, 2830, 2831, 2831, 0, 0, 0, 2831, 2831, 2832, + 0, 0, 0, 0, 0, 2832, 2833, 2833, 0, 2833, + + 2833, 2833, 2833, 2834, 2834, 0, 2834, 2834, 2834, 2834, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, + 2820 } ; static yy_state_type yy_last_accepting_state; @@ -2694,7 +2701,7 @@ static void config_start_include(const char* filename) config_include_stack = s; cfg_parser->filename = nm; cfg_parser->line = 1; - yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE)); + yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE)); } static void config_start_include_glob(const char* filename) @@ -2765,11 +2772,12 @@ static void config_end_include(void) #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \ } #endif +#line 2779 "" #define YY_NO_INPUT 1 #line 186 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -2778,8 +2786,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif +#line 2788 "" -#line 2781 "" +#line 2790 "" #define INITIAL 0 #define quotedstring 1 @@ -2800,36 +2809,36 @@ static void config_end_include(void) #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy (void ); +int yylex_destroy ( void ); -int yyget_debug (void ); +int yyget_debug ( void ); -void yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *yyget_in (void ); +FILE *yyget_in ( void ); -void yyset_in (FILE * _in_str ); +void yyset_in ( FILE * _in_str ); -FILE *yyget_out (void ); +FILE *yyget_out ( void ); -void yyset_out (FILE * _out_str ); +void yyset_out ( FILE * _out_str ); - int yyget_leng (void ); + int yyget_leng ( void ); -char *yyget_text (void ); +char *yyget_text ( void ); -int yyget_lineno (void ); +int yyget_lineno ( void ); -void yyset_lineno (int _line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -2837,9 +2846,9 @@ void yyset_lineno (int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int yywrap (void ); +extern int yywrap ( void ); #endif #endif @@ -2848,19 +2857,18 @@ extern int yywrap (void ); #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif @@ -2993,23 +3001,23 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 206 "./util/configlexer.lex" -#line 3004 "" +#line 3012 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { (yy_more_len) = 0; if ( (yy_more_flag) ) { - (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); + (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr)); (yy_more_flag) = 0; } yy_cp = (yy_c_buf_p); @@ -3035,13 +3043,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 >= 2799 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 2821 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 5464 ); + while ( yy_base[yy_current_state] != 5511 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3696,549 +3704,549 @@ YY_RULE_SETUP case 126: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } YY_BREAK case 127: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } YY_BREAK case 128: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } YY_BREAK case 129: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } YY_BREAK case 130: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 131: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 132: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 133: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 134: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 135: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 136: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 137: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 138: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 139: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 140: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 141: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 142: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 143: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 144: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 145: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 146: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 147: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 148: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 149: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 150: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 151: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 152: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 153: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 154: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 155: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 156: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 157: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 158: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 159: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 160: YY_RULE_SETUP -#line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 369 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 161: YY_RULE_SETUP -#line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +#line 370 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 162: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 163: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 164: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 165: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 166: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 167: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 168: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 169: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 170: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 171: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 172: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 173: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 174: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 175: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 176: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 177: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 178: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 179: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 180: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 181: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 182: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 183: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 184: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 185: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 186: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 187: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 188: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 189: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 190: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 191: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 192: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 193: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 194: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 195: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 196: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 197: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 198: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 199: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 200: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 201: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 202: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 203: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 204: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 205: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 206: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 207: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 208: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 209: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 210: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 211: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 212: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 213: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 214: YY_RULE_SETUP -#line 425 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 424 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 215: YY_RULE_SETUP -#line 427 "./util/configlexer.lex" +#line 425 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 216: YY_RULE_SETUP -#line 429 "./util/configlexer.lex" +#line 427 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 217: YY_RULE_SETUP -#line 431 "./util/configlexer.lex" +#line 429 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 218: YY_RULE_SETUP -#line 433 "./util/configlexer.lex" +#line 431 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 219: YY_RULE_SETUP -#line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 433 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 220: YY_RULE_SETUP -#line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +#line 435 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 221: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 222: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 223: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 224: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 225: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 226: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 227: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 228: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 229: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 230: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 231: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 232: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 233: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 234: YY_RULE_SETUP @@ -4248,180 +4256,190 @@ YY_RULE_SETUP case 235: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 236: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 237: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 238: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 239: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 240: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 241: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 242: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 243: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 244: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 245: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 246: YY_RULE_SETUP -#line 463 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +#line 462 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 247: YY_RULE_SETUP -#line 465 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 463 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 248: YY_RULE_SETUP -#line 466 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +#line 465 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 249: YY_RULE_SETUP #line 467 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 250: YY_RULE_SETUP #line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 251: YY_RULE_SETUP #line 469 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 252: YY_RULE_SETUP #line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 253: YY_RULE_SETUP #line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 254: YY_RULE_SETUP #line 472 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 255: YY_RULE_SETUP #line 473 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 256: YY_RULE_SETUP #line 474 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 257: YY_RULE_SETUP #line 475 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 258: YY_RULE_SETUP #line 476 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 259: YY_RULE_SETUP #line 477 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 260: YY_RULE_SETUP #line 478 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 261: YY_RULE_SETUP #line 479 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 262: YY_RULE_SETUP #line 480 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 263: -/* rule 263 can match eol */ YY_RULE_SETUP #line 481 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 264: +YY_RULE_SETUP +#line 482 "./util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 265: +/* rule 265 can match eol */ +YY_RULE_SETUP +#line 483 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 264: +case 266: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" +#line 486 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 485 "./util/configlexer.lex" +#line 487 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 265: +case 267: YY_RULE_SETUP -#line 490 "./util/configlexer.lex" +#line 492 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 266: -/* rule 266 can match eol */ +case 268: +/* rule 268 can match eol */ YY_RULE_SETUP -#line 491 "./util/configlexer.lex" +#line 493 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 267: +case 269: YY_RULE_SETUP -#line 493 "./util/configlexer.lex" +#line 495 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4434,34 +4452,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 268: +case 270: YY_RULE_SETUP -#line 505 "./util/configlexer.lex" +#line 507 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 506 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 269: +case 271: YY_RULE_SETUP -#line 511 "./util/configlexer.lex" +#line 513 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 270: -/* rule 270 can match eol */ +case 272: +/* rule 272 can match eol */ YY_RULE_SETUP -#line 512 "./util/configlexer.lex" +#line 514 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 271: +case 273: YY_RULE_SETUP -#line 514 "./util/configlexer.lex" +#line 516 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4474,38 +4492,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 272: +case 274: YY_RULE_SETUP -#line 526 "./util/configlexer.lex" +#line 528 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 528 "./util/configlexer.lex" +#line 530 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 273: +case 275: YY_RULE_SETUP -#line 532 "./util/configlexer.lex" +#line 534 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 274: -/* rule 274 can match eol */ +case 276: +/* rule 276 can match eol */ YY_RULE_SETUP -#line 533 "./util/configlexer.lex" +#line 535 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 275: +case 277: YY_RULE_SETUP -#line 534 "./util/configlexer.lex" +#line 536 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 276: +case 278: YY_RULE_SETUP -#line 535 "./util/configlexer.lex" +#line 537 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4513,27 +4531,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 540 "./util/configlexer.lex" +#line 542 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 277: +case 279: YY_RULE_SETUP -#line 544 "./util/configlexer.lex" +#line 546 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 278: -/* rule 278 can match eol */ +case 280: +/* rule 280 can match eol */ YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 547 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 279: +case 281: YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 549 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4543,7 +4561,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 553 "./util/configlexer.lex" +#line 555 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4555,33 +4573,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 280: +case 282: YY_RULE_SETUP -#line 564 "./util/configlexer.lex" +#line 566 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 281: +case 283: YY_RULE_SETUP -#line 568 "./util/configlexer.lex" +#line 570 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 282: +case 284: YY_RULE_SETUP -#line 572 "./util/configlexer.lex" +#line 574 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 283: +case 285: YY_RULE_SETUP -#line 576 "./util/configlexer.lex" +#line 578 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4583 "" +#line 4601 "" case YY_END_OF_BUFFER: { @@ -4657,7 +4675,7 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -4724,7 +4742,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - yy_size_t number_to_move, i; + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -4753,7 +4771,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -4789,7 +4807,8 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -4821,7 +4840,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); + yyrestart( yyin ); } else @@ -4835,12 +4854,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -4872,10 +4894,10 @@ 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 >= 2799 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 2821 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -4900,11 +4922,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 >= 2799 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 2821 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 2798); + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 2820); return yy_is_jam ? 0 : yy_current_state; } @@ -4937,7 +4959,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -4954,13 +4976,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart(yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -4998,11 +5020,11 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -5030,7 +5052,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -5058,7 +5080,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -5067,13 +5089,13 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } @@ -5092,9 +5114,9 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - yyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. @@ -5106,7 +5128,7 @@ static void yy_load_buffer_state (void) { int oerrno = errno; - yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -5149,7 +5171,7 @@ static void yy_load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -5180,7 +5202,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -5199,7 +5221,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -5209,7 +5231,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -5223,9 +5245,9 @@ static void yyensure_buffer_stack (void) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -5254,7 +5276,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -5266,7 +5288,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); @@ -5280,7 +5302,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } @@ -5293,10 +5315,10 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return yy_scan_bytes(yystr,(int) strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -5306,16 +5328,16 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) _yybytes_len + 2; - buf = (char *) yyalloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -5324,7 +5346,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -5340,9 +5362,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) #define YY_EXIT_FAILURE 2 #endif -static void yynoreturn yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -5353,7 +5375,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -5370,7 +5392,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -5477,7 +5499,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -5498,7 +5520,7 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; @@ -5508,7 +5530,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -5543,7 +5565,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 576 "./util/configlexer.lex" - +#line 578 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 8c7d65fc8..2f0c7376c 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -332,6 +332,8 @@ client-subnet-always-forward{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) client-subnet-opcode{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } max-client-subnet-ipv4{COLON} { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } max-client-subnet-ipv6{COLON} { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +min-client-subnet-ipv4{COLON} { YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } +min-client-subnet-ipv6{COLON} { YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } max-ecs-tree-size-ipv4{COLON} { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } max-ecs-tree-size-ipv6{COLON} { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } hide-identity{COLON} { YDVAR(1, VAR_HIDE_IDENTITY) } diff --git a/util/configparser.c b/util/configparser.c index fa23ecd97..b2d3a72dd 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -309,79 +309,81 @@ extern int yydebug; VAR_CLIENT_SUBNET_OPCODE = 438, VAR_MAX_CLIENT_SUBNET_IPV4 = 439, VAR_MAX_CLIENT_SUBNET_IPV6 = 440, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 441, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 442, - VAR_CAPS_WHITELIST = 443, - VAR_CACHE_MAX_NEGATIVE_TTL = 444, - VAR_PERMIT_SMALL_HOLDDOWN = 445, - VAR_QNAME_MINIMISATION = 446, - VAR_QNAME_MINIMISATION_STRICT = 447, - VAR_IP_FREEBIND = 448, - VAR_DEFINE_TAG = 449, - VAR_LOCAL_ZONE_TAG = 450, - VAR_ACCESS_CONTROL_TAG = 451, - VAR_LOCAL_ZONE_OVERRIDE = 452, - VAR_ACCESS_CONTROL_TAG_ACTION = 453, - VAR_ACCESS_CONTROL_TAG_DATA = 454, - VAR_VIEW = 455, - VAR_ACCESS_CONTROL_VIEW = 456, - VAR_VIEW_FIRST = 457, - VAR_SERVE_EXPIRED = 458, - VAR_SERVE_EXPIRED_TTL = 459, - VAR_SERVE_EXPIRED_TTL_RESET = 460, - VAR_FAKE_DSA = 461, - VAR_FAKE_SHA1 = 462, - VAR_LOG_IDENTITY = 463, - VAR_HIDE_TRUSTANCHOR = 464, - VAR_TRUST_ANCHOR_SIGNALING = 465, - VAR_AGGRESSIVE_NSEC = 466, - VAR_USE_SYSTEMD = 467, - VAR_SHM_ENABLE = 468, - VAR_SHM_KEY = 469, - VAR_ROOT_KEY_SENTINEL = 470, - VAR_DNSCRYPT = 471, - VAR_DNSCRYPT_ENABLE = 472, - VAR_DNSCRYPT_PORT = 473, - VAR_DNSCRYPT_PROVIDER = 474, - VAR_DNSCRYPT_SECRET_KEY = 475, - VAR_DNSCRYPT_PROVIDER_CERT = 476, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 477, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 478, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 479, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 480, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 481, - VAR_IPSECMOD_ENABLED = 482, - VAR_IPSECMOD_HOOK = 483, - VAR_IPSECMOD_IGNORE_BOGUS = 484, - VAR_IPSECMOD_MAX_TTL = 485, - VAR_IPSECMOD_WHITELIST = 486, - VAR_IPSECMOD_STRICT = 487, - VAR_CACHEDB = 488, - VAR_CACHEDB_BACKEND = 489, - VAR_CACHEDB_SECRETSEED = 490, - VAR_CACHEDB_REDISHOST = 491, - VAR_CACHEDB_REDISPORT = 492, - VAR_CACHEDB_REDISTIMEOUT = 493, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 494, - VAR_FOR_UPSTREAM = 495, - VAR_AUTH_ZONE = 496, - VAR_ZONEFILE = 497, - VAR_MASTER = 498, - VAR_URL = 499, - VAR_FOR_DOWNSTREAM = 500, - VAR_FALLBACK_ENABLED = 501, - VAR_TLS_ADDITIONAL_PORT = 502, - VAR_LOW_RTT = 503, - VAR_LOW_RTT_PERMIL = 504, - VAR_FAST_SERVER_PERMIL = 505, - VAR_FAST_SERVER_NUM = 506, - VAR_ALLOW_NOTIFY = 507, - VAR_TLS_WIN_CERT = 508, - VAR_TCP_CONNECTION_LIMIT = 509, - VAR_FORWARD_NO_CACHE = 510, - VAR_STUB_NO_CACHE = 511, - VAR_LOG_SERVFAIL = 512, - VAR_DENY_ANY = 513 + VAR_MIN_CLIENT_SUBNET_IPV4 = 441, + VAR_MIN_CLIENT_SUBNET_IPV6 = 442, + VAR_MAX_ECS_TREE_SIZE_IPV4 = 443, + VAR_MAX_ECS_TREE_SIZE_IPV6 = 444, + VAR_CAPS_WHITELIST = 445, + VAR_CACHE_MAX_NEGATIVE_TTL = 446, + VAR_PERMIT_SMALL_HOLDDOWN = 447, + VAR_QNAME_MINIMISATION = 448, + VAR_QNAME_MINIMISATION_STRICT = 449, + VAR_IP_FREEBIND = 450, + VAR_DEFINE_TAG = 451, + VAR_LOCAL_ZONE_TAG = 452, + VAR_ACCESS_CONTROL_TAG = 453, + VAR_LOCAL_ZONE_OVERRIDE = 454, + VAR_ACCESS_CONTROL_TAG_ACTION = 455, + VAR_ACCESS_CONTROL_TAG_DATA = 456, + VAR_VIEW = 457, + VAR_ACCESS_CONTROL_VIEW = 458, + VAR_VIEW_FIRST = 459, + VAR_SERVE_EXPIRED = 460, + VAR_SERVE_EXPIRED_TTL = 461, + VAR_SERVE_EXPIRED_TTL_RESET = 462, + VAR_FAKE_DSA = 463, + VAR_FAKE_SHA1 = 464, + VAR_LOG_IDENTITY = 465, + VAR_HIDE_TRUSTANCHOR = 466, + VAR_TRUST_ANCHOR_SIGNALING = 467, + VAR_AGGRESSIVE_NSEC = 468, + VAR_USE_SYSTEMD = 469, + VAR_SHM_ENABLE = 470, + VAR_SHM_KEY = 471, + VAR_ROOT_KEY_SENTINEL = 472, + VAR_DNSCRYPT = 473, + VAR_DNSCRYPT_ENABLE = 474, + VAR_DNSCRYPT_PORT = 475, + VAR_DNSCRYPT_PROVIDER = 476, + VAR_DNSCRYPT_SECRET_KEY = 477, + VAR_DNSCRYPT_PROVIDER_CERT = 478, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 479, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 480, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 481, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 482, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 483, + VAR_IPSECMOD_ENABLED = 484, + VAR_IPSECMOD_HOOK = 485, + VAR_IPSECMOD_IGNORE_BOGUS = 486, + VAR_IPSECMOD_MAX_TTL = 487, + VAR_IPSECMOD_WHITELIST = 488, + VAR_IPSECMOD_STRICT = 489, + VAR_CACHEDB = 490, + VAR_CACHEDB_BACKEND = 491, + VAR_CACHEDB_SECRETSEED = 492, + VAR_CACHEDB_REDISHOST = 493, + VAR_CACHEDB_REDISPORT = 494, + VAR_CACHEDB_REDISTIMEOUT = 495, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 496, + VAR_FOR_UPSTREAM = 497, + VAR_AUTH_ZONE = 498, + VAR_ZONEFILE = 499, + VAR_MASTER = 500, + VAR_URL = 501, + VAR_FOR_DOWNSTREAM = 502, + VAR_FALLBACK_ENABLED = 503, + VAR_TLS_ADDITIONAL_PORT = 504, + VAR_LOW_RTT = 505, + VAR_LOW_RTT_PERMIL = 506, + VAR_FAST_SERVER_PERMIL = 507, + VAR_FAST_SERVER_NUM = 508, + VAR_ALLOW_NOTIFY = 509, + VAR_TLS_WIN_CERT = 510, + VAR_TCP_CONNECTION_LIMIT = 511, + VAR_FORWARD_NO_CACHE = 512, + VAR_STUB_NO_CACHE = 513, + VAR_LOG_SERVFAIL = 514, + VAR_DENY_ANY = 515 }; #endif /* Tokens. */ @@ -568,79 +570,81 @@ extern int yydebug; #define VAR_CLIENT_SUBNET_OPCODE 438 #define VAR_MAX_CLIENT_SUBNET_IPV4 439 #define VAR_MAX_CLIENT_SUBNET_IPV6 440 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 441 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 442 -#define VAR_CAPS_WHITELIST 443 -#define VAR_CACHE_MAX_NEGATIVE_TTL 444 -#define VAR_PERMIT_SMALL_HOLDDOWN 445 -#define VAR_QNAME_MINIMISATION 446 -#define VAR_QNAME_MINIMISATION_STRICT 447 -#define VAR_IP_FREEBIND 448 -#define VAR_DEFINE_TAG 449 -#define VAR_LOCAL_ZONE_TAG 450 -#define VAR_ACCESS_CONTROL_TAG 451 -#define VAR_LOCAL_ZONE_OVERRIDE 452 -#define VAR_ACCESS_CONTROL_TAG_ACTION 453 -#define VAR_ACCESS_CONTROL_TAG_DATA 454 -#define VAR_VIEW 455 -#define VAR_ACCESS_CONTROL_VIEW 456 -#define VAR_VIEW_FIRST 457 -#define VAR_SERVE_EXPIRED 458 -#define VAR_SERVE_EXPIRED_TTL 459 -#define VAR_SERVE_EXPIRED_TTL_RESET 460 -#define VAR_FAKE_DSA 461 -#define VAR_FAKE_SHA1 462 -#define VAR_LOG_IDENTITY 463 -#define VAR_HIDE_TRUSTANCHOR 464 -#define VAR_TRUST_ANCHOR_SIGNALING 465 -#define VAR_AGGRESSIVE_NSEC 466 -#define VAR_USE_SYSTEMD 467 -#define VAR_SHM_ENABLE 468 -#define VAR_SHM_KEY 469 -#define VAR_ROOT_KEY_SENTINEL 470 -#define VAR_DNSCRYPT 471 -#define VAR_DNSCRYPT_ENABLE 472 -#define VAR_DNSCRYPT_PORT 473 -#define VAR_DNSCRYPT_PROVIDER 474 -#define VAR_DNSCRYPT_SECRET_KEY 475 -#define VAR_DNSCRYPT_PROVIDER_CERT 476 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 477 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 478 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 479 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 480 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 481 -#define VAR_IPSECMOD_ENABLED 482 -#define VAR_IPSECMOD_HOOK 483 -#define VAR_IPSECMOD_IGNORE_BOGUS 484 -#define VAR_IPSECMOD_MAX_TTL 485 -#define VAR_IPSECMOD_WHITELIST 486 -#define VAR_IPSECMOD_STRICT 487 -#define VAR_CACHEDB 488 -#define VAR_CACHEDB_BACKEND 489 -#define VAR_CACHEDB_SECRETSEED 490 -#define VAR_CACHEDB_REDISHOST 491 -#define VAR_CACHEDB_REDISPORT 492 -#define VAR_CACHEDB_REDISTIMEOUT 493 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 494 -#define VAR_FOR_UPSTREAM 495 -#define VAR_AUTH_ZONE 496 -#define VAR_ZONEFILE 497 -#define VAR_MASTER 498 -#define VAR_URL 499 -#define VAR_FOR_DOWNSTREAM 500 -#define VAR_FALLBACK_ENABLED 501 -#define VAR_TLS_ADDITIONAL_PORT 502 -#define VAR_LOW_RTT 503 -#define VAR_LOW_RTT_PERMIL 504 -#define VAR_FAST_SERVER_PERMIL 505 -#define VAR_FAST_SERVER_NUM 506 -#define VAR_ALLOW_NOTIFY 507 -#define VAR_TLS_WIN_CERT 508 -#define VAR_TCP_CONNECTION_LIMIT 509 -#define VAR_FORWARD_NO_CACHE 510 -#define VAR_STUB_NO_CACHE 511 -#define VAR_LOG_SERVFAIL 512 -#define VAR_DENY_ANY 513 +#define VAR_MIN_CLIENT_SUBNET_IPV4 441 +#define VAR_MIN_CLIENT_SUBNET_IPV6 442 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 443 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 444 +#define VAR_CAPS_WHITELIST 445 +#define VAR_CACHE_MAX_NEGATIVE_TTL 446 +#define VAR_PERMIT_SMALL_HOLDDOWN 447 +#define VAR_QNAME_MINIMISATION 448 +#define VAR_QNAME_MINIMISATION_STRICT 449 +#define VAR_IP_FREEBIND 450 +#define VAR_DEFINE_TAG 451 +#define VAR_LOCAL_ZONE_TAG 452 +#define VAR_ACCESS_CONTROL_TAG 453 +#define VAR_LOCAL_ZONE_OVERRIDE 454 +#define VAR_ACCESS_CONTROL_TAG_ACTION 455 +#define VAR_ACCESS_CONTROL_TAG_DATA 456 +#define VAR_VIEW 457 +#define VAR_ACCESS_CONTROL_VIEW 458 +#define VAR_VIEW_FIRST 459 +#define VAR_SERVE_EXPIRED 460 +#define VAR_SERVE_EXPIRED_TTL 461 +#define VAR_SERVE_EXPIRED_TTL_RESET 462 +#define VAR_FAKE_DSA 463 +#define VAR_FAKE_SHA1 464 +#define VAR_LOG_IDENTITY 465 +#define VAR_HIDE_TRUSTANCHOR 466 +#define VAR_TRUST_ANCHOR_SIGNALING 467 +#define VAR_AGGRESSIVE_NSEC 468 +#define VAR_USE_SYSTEMD 469 +#define VAR_SHM_ENABLE 470 +#define VAR_SHM_KEY 471 +#define VAR_ROOT_KEY_SENTINEL 472 +#define VAR_DNSCRYPT 473 +#define VAR_DNSCRYPT_ENABLE 474 +#define VAR_DNSCRYPT_PORT 475 +#define VAR_DNSCRYPT_PROVIDER 476 +#define VAR_DNSCRYPT_SECRET_KEY 477 +#define VAR_DNSCRYPT_PROVIDER_CERT 478 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 479 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 480 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 481 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 482 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 483 +#define VAR_IPSECMOD_ENABLED 484 +#define VAR_IPSECMOD_HOOK 485 +#define VAR_IPSECMOD_IGNORE_BOGUS 486 +#define VAR_IPSECMOD_MAX_TTL 487 +#define VAR_IPSECMOD_WHITELIST 488 +#define VAR_IPSECMOD_STRICT 489 +#define VAR_CACHEDB 490 +#define VAR_CACHEDB_BACKEND 491 +#define VAR_CACHEDB_SECRETSEED 492 +#define VAR_CACHEDB_REDISHOST 493 +#define VAR_CACHEDB_REDISPORT 494 +#define VAR_CACHEDB_REDISTIMEOUT 495 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 496 +#define VAR_FOR_UPSTREAM 497 +#define VAR_AUTH_ZONE 498 +#define VAR_ZONEFILE 499 +#define VAR_MASTER 500 +#define VAR_URL 501 +#define VAR_FOR_DOWNSTREAM 502 +#define VAR_FALLBACK_ENABLED 503 +#define VAR_TLS_ADDITIONAL_PORT 504 +#define VAR_LOW_RTT 505 +#define VAR_LOW_RTT_PERMIL 506 +#define VAR_FAST_SERVER_PERMIL 507 +#define VAR_FAST_SERVER_NUM 508 +#define VAR_ALLOW_NOTIFY 509 +#define VAR_TLS_WIN_CERT 510 +#define VAR_TCP_CONNECTION_LIMIT 511 +#define VAR_FORWARD_NO_CACHE 512 +#define VAR_STUB_NO_CACHE 513 +#define VAR_LOG_SERVFAIL 514 +#define VAR_DENY_ANY 515 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -651,7 +655,7 @@ union YYSTYPE char* str; -#line 655 "util/configparser.c" /* yacc.c:355 */ +#line 659 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -668,7 +672,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 672 "util/configparser.c" /* yacc.c:358 */ +#line 676 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -910,21 +914,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 520 +#define YYLAST 524 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 259 +#define YYNTOKENS 261 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 278 +#define YYNNTS 280 /* YYNRULES -- Number of rules. */ -#define YYNRULES 533 +#define YYNRULES 537 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 799 +#define YYNSTATES 805 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 513 +#define YYMAXUTOK 515 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -984,67 +988,67 @@ 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 + 255, 256, 257, 258, 259, 260 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 168, 168, 168, 169, 169, 170, 170, 171, 171, - 171, 172, 172, 173, 177, 182, 183, 184, 184, 184, - 185, 185, 186, 186, 187, 187, 188, 188, 188, 189, - 189, 190, 190, 190, 191, 191, 191, 192, 192, 193, - 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, - 198, 199, 199, 200, 200, 200, 201, 201, 201, 202, - 202, 202, 203, 203, 204, 204, 205, 205, 206, 206, - 207, 207, 207, 208, 208, 209, 209, 210, 210, 210, - 211, 211, 212, 212, 213, 213, 214, 214, 214, 215, - 215, 216, 216, 217, 217, 218, 218, 219, 219, 220, - 220, 220, 221, 221, 222, 222, 222, 223, 223, 223, - 224, 224, 224, 225, 225, 225, 225, 226, 227, 227, - 227, 228, 228, 228, 229, 229, 230, 230, 231, 231, - 231, 232, 232, 233, 233, 233, 234, 234, 235, 235, - 236, 237, 237, 238, 238, 239, 239, 240, 241, 241, - 242, 242, 243, 243, 244, 244, 245, 245, 245, 246, - 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, - 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, - 255, 256, 256, 257, 257, 258, 258, 259, 259, 260, - 260, 260, 261, 261, 261, 262, 262, 262, 264, 276, - 277, 278, 278, 278, 278, 278, 279, 279, 281, 293, - 294, 295, 295, 295, 295, 296, 296, 298, 312, 313, - 314, 314, 314, 314, 315, 315, 315, 317, 333, 334, - 335, 335, 335, 335, 336, 336, 336, 337, 339, 348, - 357, 368, 377, 386, 395, 406, 415, 426, 439, 454, - 465, 482, 499, 514, 529, 542, 557, 566, 575, 584, + 0, 169, 169, 169, 170, 170, 171, 171, 172, 172, + 172, 173, 173, 174, 178, 183, 184, 185, 185, 185, + 186, 186, 187, 187, 188, 188, 189, 189, 189, 190, + 190, 191, 191, 191, 192, 192, 192, 193, 193, 194, + 194, 195, 195, 196, 196, 197, 197, 198, 198, 199, + 199, 200, 200, 201, 201, 201, 202, 202, 202, 203, + 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, + 208, 208, 208, 209, 209, 210, 210, 211, 211, 211, + 212, 212, 213, 213, 214, 214, 215, 215, 215, 216, + 216, 217, 217, 218, 218, 219, 219, 220, 220, 221, + 221, 221, 222, 222, 223, 223, 223, 224, 224, 224, + 225, 225, 225, 226, 226, 226, 226, 227, 228, 228, + 228, 229, 229, 229, 230, 230, 231, 231, 232, 232, + 232, 233, 233, 234, 234, 234, 235, 235, 236, 236, + 237, 238, 238, 239, 239, 240, 240, 241, 242, 242, + 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, + 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, + 252, 253, 253, 253, 254, 254, 254, 255, 255, 255, + 256, 256, 257, 258, 258, 259, 259, 260, 260, 261, + 261, 262, 262, 262, 263, 263, 263, 264, 264, 264, + 266, 278, 279, 280, 280, 280, 280, 280, 281, 281, + 283, 295, 296, 297, 297, 297, 297, 298, 298, 300, + 314, 315, 316, 316, 316, 316, 317, 317, 317, 319, + 335, 336, 337, 337, 337, 337, 338, 338, 338, 339, + 341, 350, 359, 370, 379, 388, 397, 408, 417, 428, + 441, 456, 467, 484, 501, 518, 535, 550, 565, 578, 593, 602, 611, 620, 629, 638, 647, 656, 665, 674, - 687, 696, 709, 718, 727, 736, 743, 750, 759, 766, - 775, 783, 792, 801, 815, 824, 833, 842, 851, 860, - 867, 874, 900, 908, 915, 922, 929, 936, 944, 952, - 960, 967, 978, 989, 996, 1005, 1014, 1023, 1030, 1037, - 1045, 1053, 1063, 1073, 1083, 1096, 1107, 1115, 1128, 1137, - 1146, 1155, 1165, 1175, 1183, 1196, 1205, 1213, 1222, 1230, - 1243, 1252, 1259, 1269, 1279, 1289, 1299, 1309, 1319, 1329, - 1339, 1346, 1353, 1360, 1369, 1378, 1387, 1396, 1403, 1413, - 1431, 1438, 1456, 1469, 1482, 1491, 1500, 1509, 1518, 1528, - 1538, 1549, 1558, 1567, 1576, 1585, 1598, 1611, 1620, 1627, - 1636, 1645, 1654, 1663, 1671, 1684, 1692, 1721, 1728, 1743, - 1753, 1763, 1770, 1777, 1786, 1794, 1808, 1827, 1846, 1858, - 1870, 1882, 1893, 1912, 1922, 1931, 1939, 1947, 1960, 1973, - 1986, 1999, 2008, 2017, 2023, 2032, 2041, 2051, 2061, 2074, - 2087, 2098, 2111, 2122, 2135, 2145, 2152, 2159, 2168, 2177, - 2187, 2197, 2207, 2214, 2221, 2230, 2239, 2249, 2259, 2266, - 2273, 2280, 2288, 2298, 2308, 2318, 2328, 2358, 2368, 2376, - 2385, 2400, 2409, 2414, 2415, 2416, 2416, 2416, 2417, 2417, - 2417, 2418, 2418, 2420, 2430, 2439, 2446, 2453, 2460, 2467, - 2474, 2481, 2486, 2487, 2488, 2488, 2489, 2489, 2490, 2490, - 2491, 2492, 2493, 2494, 2495, 2496, 2498, 2506, 2513, 2521, - 2529, 2536, 2543, 2552, 2561, 2570, 2579, 2588, 2597, 2602, - 2603, 2604, 2606, 2612, 2622, 2629, 2638, 2646, 2652, 2653, - 2655, 2655, 2655, 2656, 2656, 2657, 2658, 2659, 2660, 2661, - 2663, 2673, 2683, 2690, 2699, 2706, 2715, 2723, 2736, 2744, - 2757, 2762, 2763, 2764, 2764, 2765, 2765, 2765, 2767, 2781, - 2796, 2808, 2823, 2836 + 683, 692, 701, 710, 723, 732, 745, 754, 763, 772, + 779, 786, 795, 802, 811, 819, 828, 837, 851, 860, + 869, 878, 887, 896, 903, 910, 936, 944, 951, 958, + 965, 972, 980, 988, 996, 1003, 1014, 1025, 1032, 1041, + 1050, 1059, 1066, 1073, 1081, 1089, 1099, 1109, 1119, 1132, + 1143, 1151, 1164, 1173, 1182, 1191, 1201, 1211, 1219, 1232, + 1241, 1249, 1258, 1266, 1279, 1288, 1295, 1305, 1315, 1325, + 1335, 1345, 1355, 1365, 1375, 1382, 1389, 1396, 1405, 1414, + 1423, 1432, 1439, 1449, 1467, 1474, 1492, 1505, 1518, 1527, + 1536, 1545, 1554, 1564, 1574, 1585, 1594, 1603, 1612, 1621, + 1634, 1647, 1656, 1663, 1672, 1681, 1690, 1699, 1707, 1720, + 1728, 1757, 1764, 1779, 1789, 1799, 1806, 1813, 1822, 1830, + 1844, 1863, 1882, 1894, 1906, 1918, 1929, 1948, 1958, 1967, + 1975, 1983, 1996, 2009, 2022, 2035, 2044, 2053, 2059, 2068, + 2077, 2087, 2097, 2110, 2123, 2134, 2147, 2158, 2171, 2181, + 2188, 2195, 2204, 2213, 2223, 2233, 2243, 2250, 2257, 2266, + 2275, 2285, 2295, 2302, 2309, 2316, 2324, 2334, 2344, 2354, + 2364, 2394, 2404, 2412, 2421, 2436, 2445, 2450, 2451, 2452, + 2452, 2452, 2453, 2453, 2453, 2454, 2454, 2456, 2466, 2475, + 2482, 2489, 2496, 2503, 2510, 2517, 2522, 2523, 2524, 2524, + 2525, 2525, 2526, 2526, 2527, 2528, 2529, 2530, 2531, 2532, + 2534, 2542, 2549, 2557, 2565, 2572, 2579, 2588, 2597, 2606, + 2615, 2624, 2633, 2638, 2639, 2640, 2642, 2648, 2658, 2665, + 2674, 2682, 2688, 2689, 2691, 2691, 2691, 2692, 2692, 2693, + 2694, 2695, 2696, 2697, 2699, 2709, 2719, 2726, 2735, 2742, + 2751, 2759, 2772, 2780, 2793, 2798, 2799, 2800, 2800, 2801, + 2801, 2801, 2803, 2817, 2832, 2844, 2859, 2872 }; #endif @@ -1119,6 +1123,7 @@ static const char *const yytname[] = "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE", "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE", "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6", + "VAR_MIN_CLIENT_SUBNET_IPV4", "VAR_MIN_CLIENT_SUBNET_IPV6", "VAR_MAX_ECS_TREE_SIZE_IPV4", "VAR_MAX_ECS_TREE_SIZE_IPV6", "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", @@ -1158,6 +1163,7 @@ static const char *const yytname[] = "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", "server_max_ecs_tree_size_ipv4", "server_max_ecs_tree_size_ipv6", "server_interface", "server_outgoing_interface", "server_outgoing_range", "server_outgoing_port_permit", "server_outgoing_port_avoid", @@ -1293,14 +1299,15 @@ static const yytype_uint16 yytoknum[] = 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513 + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515 }; # endif -#define YYPACT_NINF -152 +#define YYPACT_NINF -154 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-152))) + (!!((Yystate) == (-154))) #define YYTABLE_NINF -1 @@ -1311,86 +1318,87 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -152, 210, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -12, 100, 96, 46, 39, 211, - 109, -80, 75, -151, 22, 23, 24, 28, 29, 30, - 78, 80, 84, 88, 89, 114, 118, 130, 131, 132, - 134, 139, 141, 178, 180, 194, 195, 197, 198, 199, - 203, 204, 212, 213, 214, 215, 216, 218, 219, 220, - 221, 223, 233, 234, 237, 239, 240, 241, 242, 243, - 245, 246, 247, 248, 249, 263, 264, 265, 266, 267, - 268, 270, 276, 277, 278, 279, 280, 292, 293, 295, - 304, 305, 306, 307, 308, 309, 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, 342, 343, 344, 345, - 347, 348, 349, 350, 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, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 417, 418, 419, - 420, 421, 422, 423, 424, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, 425, 426, 427, - 428, 429, 430, 431, -152, -152, -152, -152, -152, -152, - -152, -152, 432, 434, 435, 436, 437, 438, -152, -152, - -152, -152, -152, -152, -152, 439, 440, 442, 443, 444, - 445, 446, -152, -152, -152, -152, -152, -152, -152, -152, - 447, 448, 449, 450, 451, 452, 453, 454, -152, -152, - -152, -152, -152, -152, -152, -152, -152, 455, 456, 457, - 458, 459, 460, 461, 462, -152, -152, -152, -152, -152, - -152, -152, -152, -152, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, 475, - -152, -152, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, 486, 487, 488, 489, 490, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, 491, 492, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - 493, 494, 495, -152, -152, -152, -152, -152, -152, -152, - -152, -152, 496, 497, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, 498, 499, 500, 501, 502, 503, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, 504, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, 505, - -152, -152, 506, 507, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, 508, 509, - 510, -152, -152, -152, -152, -152, -152, -152, -152 + -154, 212, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -12, 102, 98, 147, 39, 219, + 111, -80, 75, -153, 22, 23, 24, 28, 29, 30, + 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, 239, 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, -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, -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, -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, 429, 430, 431, 432, 433, 434, 435, -154, -154, + -154, -154, -154, -154, -154, -154, 436, 438, 439, 440, + 441, 442, -154, -154, -154, -154, -154, -154, -154, 443, + 444, 446, 447, 448, 449, 450, -154, -154, -154, -154, + -154, -154, -154, -154, 451, 452, 453, 454, 455, 456, + 457, 458, -154, -154, -154, -154, -154, -154, -154, -154, + -154, 459, 460, 461, 462, 463, 464, 465, 466, -154, + -154, -154, -154, -154, -154, -154, -154, -154, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, 479, -154, -154, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, 490, 491, 492, + 493, 494, -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, 495, 496, -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, 497, 498, 499, -154, -154, -154, + -154, -154, -154, -154, -154, -154, 500, 501, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, 502, 503, 504, + 505, 506, 507, -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, 508, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, 509, -154, -154, 510, 511, + -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, 512, 513, 514, -154, -154, -154, + -154, -154, -154, -154, -154 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1398,9 +1406,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 14, 198, 208, 442, 488, 461, 217, - 497, 520, 227, 3, 16, 200, 210, 219, 229, 444, - 463, 490, 499, 522, 4, 5, 6, 10, 13, 8, + 2, 0, 1, 14, 200, 210, 446, 492, 465, 219, + 501, 524, 229, 3, 16, 202, 212, 221, 231, 448, + 467, 494, 503, 526, 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, @@ -1419,131 +1427,132 @@ 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, 15, 17, 18, 80, 83, - 92, 175, 176, 19, 144, 145, 146, 147, 148, 149, - 150, 151, 31, 71, 20, 84, 85, 42, 64, 79, - 21, 22, 24, 25, 23, 26, 27, 28, 29, 30, - 115, 187, 116, 118, 119, 120, 189, 194, 190, 171, - 81, 70, 96, 113, 114, 196, 117, 32, 33, 34, - 35, 36, 72, 86, 87, 102, 58, 68, 59, 179, - 180, 97, 52, 53, 178, 54, 55, 106, 110, 124, - 133, 156, 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, 152, 90, - 91, 108, 109, 197, 95, 51, 73, 76, 57, 60, - 98, 99, 74, 153, 100, 61, 62, 63, 188, 112, - 166, 167, 168, 169, 177, 101, 69, 103, 104, 105, - 154, 66, 67, 88, 77, 78, 93, 121, 122, 123, - 128, 129, 130, 157, 158, 160, 162, 163, 161, 164, - 172, 134, 135, 138, 139, 136, 137, 140, 141, 143, - 142, 191, 193, 192, 155, 165, 181, 183, 182, 184, - 185, 186, 159, 170, 173, 174, 195, 0, 0, 0, - 0, 0, 0, 0, 199, 201, 202, 203, 205, 206, - 207, 204, 0, 0, 0, 0, 0, 0, 209, 211, - 212, 213, 214, 215, 216, 0, 0, 0, 0, 0, - 0, 0, 218, 220, 221, 224, 225, 222, 226, 223, - 0, 0, 0, 0, 0, 0, 0, 0, 228, 230, - 231, 232, 233, 237, 234, 235, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 445, 447, 446, 452, - 448, 449, 450, 451, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 462, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 489, 491, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 498, 500, 501, 502, 504, 505, 503, 506, - 507, 508, 509, 0, 0, 0, 0, 0, 521, 523, - 524, 525, 526, 527, 239, 238, 245, 256, 254, 262, - 263, 266, 264, 265, 267, 268, 269, 270, 271, 289, - 290, 291, 292, 293, 316, 317, 318, 323, 324, 259, - 325, 326, 329, 327, 328, 331, 332, 333, 347, 304, - 305, 307, 308, 334, 350, 298, 300, 351, 357, 358, - 359, 260, 315, 373, 374, 299, 368, 283, 255, 294, - 348, 354, 335, 0, 0, 377, 261, 240, 282, 339, - 241, 257, 258, 295, 296, 375, 337, 341, 342, 242, - 378, 319, 346, 284, 303, 352, 353, 356, 367, 297, - 371, 369, 370, 309, 314, 343, 344, 310, 311, 336, - 361, 285, 286, 288, 272, 274, 275, 276, 277, 278, - 379, 380, 381, 320, 321, 322, 330, 382, 383, 384, - 0, 0, 0, 338, 312, 493, 393, 397, 395, 394, - 398, 396, 0, 0, 401, 402, 246, 247, 248, 249, - 250, 251, 252, 253, 340, 355, 372, 406, 407, 313, - 385, 0, 0, 0, 0, 0, 0, 362, 363, 364, - 365, 366, 494, 306, 301, 360, 281, 243, 244, 302, - 408, 410, 409, 411, 412, 413, 273, 280, 403, 405, - 404, 279, 0, 287, 345, 414, 415, 416, 420, 419, - 417, 418, 421, 422, 423, 424, 426, 425, 435, 0, - 439, 440, 0, 0, 441, 427, 433, 428, 429, 430, - 432, 434, 431, 453, 455, 454, 457, 458, 459, 460, - 456, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 492, 510, 511, 512, 515, 513, 514, - 516, 517, 518, 519, 528, 529, 530, 531, 532, 349, - 376, 392, 495, 496, 399, 400, 386, 387, 0, 0, - 0, 391, 533, 436, 437, 438, 390, 388, 389 + 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, 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, 201, 203, + 204, 205, 207, 208, 209, 206, 0, 0, 0, 0, + 0, 0, 211, 213, 214, 215, 216, 217, 218, 0, + 0, 0, 0, 0, 0, 0, 220, 222, 223, 226, + 227, 224, 228, 225, 0, 0, 0, 0, 0, 0, + 0, 0, 230, 232, 233, 234, 235, 239, 236, 237, + 238, 0, 0, 0, 0, 0, 0, 0, 0, 447, + 449, 451, 450, 456, 452, 453, 454, 455, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 466, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 493, 495, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 502, 504, 505, 506, + 508, 509, 507, 510, 511, 512, 513, 0, 0, 0, + 0, 0, 525, 527, 528, 529, 530, 531, 241, 240, + 247, 260, 258, 266, 267, 270, 268, 269, 271, 272, + 273, 274, 275, 293, 294, 295, 296, 297, 320, 321, + 322, 327, 328, 263, 329, 330, 333, 331, 332, 335, + 336, 337, 351, 308, 309, 311, 312, 338, 354, 302, + 304, 355, 361, 362, 363, 264, 319, 377, 378, 303, + 372, 287, 259, 298, 352, 358, 339, 0, 0, 381, + 265, 242, 286, 343, 243, 261, 262, 299, 300, 379, + 341, 345, 346, 244, 382, 323, 350, 288, 307, 356, + 357, 360, 371, 301, 375, 373, 374, 313, 318, 347, + 348, 314, 315, 340, 365, 289, 290, 292, 276, 278, + 279, 280, 281, 282, 383, 384, 385, 324, 325, 326, + 334, 386, 387, 388, 0, 0, 0, 342, 316, 497, + 397, 401, 399, 398, 402, 400, 0, 0, 405, 406, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 344, 359, 376, 410, 411, 317, 389, 0, 0, 0, + 0, 0, 0, 366, 367, 368, 369, 370, 498, 310, + 305, 364, 285, 245, 246, 306, 412, 414, 413, 415, + 416, 417, 277, 284, 407, 409, 408, 283, 0, 291, + 349, 418, 419, 420, 424, 423, 421, 422, 425, 426, + 427, 428, 430, 429, 439, 0, 443, 444, 0, 0, + 445, 431, 437, 432, 433, 434, 436, 438, 435, 457, + 459, 458, 461, 462, 463, 464, 460, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 496, + 514, 515, 516, 519, 517, 518, 520, 521, 522, 523, + 532, 533, 534, 535, 536, 353, 380, 396, 499, 500, + 403, 404, 390, 391, 0, 0, 0, 395, 537, 440, + 441, 442, 394, 392, 393 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152 + -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, -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, + -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, -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, + -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, 215, 15, 25, 404, 16, - 26, 418, 17, 27, 432, 18, 28, 448, 216, 217, - 218, 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, 405, 406, 407, 408, 409, 410, - 411, 419, 420, 421, 422, 423, 424, 449, 450, 451, - 452, 453, 454, 455, 456, 433, 434, 435, 436, 437, - 438, 439, 19, 29, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 20, 30, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 21, 31, - 500, 501, 392, 393, 394, 395, 22, 32, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 23, - 33, 528, 529, 530, 531, 532, 533, 396 + -1, 1, 13, 14, 24, 217, 15, 25, 408, 16, + 26, 422, 17, 27, 436, 18, 28, 452, 218, 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, 409, 410, 411, 412, + 413, 414, 415, 423, 424, 425, 426, 427, 428, 453, + 454, 455, 456, 457, 458, 459, 460, 437, 438, 439, + 440, 441, 442, 443, 19, 29, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 20, 30, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 21, 31, 504, 505, 396, 397, 398, 399, 22, 32, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 23, 33, 532, 533, 534, 535, 536, 537, 400 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1554,56 +1563,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, 499, 534, 535, 536, 65, 66, 67, 537, 538, - 539, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 64, 503, 538, 539, 540, 65, 66, 67, 541, 542, + 543, 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, 440, 523, 524, 525, 526, 527, 540, 425, - 541, 109, 110, 111, 542, 112, 113, 114, 543, 544, + 107, 108, 444, 527, 528, 529, 530, 531, 544, 545, + 546, 109, 110, 111, 547, 112, 113, 114, 548, 549, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 545, 426, 427, 139, 546, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 412, - 547, 548, 549, 397, 550, 398, 399, 413, 414, 551, - 428, 552, 150, 151, 152, 153, 154, 155, 156, 157, + 135, 136, 137, 138, 550, 551, 552, 139, 553, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 554, + 555, 416, 556, 557, 558, 401, 559, 402, 403, 417, + 418, 560, 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, 553, 186, - 554, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 555, 556, 400, 557, 558, 559, - 2, 429, 430, 560, 561, 200, 201, 202, 203, 204, - 205, 3, 562, 563, 564, 565, 566, 206, 567, 568, - 569, 570, 415, 571, 416, 207, 208, 401, 209, 210, - 402, 211, 212, 572, 573, 213, 214, 574, 431, 575, - 576, 577, 578, 579, 4, 580, 581, 582, 583, 584, - 5, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 585, 586, 587, 588, 589, 590, 441, - 591, 442, 443, 444, 445, 446, 592, 593, 594, 595, - 596, 447, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 597, 598, 6, 599, 457, 458, 459, 460, - 461, 462, 463, 464, 600, 601, 602, 603, 604, 605, - 7, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 417, 636, 637, 638, 639, 403, 640, 641, 642, - 643, 8, 644, 645, 646, 647, 648, 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, - 9, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 10, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 11, 723, 724, 725, 726, 727, 728, - 729, 12, 730, 731, 732, 733, 734, 735, 736, 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 + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 429, 188, 561, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 562, 563, 404, 564, + 565, 566, 2, 567, 568, 569, 570, 202, 203, 204, + 205, 206, 207, 3, 571, 572, 430, 431, 573, 208, + 574, 575, 576, 577, 419, 578, 420, 209, 210, 405, + 211, 212, 406, 213, 214, 579, 580, 215, 216, 581, + 582, 432, 583, 584, 585, 586, 4, 587, 588, 589, + 590, 591, 5, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 592, 593, 594, 595, 596, + 597, 445, 598, 446, 447, 448, 449, 450, 599, 600, + 601, 602, 603, 451, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 604, 605, 6, 606, 607, 608, + 609, 610, 433, 434, 461, 462, 463, 464, 465, 466, + 467, 468, 7, 611, 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, 435, 639, 640, 641, 421, 642, 643, 644, 645, + 407, 646, 647, 8, 648, 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, 9, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 10, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 11, 729, 730, + 731, 732, 733, 734, 735, 12, 736, 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 }; static const yytype_uint16 yycheck[] = @@ -1616,61 +1625,61 @@ static const yytype_uint16 yycheck[] = 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 43, 234, 235, 236, 237, 238, 10, 43, + 92, 93, 43, 236, 237, 238, 239, 240, 10, 10, 10, 103, 104, 105, 10, 107, 108, 109, 10, 10, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 10, 79, 80, 139, 10, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 43, - 10, 10, 10, 43, 10, 45, 46, 51, 52, 10, - 104, 10, 164, 165, 166, 167, 168, 169, 170, 171, + 132, 133, 134, 135, 10, 10, 10, 139, 10, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 10, + 10, 43, 10, 10, 10, 43, 10, 45, 46, 51, + 52, 10, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 10, 201, - 10, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 10, 10, 106, 10, 10, 10, - 0, 165, 166, 10, 10, 227, 228, 229, 230, 231, - 232, 11, 10, 10, 10, 10, 10, 239, 10, 10, - 10, 10, 136, 10, 138, 247, 248, 137, 250, 251, - 140, 253, 254, 10, 10, 257, 258, 10, 202, 10, - 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, 240, - 10, 242, 243, 244, 245, 246, 10, 10, 10, 10, - 10, 252, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 10, 10, 94, 10, 95, 96, 97, 98, - 99, 100, 101, 102, 10, 10, 10, 10, 10, 10, - 110, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 43, 203, 10, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 10, 10, 106, 10, + 10, 10, 0, 10, 10, 10, 10, 229, 230, 231, + 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, 10, + 10, 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, + 10, 10, 10, 254, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 10, 10, 94, 10, 10, 10, + 10, 10, 165, 166, 95, 96, 97, 98, 99, 100, + 101, 102, 110, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 255, 10, 10, 10, 10, 256, 10, 10, 10, - 10, 151, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 204, 10, 10, 10, 257, 10, 10, 10, 10, + 258, 10, 10, 151, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 200, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 216, 10, 10, 10, + 10, 10, 10, 10, 202, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 233, 10, 10, 10, 10, 10, 10, - 10, 241, 10, 10, 10, 10, 10, 10, 10, 10, + 218, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 235, 10, 10, + 10, 10, 10, 10, 10, 243, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 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, 260, 0, 11, 44, 50, 94, 110, 151, 200, - 216, 233, 241, 261, 262, 265, 268, 271, 274, 481, - 492, 507, 515, 528, 263, 266, 269, 272, 275, 482, - 493, 508, 516, 529, 12, 13, 14, 15, 16, 17, + 0, 262, 0, 11, 44, 50, 94, 110, 151, 202, + 218, 235, 243, 263, 264, 267, 270, 273, 276, 485, + 496, 511, 519, 532, 265, 268, 271, 274, 277, 486, + 497, 512, 520, 533, 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, @@ -1685,10 +1694,10 @@ static const yytype_uint16 yystos[] = 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 201, 203, 204, 205, + 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 227, 228, 229, 230, 231, 232, 239, 247, 248, 250, - 251, 253, 254, 257, 258, 264, 277, 278, 279, 280, + 216, 217, 229, 230, 231, 232, 233, 234, 241, 249, + 250, 252, 253, 255, 256, 259, 260, 266, 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, @@ -1706,21 +1715,21 @@ 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, 511, 512, 513, 514, 536, 43, 45, 46, - 106, 137, 140, 256, 267, 453, 454, 455, 456, 457, - 458, 459, 43, 51, 52, 136, 138, 255, 270, 460, - 461, 462, 463, 464, 465, 43, 79, 80, 104, 165, - 166, 202, 273, 474, 475, 476, 477, 478, 479, 480, - 43, 240, 242, 243, 244, 245, 246, 252, 276, 466, - 467, 468, 469, 470, 471, 472, 473, 95, 96, 97, - 98, 99, 100, 101, 102, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 111, - 509, 510, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 234, 235, 236, 237, 238, 530, 531, - 532, 533, 534, 535, 10, 10, 10, 10, 10, 10, + 451, 452, 453, 454, 455, 456, 515, 516, 517, 518, + 540, 43, 45, 46, 106, 137, 140, 258, 269, 457, + 458, 459, 460, 461, 462, 463, 43, 51, 52, 136, + 138, 257, 272, 464, 465, 466, 467, 468, 469, 43, + 79, 80, 104, 165, 166, 204, 275, 478, 479, 480, + 481, 482, 483, 484, 43, 242, 244, 245, 246, 247, + 248, 254, 278, 470, 471, 472, 473, 474, 475, 476, + 477, 95, 96, 97, 98, 99, 100, 101, 102, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 111, 513, 514, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 236, 237, 238, + 239, 240, 534, 535, 536, 537, 538, 539, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1746,36 +1755,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 + 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, 259, 260, 260, 261, 261, 261, 261, 261, 261, - 261, 261, 261, 261, 262, 263, 263, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 265, 266, - 266, 267, 267, 267, 267, 267, 267, 267, 268, 269, - 269, 270, 270, 270, 270, 270, 270, 271, 272, 272, - 273, 273, 273, 273, 273, 273, 273, 274, 275, 275, - 276, 276, 276, 276, 276, 276, 276, 276, 277, 278, + 0, 261, 262, 262, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 264, 265, 265, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 267, 268, 268, 269, 269, 269, 269, 269, 269, 269, + 270, 271, 271, 272, 272, 272, 272, 272, 272, 273, + 274, 274, 275, 275, 275, 275, 275, 275, 275, 276, + 277, 277, 278, 278, 278, 278, 278, 278, 278, 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, @@ -1796,16 +1806,16 @@ static const yytype_uint16 yyr1[] = 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 482, 483, 483, 483, 483, 483, - 483, 483, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 493, 494, 494, 494, 494, 494, 494, - 494, 494, 494, 494, 494, 494, 495, 496, 497, 498, + 479, 480, 481, 482, 483, 484, 485, 486, 486, 487, + 487, 487, 487, 487, 487, 487, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 497, 498, 498, + 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 516, - 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 529, 530, 530, 530, 530, 530, 531, 532, - 533, 534, 535, 536 + 509, 510, 511, 512, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 520, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 533, 534, 534, 534, + 534, 534, 535, 536, 537, 538, 539, 540 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1830,11 +1840,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, 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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1845,26 +1855,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, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 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, + 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, 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, + 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, - 1, 2, 0, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 3 + 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, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 3 }; @@ -2541,15 +2551,15 @@ yyreduce: switch (yyn) { case 14: -#line 178 "./util/configparser.y" /* yacc.c:1646 */ +#line 179 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2549 "util/configparser.c" /* yacc.c:1646 */ +#line 2559 "util/configparser.c" /* yacc.c:1646 */ break; - case 198: -#line 265 "./util/configparser.y" /* yacc.c:1646 */ + case 200: +#line 267 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2560,11 +2570,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2564 "util/configparser.c" /* yacc.c:1646 */ +#line 2574 "util/configparser.c" /* yacc.c:1646 */ break; - case 208: -#line 282 "./util/configparser.y" /* yacc.c:1646 */ + case 210: +#line 284 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2575,11 +2585,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2579 "util/configparser.c" /* yacc.c:1646 */ +#line 2589 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 299 "./util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 301 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2592,11 +2602,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2596 "util/configparser.c" /* yacc.c:1646 */ +#line 2606 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 318 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 320 "./util/configparser.y" /* yacc.c:1646 */ { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2611,11 +2621,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2615 "util/configparser.c" /* yacc.c:1646 */ +#line 2625 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 340 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 342 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2623,11 +2633,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2627 "util/configparser.c" /* yacc.c:1646 */ +#line 2637 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 349 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 351 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2635,11 +2645,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2639 "util/configparser.c" /* yacc.c:1646 */ +#line 2649 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 358 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 360 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2649,11 +2659,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2653 "util/configparser.c" /* yacc.c:1646 */ +#line 2663 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 369 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 371 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2661,11 +2671,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2665 "util/configparser.c" /* yacc.c:1646 */ +#line 2675 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 378 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 380 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2673,11 +2683,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2677 "util/configparser.c" /* yacc.c:1646 */ +#line 2687 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 387 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 389 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2685,11 +2695,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2689 "util/configparser.c" /* yacc.c:1646 */ +#line 2699 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 396 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 398 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2699,11 +2709,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2703 "util/configparser.c" /* yacc.c:1646 */ +#line 2713 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 407 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 409 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2711,11 +2721,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2715 "util/configparser.c" /* yacc.c:1646 */ +#line 2725 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 416 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 418 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2725,11 +2735,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2729 "util/configparser.c" /* yacc.c:1646 */ +#line 2739 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 427 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 429 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2740,11 +2750,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2744 "util/configparser.c" /* yacc.c:1646 */ +#line 2754 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 440 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 442 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2758,11 +2768,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2762 "util/configparser.c" /* yacc.c:1646 */ +#line 2772 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 455 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 457 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2772,11 +2782,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2776 "util/configparser.c" /* yacc.c:1646 */ +#line 2786 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 466 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 468 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2792,11 +2802,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2796 "util/configparser.c" /* yacc.c:1646 */ +#line 2806 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 483 "./util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 485 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2812,11 +2822,51 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2816 "util/configparser.c" /* yacc.c:1646 */ +#line 2826 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 500 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 502 "./util/configparser.y" /* yacc.c:1646 */ + { + #ifdef CLIENT_SUBNET + OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("IPv4 subnet length expected"); + else if (atoi((yyvsp[0].str)) > 32) + cfg_parser->cfg->min_client_subnet_ipv4 = 32; + else if (atoi((yyvsp[0].str)) < 0) + cfg_parser->cfg->min_client_subnet_ipv4 = 0; + else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + free((yyvsp[0].str)); + } +#line 2846 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 255: +#line 519 "./util/configparser.y" /* yacc.c:1646 */ + { + #ifdef CLIENT_SUBNET + OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("Ipv6 subnet length expected"); + else if (atoi((yyvsp[0].str)) > 128) + cfg_parser->cfg->min_client_subnet_ipv6 = 128; + else if (atoi((yyvsp[0].str)) < 0) + cfg_parser->cfg->min_client_subnet_ipv6 = 0; + else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + free((yyvsp[0].str)); + } +#line 2866 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 256: +#line 536 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -2830,11 +2880,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2834 "util/configparser.c" /* yacc.c:1646 */ +#line 2884 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 515 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 551 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -2848,11 +2898,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2852 "util/configparser.c" /* yacc.c:1646 */ +#line 2902 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 530 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 566 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2864,11 +2914,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2868 "util/configparser.c" /* yacc.c:1646 */ +#line 2918 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 543 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 579 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2882,11 +2932,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2886 "util/configparser.c" /* yacc.c:1646 */ +#line 2936 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 558 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 594 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2894,11 +2944,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2898 "util/configparser.c" /* yacc.c:1646 */ +#line 2948 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 567 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 603 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -2906,11 +2956,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2910 "util/configparser.c" /* yacc.c:1646 */ +#line 2960 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 576 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 612 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -2918,11 +2968,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2922 "util/configparser.c" /* yacc.c:1646 */ +#line 2972 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 585 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 621 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2930,11 +2980,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2934 "util/configparser.c" /* yacc.c:1646 */ +#line 2984 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 594 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 630 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2942,11 +2992,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2946 "util/configparser.c" /* yacc.c:1646 */ +#line 2996 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 603 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 639 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2954,11 +3004,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2958 "util/configparser.c" /* yacc.c:1646 */ +#line 3008 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 612 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 648 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2966,11 +3016,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2970 "util/configparser.c" /* yacc.c:1646 */ +#line 3020 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 621 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 657 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2978,11 +3028,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2982 "util/configparser.c" /* yacc.c:1646 */ +#line 3032 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 630 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 666 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2990,11 +3040,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2994 "util/configparser.c" /* yacc.c:1646 */ +#line 3044 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 639 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 675 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3002,11 +3052,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3006 "util/configparser.c" /* yacc.c:1646 */ +#line 3056 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 648 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 684 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3014,11 +3064,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3018 "util/configparser.c" /* yacc.c:1646 */ +#line 3068 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 657 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 693 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3026,11 +3076,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3030 "util/configparser.c" /* yacc.c:1646 */ +#line 3080 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 666 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 702 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3038,11 +3088,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3042 "util/configparser.c" /* yacc.c:1646 */ +#line 3092 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 675 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 711 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3054,11 +3104,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3058 "util/configparser.c" /* yacc.c:1646 */ +#line 3108 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 688 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 724 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3066,11 +3116,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3070 "util/configparser.c" /* yacc.c:1646 */ +#line 3120 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 697 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 733 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3082,11 +3132,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3086 "util/configparser.c" /* yacc.c:1646 */ +#line 3136 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 710 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 746 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3094,11 +3144,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3098 "util/configparser.c" /* yacc.c:1646 */ +#line 3148 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 719 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 755 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3106,11 +3156,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3110 "util/configparser.c" /* yacc.c:1646 */ +#line 3160 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 728 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 764 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3118,31 +3168,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3122 "util/configparser.c" /* yacc.c:1646 */ +#line 3172 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 737 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 773 "./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 3132 "util/configparser.c" /* yacc.c:1646 */ +#line 3182 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 744 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 780 "./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 3142 "util/configparser.c" /* yacc.c:1646 */ +#line 3192 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 751 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 787 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3150,21 +3200,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3154 "util/configparser.c" /* yacc.c:1646 */ +#line 3204 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 760 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 796 "./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 3164 "util/configparser.c" /* yacc.c:1646 */ +#line 3214 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 767 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 803 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3172,22 +3222,22 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3176 "util/configparser.c" /* yacc.c:1646 */ +#line 3226 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 776 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 812 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3187 "util/configparser.c" /* yacc.c:1646 */ +#line 3237 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 784 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 820 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3195,11 +3245,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3199 "util/configparser.c" /* yacc.c:1646 */ +#line 3249 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 793 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 829 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3207,11 +3257,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3211 "util/configparser.c" /* yacc.c:1646 */ +#line 3261 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 802 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 838 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3224,11 +3274,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3228 "util/configparser.c" /* yacc.c:1646 */ +#line 3278 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 816 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 852 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3236,11 +3286,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3240 "util/configparser.c" /* yacc.c:1646 */ +#line 3290 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 825 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 861 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3248,11 +3298,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3252 "util/configparser.c" /* yacc.c:1646 */ +#line 3302 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 834 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 870 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3260,11 +3310,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3264 "util/configparser.c" /* yacc.c:1646 */ +#line 3314 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 843 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 879 "./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) @@ -3272,11 +3322,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3276 "util/configparser.c" /* yacc.c:1646 */ +#line 3326 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 852 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 888 "./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) @@ -3284,31 +3334,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3288 "util/configparser.c" /* yacc.c:1646 */ +#line 3338 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 861 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 897 "./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 3298 "util/configparser.c" /* yacc.c:1646 */ +#line 3348 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 868 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 904 "./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 3308 "util/configparser.c" /* yacc.c:1646 */ +#line 3358 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 875 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 911 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3333,105 +3383,105 @@ yyreduce: } } } -#line 3337 "util/configparser.c" /* yacc.c:1646 */ +#line 3387 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 901 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 937 "./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 3348 "util/configparser.c" /* yacc.c:1646 */ +#line 3398 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 909 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 945 "./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 3358 "util/configparser.c" /* yacc.c:1646 */ +#line 3408 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 916 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 952 "./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 3368 "util/configparser.c" /* yacc.c:1646 */ +#line 3418 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 923 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 959 "./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 3378 "util/configparser.c" /* yacc.c:1646 */ +#line 3428 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 930 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 966 "./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 3388 "util/configparser.c" /* yacc.c:1646 */ +#line 3438 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 937 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 973 "./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 3399 "util/configparser.c" /* yacc.c:1646 */ +#line 3449 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 945 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 981 "./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 3410 "util/configparser.c" /* yacc.c:1646 */ +#line 3460 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 953 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 989 "./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 3421 "util/configparser.c" /* yacc.c:1646 */ +#line 3471 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 961 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 997 "./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 3431 "util/configparser.c" /* yacc.c:1646 */ +#line 3481 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 968 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1004 "./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) @@ -3441,11 +3491,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3445 "util/configparser.c" /* yacc.c:1646 */ +#line 3495 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 979 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1015 "./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) @@ -3455,21 +3505,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3459 "util/configparser.c" /* yacc.c:1646 */ +#line 3509 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 990 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1026 "./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 3469 "util/configparser.c" /* yacc.c:1646 */ +#line 3519 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 997 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1033 "./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) @@ -3477,11 +3527,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3481 "util/configparser.c" /* yacc.c:1646 */ +#line 3531 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1006 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1042 "./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) @@ -3489,11 +3539,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3493 "util/configparser.c" /* yacc.c:1646 */ +#line 3543 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1015 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1051 "./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) @@ -3501,53 +3551,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3505 "util/configparser.c" /* yacc.c:1646 */ +#line 3555 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1024 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1060 "./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 3515 "util/configparser.c" /* yacc.c:1646 */ +#line 3565 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1031 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1067 "./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 3525 "util/configparser.c" /* yacc.c:1646 */ +#line 3575 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1038 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1074 "./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 3536 "util/configparser.c" /* yacc.c:1646 */ +#line 3586 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1046 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1082 "./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 3547 "util/configparser.c" /* yacc.c:1646 */ +#line 3597 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1054 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1090 "./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) @@ -3556,11 +3606,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3560 "util/configparser.c" /* yacc.c:1646 */ +#line 3610 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1064 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1100 "./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) @@ -3569,11 +3619,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3573 "util/configparser.c" /* yacc.c:1646 */ +#line 3623 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1074 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1110 "./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) @@ -3582,11 +3632,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3586 "util/configparser.c" /* yacc.c:1646 */ +#line 3636 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1084 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1120 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3598,11 +3648,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3602 "util/configparser.c" /* yacc.c:1646 */ +#line 3652 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1097 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1133 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3612,22 +3662,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3616 "util/configparser.c" /* yacc.c:1646 */ +#line 3666 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1108 "./util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1144 "./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 3627 "util/configparser.c" /* yacc.c:1646 */ +#line 3677 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1116 "./util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1152 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3639,11 +3689,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3643 "util/configparser.c" /* yacc.c:1646 */ +#line 3693 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1129 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1165 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3651,11 +3701,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3655 "util/configparser.c" /* yacc.c:1646 */ +#line 3705 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1138 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1174 "./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) @@ -3663,11 +3713,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3667 "util/configparser.c" /* yacc.c:1646 */ +#line 3717 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1147 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1183 "./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) @@ -3675,11 +3725,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3679 "util/configparser.c" /* yacc.c:1646 */ +#line 3729 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1156 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1192 "./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) @@ -3688,11 +3738,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3692 "util/configparser.c" /* yacc.c:1646 */ +#line 3742 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1166 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1202 "./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) @@ -3701,22 +3751,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3705 "util/configparser.c" /* yacc.c:1646 */ +#line 3755 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1176 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1212 "./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 3716 "util/configparser.c" /* yacc.c:1646 */ +#line 3766 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1184 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1220 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3728,11 +3778,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3732 "util/configparser.c" /* yacc.c:1646 */ +#line 3782 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1197 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1233 "./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) @@ -3740,22 +3790,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3744 "util/configparser.c" /* yacc.c:1646 */ +#line 3794 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1206 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1242 "./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 3755 "util/configparser.c" /* yacc.c:1646 */ +#line 3805 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1214 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1250 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3763,22 +3813,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3767 "util/configparser.c" /* yacc.c:1646 */ +#line 3817 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1223 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1259 "./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 3778 "util/configparser.c" /* yacc.c:1646 */ +#line 3828 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1231 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1267 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3790,11 +3840,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3794 "util/configparser.c" /* yacc.c:1646 */ +#line 3844 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1244 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1280 "./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) @@ -3802,21 +3852,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3806 "util/configparser.c" /* yacc.c:1646 */ +#line 3856 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1253 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1289 "./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 3816 "util/configparser.c" /* yacc.c:1646 */ +#line 3866 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1260 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1296 "./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) @@ -3825,11 +3875,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3829 "util/configparser.c" /* yacc.c:1646 */ +#line 3879 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1270 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1306 "./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) @@ -3838,11 +3888,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3842 "util/configparser.c" /* yacc.c:1646 */ +#line 3892 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1280 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1316 "./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) @@ -3851,11 +3901,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3855 "util/configparser.c" /* yacc.c:1646 */ +#line 3905 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1290 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1326 "./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) @@ -3864,11 +3914,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3868 "util/configparser.c" /* yacc.c:1646 */ +#line 3918 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1300 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1336 "./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) @@ -3877,11 +3927,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3881 "util/configparser.c" /* yacc.c:1646 */ +#line 3931 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1310 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1346 "./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) @@ -3890,11 +3940,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3894 "util/configparser.c" /* yacc.c:1646 */ +#line 3944 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1320 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1356 "./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) @@ -3903,11 +3953,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3907 "util/configparser.c" /* yacc.c:1646 */ +#line 3957 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1330 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1366 "./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) @@ -3916,41 +3966,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3920 "util/configparser.c" /* yacc.c:1646 */ +#line 3970 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1340 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1376 "./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 3930 "util/configparser.c" /* yacc.c:1646 */ +#line 3980 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1347 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1383 "./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 3940 "util/configparser.c" /* yacc.c:1646 */ +#line 3990 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1354 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1390 "./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 3950 "util/configparser.c" /* yacc.c:1646 */ +#line 4000 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1361 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1397 "./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) @@ -3958,11 +4008,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3962 "util/configparser.c" /* yacc.c:1646 */ +#line 4012 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1370 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1406 "./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) @@ -3970,11 +4020,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3974 "util/configparser.c" /* yacc.c:1646 */ +#line 4024 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1379 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1415 "./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) @@ -3982,11 +4032,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3986 "util/configparser.c" /* yacc.c:1646 */ +#line 4036 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1388 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1424 "./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) @@ -3994,21 +4044,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3998 "util/configparser.c" /* yacc.c:1646 */ +#line 4048 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1397 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1433 "./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 4008 "util/configparser.c" /* yacc.c:1646 */ +#line 4058 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1404 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1440 "./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) @@ -4017,11 +4067,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4021 "util/configparser.c" /* yacc.c:1646 */ +#line 4071 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1414 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1450 "./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 && @@ -4038,21 +4088,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4042 "util/configparser.c" /* yacc.c:1646 */ +#line 4092 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1432 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1468 "./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 4052 "util/configparser.c" /* yacc.c:1646 */ +#line 4102 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1439 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1475 "./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) { @@ -4069,11 +4119,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4073 "util/configparser.c" /* yacc.c:1646 */ +#line 4123 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1457 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1493 "./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) { @@ -4085,11 +4135,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4089 "util/configparser.c" /* yacc.c:1646 */ +#line 4139 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1470 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1506 "./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) { @@ -4101,11 +4151,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4105 "util/configparser.c" /* yacc.c:1646 */ +#line 4155 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1483 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1519 "./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) @@ -4113,11 +4163,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4117 "util/configparser.c" /* yacc.c:1646 */ +#line 4167 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1492 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1528 "./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) @@ -4125,11 +4175,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4129 "util/configparser.c" /* yacc.c:1646 */ +#line 4179 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1501 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1537 "./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) @@ -4137,11 +4187,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4141 "util/configparser.c" /* yacc.c:1646 */ +#line 4191 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1510 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1546 "./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) @@ -4149,11 +4199,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4153 "util/configparser.c" /* yacc.c:1646 */ +#line 4203 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1519 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1555 "./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) @@ -4162,11 +4212,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4166 "util/configparser.c" /* yacc.c:1646 */ +#line 4216 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1529 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1565 "./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) @@ -4175,11 +4225,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4179 "util/configparser.c" /* yacc.c:1646 */ +#line 4229 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1539 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1575 "./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) @@ -4189,11 +4239,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4193 "util/configparser.c" /* yacc.c:1646 */ +#line 4243 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1550 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1586 "./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) @@ -4201,11 +4251,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4205 "util/configparser.c" /* yacc.c:1646 */ +#line 4255 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1559 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1595 "./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) @@ -4213,11 +4263,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4217 "util/configparser.c" /* yacc.c:1646 */ +#line 4267 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1568 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1604 "./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) @@ -4225,11 +4275,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4229 "util/configparser.c" /* yacc.c:1646 */ +#line 4279 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1577 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1613 "./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) @@ -4237,11 +4287,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4241 "util/configparser.c" /* yacc.c:1646 */ +#line 4291 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1586 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1622 "./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) @@ -4253,11 +4303,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4257 "util/configparser.c" /* yacc.c:1646 */ +#line 4307 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1599 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1635 "./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) @@ -4269,11 +4319,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4273 "util/configparser.c" /* yacc.c:1646 */ +#line 4323 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1612 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1648 "./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) @@ -4281,21 +4331,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4285 "util/configparser.c" /* yacc.c:1646 */ +#line 4335 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1621 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 1657 "./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 4295 "util/configparser.c" /* yacc.c:1646 */ +#line 4345 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1628 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 1664 "./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) @@ -4303,11 +4353,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4307 "util/configparser.c" /* yacc.c:1646 */ +#line 4357 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1637 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 1673 "./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) @@ -4315,11 +4365,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4319 "util/configparser.c" /* yacc.c:1646 */ +#line 4369 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1646 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 1682 "./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) @@ -4327,11 +4377,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4331 "util/configparser.c" /* yacc.c:1646 */ +#line 4381 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 1655 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 1691 "./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) @@ -4340,22 +4390,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4344 "util/configparser.c" /* yacc.c:1646 */ +#line 4394 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 1664 "./util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 1700 "./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 4355 "util/configparser.c" /* yacc.c:1646 */ +#line 4405 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 1672 "./util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 1708 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4367,22 +4417,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4371 "util/configparser.c" /* yacc.c:1646 */ +#line 4421 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 1685 "./util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 1721 "./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 4382 "util/configparser.c" /* yacc.c:1646 */ +#line 4432 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 1693 "./util/configparser.y" /* yacc.c:1646 */ + case 380: +#line 1729 "./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 && @@ -4410,21 +4460,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4414 "util/configparser.c" /* yacc.c:1646 */ +#line 4464 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 1722 "./util/configparser.y" /* yacc.c:1646 */ + case 381: +#line 1758 "./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 4424 "util/configparser.c" /* yacc.c:1646 */ +#line 4474 "util/configparser.c" /* yacc.c:1646 */ break; - case 378: -#line 1729 "./util/configparser.y" /* yacc.c:1646 */ + case 382: +#line 1765 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4438,11 +4488,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4442 "util/configparser.c" /* yacc.c:1646 */ +#line 4492 "util/configparser.c" /* yacc.c:1646 */ break; - case 379: -#line 1744 "./util/configparser.y" /* yacc.c:1646 */ + case 383: +#line 1780 "./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) @@ -4451,11 +4501,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4455 "util/configparser.c" /* yacc.c:1646 */ +#line 4505 "util/configparser.c" /* yacc.c:1646 */ break; - case 380: -#line 1754 "./util/configparser.y" /* yacc.c:1646 */ + case 384: +#line 1790 "./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) @@ -4464,31 +4514,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4468 "util/configparser.c" /* yacc.c:1646 */ +#line 4518 "util/configparser.c" /* yacc.c:1646 */ break; - case 381: -#line 1764 "./util/configparser.y" /* yacc.c:1646 */ + case 385: +#line 1800 "./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 4478 "util/configparser.c" /* yacc.c:1646 */ +#line 4528 "util/configparser.c" /* yacc.c:1646 */ break; - case 382: -#line 1771 "./util/configparser.y" /* yacc.c:1646 */ + case 386: +#line 1807 "./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 4488 "util/configparser.c" /* yacc.c:1646 */ +#line 4538 "util/configparser.c" /* yacc.c:1646 */ break; - case 383: -#line 1778 "./util/configparser.y" /* yacc.c:1646 */ + case 387: +#line 1814 "./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) @@ -4496,22 +4546,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4500 "util/configparser.c" /* yacc.c:1646 */ +#line 4550 "util/configparser.c" /* yacc.c:1646 */ break; - case 384: -#line 1787 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 1823 "./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 4511 "util/configparser.c" /* yacc.c:1646 */ +#line 4561 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 1795 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 1831 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4524,11 +4574,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4528 "util/configparser.c" /* yacc.c:1646 */ +#line 4578 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 1809 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 1845 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4546,11 +4596,11 @@ yyreduce: } } } -#line 4550 "util/configparser.c" /* yacc.c:1646 */ +#line 4600 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 1828 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 1864 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4568,11 +4618,11 @@ yyreduce: } } } -#line 4572 "util/configparser.c" /* yacc.c:1646 */ +#line 4622 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 1847 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 1883 "./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, @@ -4583,11 +4633,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4587 "util/configparser.c" /* yacc.c:1646 */ +#line 4637 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 1859 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 1895 "./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, @@ -4598,11 +4648,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4602 "util/configparser.c" /* yacc.c:1646 */ +#line 4652 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 1871 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 1907 "./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, @@ -4613,11 +4663,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4617 "util/configparser.c" /* yacc.c:1646 */ +#line 4667 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 1883 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 1919 "./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, @@ -4627,11 +4677,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4631 "util/configparser.c" /* yacc.c:1646 */ +#line 4681 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 1894 "./util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 1930 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4649,11 +4699,11 @@ yyreduce: } } } -#line 4653 "util/configparser.c" /* yacc.c:1646 */ +#line 4703 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 1913 "./util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 1949 "./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) @@ -4661,11 +4711,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4665 "util/configparser.c" /* yacc.c:1646 */ +#line 4715 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 1923 "./util/configparser.y" /* yacc.c:1646 */ + case 398: +#line 1959 "./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) @@ -4673,33 +4723,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4677 "util/configparser.c" /* yacc.c:1646 */ +#line 4727 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 1932 "./util/configparser.y" /* yacc.c:1646 */ + case 399: +#line 1968 "./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 4688 "util/configparser.c" /* yacc.c:1646 */ +#line 4738 "util/configparser.c" /* yacc.c:1646 */ break; - case 396: -#line 1940 "./util/configparser.y" /* yacc.c:1646 */ + case 400: +#line 1976 "./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 4699 "util/configparser.c" /* yacc.c:1646 */ +#line 4749 "util/configparser.c" /* yacc.c:1646 */ break; - case 397: -#line 1948 "./util/configparser.y" /* yacc.c:1646 */ + case 401: +#line 1984 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4711,11 +4761,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4715 "util/configparser.c" /* yacc.c:1646 */ +#line 4765 "util/configparser.c" /* yacc.c:1646 */ break; - case 398: -#line 1961 "./util/configparser.y" /* yacc.c:1646 */ + case 402: +#line 1997 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4727,11 +4777,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4731 "util/configparser.c" /* yacc.c:1646 */ +#line 4781 "util/configparser.c" /* yacc.c:1646 */ break; - case 399: -#line 1974 "./util/configparser.y" /* yacc.c:1646 */ + case 403: +#line 2010 "./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) { @@ -4743,11 +4793,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4747 "util/configparser.c" /* yacc.c:1646 */ +#line 4797 "util/configparser.c" /* yacc.c:1646 */ break; - case 400: -#line 1987 "./util/configparser.y" /* yacc.c:1646 */ + case 404: +#line 2023 "./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) { @@ -4759,11 +4809,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4763 "util/configparser.c" /* yacc.c:1646 */ +#line 4813 "util/configparser.c" /* yacc.c:1646 */ break; - case 401: -#line 2000 "./util/configparser.y" /* yacc.c:1646 */ + case 405: +#line 2036 "./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) @@ -4771,11 +4821,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4775 "util/configparser.c" /* yacc.c:1646 */ +#line 4825 "util/configparser.c" /* yacc.c:1646 */ break; - case 402: -#line 2009 "./util/configparser.y" /* yacc.c:1646 */ + case 406: +#line 2045 "./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) @@ -4783,20 +4833,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4787 "util/configparser.c" /* yacc.c:1646 */ +#line 4837 "util/configparser.c" /* yacc.c:1646 */ break; - case 403: -#line 2018 "./util/configparser.y" /* yacc.c:1646 */ + case 407: +#line 2054 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 4796 "util/configparser.c" /* yacc.c:1646 */ +#line 4846 "util/configparser.c" /* yacc.c:1646 */ break; - case 404: -#line 2024 "./util/configparser.y" /* yacc.c:1646 */ + case 408: +#line 2060 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -4804,11 +4854,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4808 "util/configparser.c" /* yacc.c:1646 */ +#line 4858 "util/configparser.c" /* yacc.c:1646 */ break; - case 405: -#line 2033 "./util/configparser.y" /* yacc.c:1646 */ + case 409: +#line 2069 "./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) @@ -4816,11 +4866,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4820 "util/configparser.c" /* yacc.c:1646 */ +#line 4870 "util/configparser.c" /* yacc.c:1646 */ break; - case 406: -#line 2042 "./util/configparser.y" /* yacc.c:1646 */ + case 410: +#line 2078 "./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) @@ -4829,11 +4879,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4833 "util/configparser.c" /* yacc.c:1646 */ +#line 4883 "util/configparser.c" /* yacc.c:1646 */ break; - case 407: -#line 2052 "./util/configparser.y" /* yacc.c:1646 */ + case 411: +#line 2088 "./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) @@ -4842,11 +4892,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4846 "util/configparser.c" /* yacc.c:1646 */ +#line 4896 "util/configparser.c" /* yacc.c:1646 */ break; - case 408: -#line 2062 "./util/configparser.y" /* yacc.c:1646 */ + case 412: +#line 2098 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4858,11 +4908,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4862 "util/configparser.c" /* yacc.c:1646 */ +#line 4912 "util/configparser.c" /* yacc.c:1646 */ break; - case 409: -#line 2075 "./util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2111 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4874,11 +4924,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4878 "util/configparser.c" /* yacc.c:1646 */ +#line 4928 "util/configparser.c" /* yacc.c:1646 */ break; - case 410: -#line 2088 "./util/configparser.y" /* yacc.c:1646 */ + case 414: +#line 2124 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4888,11 +4938,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4892 "util/configparser.c" /* yacc.c:1646 */ +#line 4942 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2099 "./util/configparser.y" /* yacc.c:1646 */ + case 415: +#line 2135 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4904,11 +4954,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4908 "util/configparser.c" /* yacc.c:1646 */ +#line 4958 "util/configparser.c" /* yacc.c:1646 */ break; - case 412: -#line 2112 "./util/configparser.y" /* yacc.c:1646 */ + case 416: +#line 2148 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4918,11 +4968,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4922 "util/configparser.c" /* yacc.c:1646 */ +#line 4972 "util/configparser.c" /* yacc.c:1646 */ break; - case 413: -#line 2123 "./util/configparser.y" /* yacc.c:1646 */ + case 417: +#line 2159 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4934,11 +4984,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4938 "util/configparser.c" /* yacc.c:1646 */ +#line 4988 "util/configparser.c" /* yacc.c:1646 */ break; - case 414: -#line 2136 "./util/configparser.y" /* yacc.c:1646 */ + case 418: +#line 2172 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4947,31 +4997,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4951 "util/configparser.c" /* yacc.c:1646 */ +#line 5001 "util/configparser.c" /* yacc.c:1646 */ break; - case 415: -#line 2146 "./util/configparser.y" /* yacc.c:1646 */ + case 419: +#line 2182 "./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 4961 "util/configparser.c" /* yacc.c:1646 */ +#line 5011 "util/configparser.c" /* yacc.c:1646 */ break; - case 416: -#line 2153 "./util/configparser.y" /* yacc.c:1646 */ + case 420: +#line 2189 "./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 4971 "util/configparser.c" /* yacc.c:1646 */ +#line 5021 "util/configparser.c" /* yacc.c:1646 */ break; - case 417: -#line 2160 "./util/configparser.y" /* yacc.c:1646 */ + case 421: +#line 2196 "./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) @@ -4979,11 +5029,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4983 "util/configparser.c" /* yacc.c:1646 */ +#line 5033 "util/configparser.c" /* yacc.c:1646 */ break; - case 418: -#line 2169 "./util/configparser.y" /* yacc.c:1646 */ + case 422: +#line 2205 "./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) @@ -4991,11 +5041,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4995 "util/configparser.c" /* yacc.c:1646 */ +#line 5045 "util/configparser.c" /* yacc.c:1646 */ break; - case 419: -#line 2178 "./util/configparser.y" /* yacc.c:1646 */ + case 423: +#line 2214 "./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) @@ -5004,11 +5054,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5008 "util/configparser.c" /* yacc.c:1646 */ +#line 5058 "util/configparser.c" /* yacc.c:1646 */ break; - case 420: -#line 2188 "./util/configparser.y" /* yacc.c:1646 */ + case 424: +#line 2224 "./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) @@ -5017,11 +5067,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5021 "util/configparser.c" /* yacc.c:1646 */ +#line 5071 "util/configparser.c" /* yacc.c:1646 */ break; - case 421: -#line 2198 "./util/configparser.y" /* yacc.c:1646 */ + case 425: +#line 2234 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5030,31 +5080,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5034 "util/configparser.c" /* yacc.c:1646 */ +#line 5084 "util/configparser.c" /* yacc.c:1646 */ break; - case 422: -#line 2208 "./util/configparser.y" /* yacc.c:1646 */ + case 426: +#line 2244 "./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 5044 "util/configparser.c" /* yacc.c:1646 */ +#line 5094 "util/configparser.c" /* yacc.c:1646 */ break; - case 423: -#line 2215 "./util/configparser.y" /* yacc.c:1646 */ + case 427: +#line 2251 "./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 5054 "util/configparser.c" /* yacc.c:1646 */ +#line 5104 "util/configparser.c" /* yacc.c:1646 */ break; - case 424: -#line 2222 "./util/configparser.y" /* yacc.c:1646 */ + case 428: +#line 2258 "./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) @@ -5062,11 +5112,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5066 "util/configparser.c" /* yacc.c:1646 */ +#line 5116 "util/configparser.c" /* yacc.c:1646 */ break; - case 425: -#line 2231 "./util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2267 "./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) @@ -5074,11 +5124,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5078 "util/configparser.c" /* yacc.c:1646 */ +#line 5128 "util/configparser.c" /* yacc.c:1646 */ break; - case 426: -#line 2240 "./util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2276 "./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) @@ -5087,11 +5137,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5091 "util/configparser.c" /* yacc.c:1646 */ +#line 5141 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2250 "./util/configparser.y" /* yacc.c:1646 */ + case 431: +#line 2286 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5100,52 +5150,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5104 "util/configparser.c" /* yacc.c:1646 */ +#line 5154 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2260 "./util/configparser.y" /* yacc.c:1646 */ + case 432: +#line 2296 "./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 5114 "util/configparser.c" /* yacc.c:1646 */ +#line 5164 "util/configparser.c" /* yacc.c:1646 */ break; - case 429: -#line 2267 "./util/configparser.y" /* yacc.c:1646 */ + case 433: +#line 2303 "./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 5124 "util/configparser.c" /* yacc.c:1646 */ +#line 5174 "util/configparser.c" /* yacc.c:1646 */ break; - case 430: -#line 2274 "./util/configparser.y" /* yacc.c:1646 */ + case 434: +#line 2310 "./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 5134 "util/configparser.c" /* yacc.c:1646 */ +#line 5184 "util/configparser.c" /* yacc.c:1646 */ break; - case 431: -#line 2281 "./util/configparser.y" /* yacc.c:1646 */ + case 435: +#line 2317 "./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 5145 "util/configparser.c" /* yacc.c:1646 */ +#line 5195 "util/configparser.c" /* yacc.c:1646 */ break; - case 432: -#line 2289 "./util/configparser.y" /* yacc.c:1646 */ + case 436: +#line 2325 "./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) @@ -5154,11 +5204,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5158 "util/configparser.c" /* yacc.c:1646 */ +#line 5208 "util/configparser.c" /* yacc.c:1646 */ break; - case 433: -#line 2299 "./util/configparser.y" /* yacc.c:1646 */ + case 437: +#line 2335 "./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) @@ -5167,11 +5217,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5171 "util/configparser.c" /* yacc.c:1646 */ +#line 5221 "util/configparser.c" /* yacc.c:1646 */ break; - case 434: -#line 2309 "./util/configparser.y" /* yacc.c:1646 */ + case 438: +#line 2345 "./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) @@ -5180,11 +5230,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5184 "util/configparser.c" /* yacc.c:1646 */ +#line 5234 "util/configparser.c" /* yacc.c:1646 */ break; - case 435: -#line 2319 "./util/configparser.y" /* yacc.c:1646 */ + case 439: +#line 2355 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5193,11 +5243,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5197 "util/configparser.c" /* yacc.c:1646 */ +#line 5247 "util/configparser.c" /* yacc.c:1646 */ break; - case 436: -#line 2329 "./util/configparser.y" /* yacc.c:1646 */ + case 440: +#line 2365 "./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 && @@ -5226,11 +5276,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5230 "util/configparser.c" /* yacc.c:1646 */ +#line 5280 "util/configparser.c" /* yacc.c:1646 */ break; - case 437: -#line 2359 "./util/configparser.y" /* yacc.c:1646 */ + case 441: +#line 2395 "./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)); @@ -5239,22 +5289,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5243 "util/configparser.c" /* yacc.c:1646 */ +#line 5293 "util/configparser.c" /* yacc.c:1646 */ break; - case 438: -#line 2369 "./util/configparser.y" /* yacc.c:1646 */ + case 442: +#line 2405 "./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 5254 "util/configparser.c" /* yacc.c:1646 */ +#line 5304 "util/configparser.c" /* yacc.c:1646 */ break; - case 439: -#line 2377 "./util/configparser.y" /* yacc.c:1646 */ + case 443: +#line 2413 "./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))) { @@ -5262,11 +5312,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5266 "util/configparser.c" /* yacc.c:1646 */ +#line 5316 "util/configparser.c" /* yacc.c:1646 */ break; - case 440: -#line 2386 "./util/configparser.y" /* yacc.c:1646 */ + case 444: +#line 2422 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5280,11 +5330,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5284 "util/configparser.c" /* yacc.c:1646 */ +#line 5334 "util/configparser.c" /* yacc.c:1646 */ break; - case 441: -#line 2401 "./util/configparser.y" /* yacc.c:1646 */ + case 445: +#line 2437 "./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) @@ -5292,19 +5342,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5296 "util/configparser.c" /* yacc.c:1646 */ +#line 5346 "util/configparser.c" /* yacc.c:1646 */ break; - case 442: -#line 2410 "./util/configparser.y" /* yacc.c:1646 */ + case 446: +#line 2446 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 5304 "util/configparser.c" /* yacc.c:1646 */ +#line 5354 "util/configparser.c" /* yacc.c:1646 */ break; - case 453: -#line 2421 "./util/configparser.y" /* yacc.c:1646 */ + case 457: +#line 2457 "./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) @@ -5313,11 +5363,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5317 "util/configparser.c" /* yacc.c:1646 */ +#line 5367 "util/configparser.c" /* yacc.c:1646 */ break; - case 454: -#line 2431 "./util/configparser.y" /* yacc.c:1646 */ + case 458: +#line 2467 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5325,142 +5375,142 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5329 "util/configparser.c" /* yacc.c:1646 */ +#line 5379 "util/configparser.c" /* yacc.c:1646 */ break; - case 455: -#line 2440 "./util/configparser.y" /* yacc.c:1646 */ + case 459: +#line 2476 "./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 5339 "util/configparser.c" /* yacc.c:1646 */ +#line 5389 "util/configparser.c" /* yacc.c:1646 */ break; - case 456: -#line 2447 "./util/configparser.y" /* yacc.c:1646 */ + case 460: +#line 2483 "./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 5349 "util/configparser.c" /* yacc.c:1646 */ +#line 5399 "util/configparser.c" /* yacc.c:1646 */ break; - case 457: -#line 2454 "./util/configparser.y" /* yacc.c:1646 */ + case 461: +#line 2490 "./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 5359 "util/configparser.c" /* yacc.c:1646 */ +#line 5409 "util/configparser.c" /* yacc.c:1646 */ break; - case 458: -#line 2461 "./util/configparser.y" /* yacc.c:1646 */ + case 462: +#line 2497 "./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 5369 "util/configparser.c" /* yacc.c:1646 */ +#line 5419 "util/configparser.c" /* yacc.c:1646 */ break; - case 459: -#line 2468 "./util/configparser.y" /* yacc.c:1646 */ + case 463: +#line 2504 "./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 5379 "util/configparser.c" /* yacc.c:1646 */ +#line 5429 "util/configparser.c" /* yacc.c:1646 */ break; - case 460: -#line 2475 "./util/configparser.y" /* yacc.c:1646 */ + case 464: +#line 2511 "./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 5389 "util/configparser.c" /* yacc.c:1646 */ +#line 5439 "util/configparser.c" /* yacc.c:1646 */ break; - case 461: -#line 2482 "./util/configparser.y" /* yacc.c:1646 */ + case 465: +#line 2518 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 5397 "util/configparser.c" /* yacc.c:1646 */ +#line 5447 "util/configparser.c" /* yacc.c:1646 */ break; - case 476: -#line 2499 "./util/configparser.y" /* yacc.c:1646 */ + case 480: +#line 2535 "./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 5408 "util/configparser.c" /* yacc.c:1646 */ +#line 5458 "util/configparser.c" /* yacc.c:1646 */ break; - case 477: -#line 2507 "./util/configparser.y" /* yacc.c:1646 */ + case 481: +#line 2543 "./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 5418 "util/configparser.c" /* yacc.c:1646 */ +#line 5468 "util/configparser.c" /* yacc.c:1646 */ break; - case 478: -#line 2514 "./util/configparser.y" /* yacc.c:1646 */ + case 482: +#line 2550 "./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 5429 "util/configparser.c" /* yacc.c:1646 */ +#line 5479 "util/configparser.c" /* yacc.c:1646 */ break; - case 479: -#line 2522 "./util/configparser.y" /* yacc.c:1646 */ + case 483: +#line 2558 "./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 5440 "util/configparser.c" /* yacc.c:1646 */ +#line 5490 "util/configparser.c" /* yacc.c:1646 */ break; - case 480: -#line 2530 "./util/configparser.y" /* yacc.c:1646 */ + case 484: +#line 2566 "./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 5450 "util/configparser.c" /* yacc.c:1646 */ +#line 5500 "util/configparser.c" /* yacc.c:1646 */ break; - case 481: -#line 2537 "./util/configparser.y" /* yacc.c:1646 */ + case 485: +#line 2573 "./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 5460 "util/configparser.c" /* yacc.c:1646 */ +#line 5510 "util/configparser.c" /* yacc.c:1646 */ break; - case 482: -#line 2544 "./util/configparser.y" /* yacc.c:1646 */ + case 486: +#line 2580 "./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) @@ -5468,11 +5518,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5472 "util/configparser.c" /* yacc.c:1646 */ +#line 5522 "util/configparser.c" /* yacc.c:1646 */ break; - case 483: -#line 2553 "./util/configparser.y" /* yacc.c:1646 */ + case 487: +#line 2589 "./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) @@ -5480,11 +5530,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5484 "util/configparser.c" /* yacc.c:1646 */ +#line 5534 "util/configparser.c" /* yacc.c:1646 */ break; - case 484: -#line 2562 "./util/configparser.y" /* yacc.c:1646 */ + case 488: +#line 2598 "./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) @@ -5492,11 +5542,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5496 "util/configparser.c" /* yacc.c:1646 */ +#line 5546 "util/configparser.c" /* yacc.c:1646 */ break; - case 485: -#line 2571 "./util/configparser.y" /* yacc.c:1646 */ + case 489: +#line 2607 "./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) @@ -5504,11 +5554,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5508 "util/configparser.c" /* yacc.c:1646 */ +#line 5558 "util/configparser.c" /* yacc.c:1646 */ break; - case 486: -#line 2580 "./util/configparser.y" /* yacc.c:1646 */ + case 490: +#line 2616 "./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) @@ -5516,11 +5566,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5520 "util/configparser.c" /* yacc.c:1646 */ +#line 5570 "util/configparser.c" /* yacc.c:1646 */ break; - case 487: -#line 2589 "./util/configparser.y" /* yacc.c:1646 */ + case 491: +#line 2625 "./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) @@ -5528,29 +5578,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5532 "util/configparser.c" /* yacc.c:1646 */ +#line 5582 "util/configparser.c" /* yacc.c:1646 */ break; - case 488: -#line 2598 "./util/configparser.y" /* yacc.c:1646 */ + case 492: +#line 2634 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 5540 "util/configparser.c" /* yacc.c:1646 */ +#line 5590 "util/configparser.c" /* yacc.c:1646 */ break; - case 492: -#line 2607 "./util/configparser.y" /* yacc.c:1646 */ + case 496: +#line 2643 "./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 5550 "util/configparser.c" /* yacc.c:1646 */ +#line 5600 "util/configparser.c" /* yacc.c:1646 */ break; - case 493: -#line 2613 "./util/configparser.y" /* yacc.c:1646 */ + case 497: +#line 2649 "./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) @@ -5559,21 +5609,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5563 "util/configparser.c" /* yacc.c:1646 */ +#line 5613 "util/configparser.c" /* yacc.c:1646 */ break; - case 494: -#line 2623 "./util/configparser.y" /* yacc.c:1646 */ + case 498: +#line 2659 "./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 5573 "util/configparser.c" /* yacc.c:1646 */ +#line 5623 "util/configparser.c" /* yacc.c:1646 */ break; - case 495: -#line 2630 "./util/configparser.y" /* yacc.c:1646 */ + case 499: +#line 2666 "./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)); @@ -5581,31 +5631,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5585 "util/configparser.c" /* yacc.c:1646 */ +#line 5635 "util/configparser.c" /* yacc.c:1646 */ break; - case 496: -#line 2639 "./util/configparser.y" /* yacc.c:1646 */ + case 500: +#line 2675 "./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 5596 "util/configparser.c" /* yacc.c:1646 */ +#line 5646 "util/configparser.c" /* yacc.c:1646 */ break; - case 497: -#line 2647 "./util/configparser.y" /* yacc.c:1646 */ + case 501: +#line 2683 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5605 "util/configparser.c" /* yacc.c:1646 */ +#line 5655 "util/configparser.c" /* yacc.c:1646 */ break; - case 510: -#line 2664 "./util/configparser.y" /* yacc.c:1646 */ + case 514: +#line 2700 "./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) @@ -5613,11 +5663,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5617 "util/configparser.c" /* yacc.c:1646 */ +#line 5667 "util/configparser.c" /* yacc.c:1646 */ break; - case 511: -#line 2674 "./util/configparser.y" /* yacc.c:1646 */ + case 515: +#line 2710 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5626,21 +5676,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5630 "util/configparser.c" /* yacc.c:1646 */ +#line 5680 "util/configparser.c" /* yacc.c:1646 */ break; - case 512: -#line 2684 "./util/configparser.y" /* yacc.c:1646 */ + case 516: +#line 2720 "./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 5640 "util/configparser.c" /* yacc.c:1646 */ +#line 5690 "util/configparser.c" /* yacc.c:1646 */ break; - case 513: -#line 2691 "./util/configparser.y" /* yacc.c:1646 */ + case 517: +#line 2727 "./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))) @@ -5648,21 +5698,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 5652 "util/configparser.c" /* yacc.c:1646 */ +#line 5702 "util/configparser.c" /* yacc.c:1646 */ break; - case 514: -#line 2700 "./util/configparser.y" /* yacc.c:1646 */ + case 518: +#line 2736 "./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 5662 "util/configparser.c" /* yacc.c:1646 */ +#line 5712 "util/configparser.c" /* yacc.c:1646 */ break; - case 515: -#line 2707 "./util/configparser.y" /* yacc.c:1646 */ + case 519: +#line 2743 "./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))) @@ -5670,22 +5720,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 5674 "util/configparser.c" /* yacc.c:1646 */ +#line 5724 "util/configparser.c" /* yacc.c:1646 */ break; - case 516: -#line 2716 "./util/configparser.y" /* yacc.c:1646 */ + case 520: +#line 2752 "./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 5685 "util/configparser.c" /* yacc.c:1646 */ +#line 5735 "util/configparser.c" /* yacc.c:1646 */ break; - case 517: -#line 2724 "./util/configparser.y" /* yacc.c:1646 */ + case 521: +#line 2760 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5697,22 +5747,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5701 "util/configparser.c" /* yacc.c:1646 */ +#line 5751 "util/configparser.c" /* yacc.c:1646 */ break; - case 518: -#line 2737 "./util/configparser.y" /* yacc.c:1646 */ + case 522: +#line 2773 "./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 5712 "util/configparser.c" /* yacc.c:1646 */ +#line 5762 "util/configparser.c" /* yacc.c:1646 */ break; - case 519: -#line 2745 "./util/configparser.y" /* yacc.c:1646 */ + case 523: +#line 2781 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5724,19 +5774,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5728 "util/configparser.c" /* yacc.c:1646 */ +#line 5778 "util/configparser.c" /* yacc.c:1646 */ break; - case 520: -#line 2758 "./util/configparser.y" /* yacc.c:1646 */ + case 524: +#line 2794 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5736 "util/configparser.c" /* yacc.c:1646 */ +#line 5786 "util/configparser.c" /* yacc.c:1646 */ break; - case 528: -#line 2768 "./util/configparser.y" /* yacc.c:1646 */ + case 532: +#line 2804 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5749,11 +5799,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5753 "util/configparser.c" /* yacc.c:1646 */ +#line 5803 "util/configparser.c" /* yacc.c:1646 */ break; - case 529: -#line 2782 "./util/configparser.y" /* yacc.c:1646 */ + case 533: +#line 2818 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5767,11 +5817,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5771 "util/configparser.c" /* yacc.c:1646 */ +#line 5821 "util/configparser.c" /* yacc.c:1646 */ break; - case 530: -#line 2797 "./util/configparser.y" /* yacc.c:1646 */ + case 534: +#line 2833 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -5782,11 +5832,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5786 "util/configparser.c" /* yacc.c:1646 */ +#line 5836 "util/configparser.c" /* yacc.c:1646 */ break; - case 531: -#line 2809 "./util/configparser.y" /* yacc.c:1646 */ + case 535: +#line 2845 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -5800,11 +5850,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5804 "util/configparser.c" /* yacc.c:1646 */ +#line 5854 "util/configparser.c" /* yacc.c:1646 */ break; - case 532: -#line 2824 "./util/configparser.y" /* yacc.c:1646 */ + case 536: +#line 2860 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -5816,11 +5866,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5820 "util/configparser.c" /* yacc.c:1646 */ +#line 5870 "util/configparser.c" /* yacc.c:1646 */ break; - case 533: -#line 2837 "./util/configparser.y" /* yacc.c:1646 */ + case 537: +#line 2873 "./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) @@ -5830,11 +5880,11 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 5834 "util/configparser.c" /* yacc.c:1646 */ +#line 5884 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5838 "util/configparser.c" /* yacc.c:1646 */ +#line 5888 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -6062,7 +6112,7 @@ yyreturn: #endif return yyresult; } -#line 2847 "./util/configparser.y" /* yacc.c:1906 */ +#line 2883 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index e7993cdd9..268791fdd 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -228,79 +228,81 @@ extern int yydebug; VAR_CLIENT_SUBNET_OPCODE = 438, VAR_MAX_CLIENT_SUBNET_IPV4 = 439, VAR_MAX_CLIENT_SUBNET_IPV6 = 440, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 441, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 442, - VAR_CAPS_WHITELIST = 443, - VAR_CACHE_MAX_NEGATIVE_TTL = 444, - VAR_PERMIT_SMALL_HOLDDOWN = 445, - VAR_QNAME_MINIMISATION = 446, - VAR_QNAME_MINIMISATION_STRICT = 447, - VAR_IP_FREEBIND = 448, - VAR_DEFINE_TAG = 449, - VAR_LOCAL_ZONE_TAG = 450, - VAR_ACCESS_CONTROL_TAG = 451, - VAR_LOCAL_ZONE_OVERRIDE = 452, - VAR_ACCESS_CONTROL_TAG_ACTION = 453, - VAR_ACCESS_CONTROL_TAG_DATA = 454, - VAR_VIEW = 455, - VAR_ACCESS_CONTROL_VIEW = 456, - VAR_VIEW_FIRST = 457, - VAR_SERVE_EXPIRED = 458, - VAR_SERVE_EXPIRED_TTL = 459, - VAR_SERVE_EXPIRED_TTL_RESET = 460, - VAR_FAKE_DSA = 461, - VAR_FAKE_SHA1 = 462, - VAR_LOG_IDENTITY = 463, - VAR_HIDE_TRUSTANCHOR = 464, - VAR_TRUST_ANCHOR_SIGNALING = 465, - VAR_AGGRESSIVE_NSEC = 466, - VAR_USE_SYSTEMD = 467, - VAR_SHM_ENABLE = 468, - VAR_SHM_KEY = 469, - VAR_ROOT_KEY_SENTINEL = 470, - VAR_DNSCRYPT = 471, - VAR_DNSCRYPT_ENABLE = 472, - VAR_DNSCRYPT_PORT = 473, - VAR_DNSCRYPT_PROVIDER = 474, - VAR_DNSCRYPT_SECRET_KEY = 475, - VAR_DNSCRYPT_PROVIDER_CERT = 476, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 477, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 478, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 479, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 480, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 481, - VAR_IPSECMOD_ENABLED = 482, - VAR_IPSECMOD_HOOK = 483, - VAR_IPSECMOD_IGNORE_BOGUS = 484, - VAR_IPSECMOD_MAX_TTL = 485, - VAR_IPSECMOD_WHITELIST = 486, - VAR_IPSECMOD_STRICT = 487, - VAR_CACHEDB = 488, - VAR_CACHEDB_BACKEND = 489, - VAR_CACHEDB_SECRETSEED = 490, - VAR_CACHEDB_REDISHOST = 491, - VAR_CACHEDB_REDISPORT = 492, - VAR_CACHEDB_REDISTIMEOUT = 493, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 494, - VAR_FOR_UPSTREAM = 495, - VAR_AUTH_ZONE = 496, - VAR_ZONEFILE = 497, - VAR_MASTER = 498, - VAR_URL = 499, - VAR_FOR_DOWNSTREAM = 500, - VAR_FALLBACK_ENABLED = 501, - VAR_TLS_ADDITIONAL_PORT = 502, - VAR_LOW_RTT = 503, - VAR_LOW_RTT_PERMIL = 504, - VAR_FAST_SERVER_PERMIL = 505, - VAR_FAST_SERVER_NUM = 506, - VAR_ALLOW_NOTIFY = 507, - VAR_TLS_WIN_CERT = 508, - VAR_TCP_CONNECTION_LIMIT = 509, - VAR_FORWARD_NO_CACHE = 510, - VAR_STUB_NO_CACHE = 511, - VAR_LOG_SERVFAIL = 512, - VAR_DENY_ANY = 513 + VAR_MIN_CLIENT_SUBNET_IPV4 = 441, + VAR_MIN_CLIENT_SUBNET_IPV6 = 442, + VAR_MAX_ECS_TREE_SIZE_IPV4 = 443, + VAR_MAX_ECS_TREE_SIZE_IPV6 = 444, + VAR_CAPS_WHITELIST = 445, + VAR_CACHE_MAX_NEGATIVE_TTL = 446, + VAR_PERMIT_SMALL_HOLDDOWN = 447, + VAR_QNAME_MINIMISATION = 448, + VAR_QNAME_MINIMISATION_STRICT = 449, + VAR_IP_FREEBIND = 450, + VAR_DEFINE_TAG = 451, + VAR_LOCAL_ZONE_TAG = 452, + VAR_ACCESS_CONTROL_TAG = 453, + VAR_LOCAL_ZONE_OVERRIDE = 454, + VAR_ACCESS_CONTROL_TAG_ACTION = 455, + VAR_ACCESS_CONTROL_TAG_DATA = 456, + VAR_VIEW = 457, + VAR_ACCESS_CONTROL_VIEW = 458, + VAR_VIEW_FIRST = 459, + VAR_SERVE_EXPIRED = 460, + VAR_SERVE_EXPIRED_TTL = 461, + VAR_SERVE_EXPIRED_TTL_RESET = 462, + VAR_FAKE_DSA = 463, + VAR_FAKE_SHA1 = 464, + VAR_LOG_IDENTITY = 465, + VAR_HIDE_TRUSTANCHOR = 466, + VAR_TRUST_ANCHOR_SIGNALING = 467, + VAR_AGGRESSIVE_NSEC = 468, + VAR_USE_SYSTEMD = 469, + VAR_SHM_ENABLE = 470, + VAR_SHM_KEY = 471, + VAR_ROOT_KEY_SENTINEL = 472, + VAR_DNSCRYPT = 473, + VAR_DNSCRYPT_ENABLE = 474, + VAR_DNSCRYPT_PORT = 475, + VAR_DNSCRYPT_PROVIDER = 476, + VAR_DNSCRYPT_SECRET_KEY = 477, + VAR_DNSCRYPT_PROVIDER_CERT = 478, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 479, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 480, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 481, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 482, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 483, + VAR_IPSECMOD_ENABLED = 484, + VAR_IPSECMOD_HOOK = 485, + VAR_IPSECMOD_IGNORE_BOGUS = 486, + VAR_IPSECMOD_MAX_TTL = 487, + VAR_IPSECMOD_WHITELIST = 488, + VAR_IPSECMOD_STRICT = 489, + VAR_CACHEDB = 490, + VAR_CACHEDB_BACKEND = 491, + VAR_CACHEDB_SECRETSEED = 492, + VAR_CACHEDB_REDISHOST = 493, + VAR_CACHEDB_REDISPORT = 494, + VAR_CACHEDB_REDISTIMEOUT = 495, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 496, + VAR_FOR_UPSTREAM = 497, + VAR_AUTH_ZONE = 498, + VAR_ZONEFILE = 499, + VAR_MASTER = 500, + VAR_URL = 501, + VAR_FOR_DOWNSTREAM = 502, + VAR_FALLBACK_ENABLED = 503, + VAR_TLS_ADDITIONAL_PORT = 504, + VAR_LOW_RTT = 505, + VAR_LOW_RTT_PERMIL = 506, + VAR_FAST_SERVER_PERMIL = 507, + VAR_FAST_SERVER_NUM = 508, + VAR_ALLOW_NOTIFY = 509, + VAR_TLS_WIN_CERT = 510, + VAR_TCP_CONNECTION_LIMIT = 511, + VAR_FORWARD_NO_CACHE = 512, + VAR_STUB_NO_CACHE = 513, + VAR_LOG_SERVFAIL = 514, + VAR_DENY_ANY = 515 }; #endif /* Tokens. */ @@ -487,79 +489,81 @@ extern int yydebug; #define VAR_CLIENT_SUBNET_OPCODE 438 #define VAR_MAX_CLIENT_SUBNET_IPV4 439 #define VAR_MAX_CLIENT_SUBNET_IPV6 440 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 441 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 442 -#define VAR_CAPS_WHITELIST 443 -#define VAR_CACHE_MAX_NEGATIVE_TTL 444 -#define VAR_PERMIT_SMALL_HOLDDOWN 445 -#define VAR_QNAME_MINIMISATION 446 -#define VAR_QNAME_MINIMISATION_STRICT 447 -#define VAR_IP_FREEBIND 448 -#define VAR_DEFINE_TAG 449 -#define VAR_LOCAL_ZONE_TAG 450 -#define VAR_ACCESS_CONTROL_TAG 451 -#define VAR_LOCAL_ZONE_OVERRIDE 452 -#define VAR_ACCESS_CONTROL_TAG_ACTION 453 -#define VAR_ACCESS_CONTROL_TAG_DATA 454 -#define VAR_VIEW 455 -#define VAR_ACCESS_CONTROL_VIEW 456 -#define VAR_VIEW_FIRST 457 -#define VAR_SERVE_EXPIRED 458 -#define VAR_SERVE_EXPIRED_TTL 459 -#define VAR_SERVE_EXPIRED_TTL_RESET 460 -#define VAR_FAKE_DSA 461 -#define VAR_FAKE_SHA1 462 -#define VAR_LOG_IDENTITY 463 -#define VAR_HIDE_TRUSTANCHOR 464 -#define VAR_TRUST_ANCHOR_SIGNALING 465 -#define VAR_AGGRESSIVE_NSEC 466 -#define VAR_USE_SYSTEMD 467 -#define VAR_SHM_ENABLE 468 -#define VAR_SHM_KEY 469 -#define VAR_ROOT_KEY_SENTINEL 470 -#define VAR_DNSCRYPT 471 -#define VAR_DNSCRYPT_ENABLE 472 -#define VAR_DNSCRYPT_PORT 473 -#define VAR_DNSCRYPT_PROVIDER 474 -#define VAR_DNSCRYPT_SECRET_KEY 475 -#define VAR_DNSCRYPT_PROVIDER_CERT 476 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 477 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 478 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 479 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 480 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 481 -#define VAR_IPSECMOD_ENABLED 482 -#define VAR_IPSECMOD_HOOK 483 -#define VAR_IPSECMOD_IGNORE_BOGUS 484 -#define VAR_IPSECMOD_MAX_TTL 485 -#define VAR_IPSECMOD_WHITELIST 486 -#define VAR_IPSECMOD_STRICT 487 -#define VAR_CACHEDB 488 -#define VAR_CACHEDB_BACKEND 489 -#define VAR_CACHEDB_SECRETSEED 490 -#define VAR_CACHEDB_REDISHOST 491 -#define VAR_CACHEDB_REDISPORT 492 -#define VAR_CACHEDB_REDISTIMEOUT 493 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 494 -#define VAR_FOR_UPSTREAM 495 -#define VAR_AUTH_ZONE 496 -#define VAR_ZONEFILE 497 -#define VAR_MASTER 498 -#define VAR_URL 499 -#define VAR_FOR_DOWNSTREAM 500 -#define VAR_FALLBACK_ENABLED 501 -#define VAR_TLS_ADDITIONAL_PORT 502 -#define VAR_LOW_RTT 503 -#define VAR_LOW_RTT_PERMIL 504 -#define VAR_FAST_SERVER_PERMIL 505 -#define VAR_FAST_SERVER_NUM 506 -#define VAR_ALLOW_NOTIFY 507 -#define VAR_TLS_WIN_CERT 508 -#define VAR_TCP_CONNECTION_LIMIT 509 -#define VAR_FORWARD_NO_CACHE 510 -#define VAR_STUB_NO_CACHE 511 -#define VAR_LOG_SERVFAIL 512 -#define VAR_DENY_ANY 513 +#define VAR_MIN_CLIENT_SUBNET_IPV4 441 +#define VAR_MIN_CLIENT_SUBNET_IPV6 442 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 443 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 444 +#define VAR_CAPS_WHITELIST 445 +#define VAR_CACHE_MAX_NEGATIVE_TTL 446 +#define VAR_PERMIT_SMALL_HOLDDOWN 447 +#define VAR_QNAME_MINIMISATION 448 +#define VAR_QNAME_MINIMISATION_STRICT 449 +#define VAR_IP_FREEBIND 450 +#define VAR_DEFINE_TAG 451 +#define VAR_LOCAL_ZONE_TAG 452 +#define VAR_ACCESS_CONTROL_TAG 453 +#define VAR_LOCAL_ZONE_OVERRIDE 454 +#define VAR_ACCESS_CONTROL_TAG_ACTION 455 +#define VAR_ACCESS_CONTROL_TAG_DATA 456 +#define VAR_VIEW 457 +#define VAR_ACCESS_CONTROL_VIEW 458 +#define VAR_VIEW_FIRST 459 +#define VAR_SERVE_EXPIRED 460 +#define VAR_SERVE_EXPIRED_TTL 461 +#define VAR_SERVE_EXPIRED_TTL_RESET 462 +#define VAR_FAKE_DSA 463 +#define VAR_FAKE_SHA1 464 +#define VAR_LOG_IDENTITY 465 +#define VAR_HIDE_TRUSTANCHOR 466 +#define VAR_TRUST_ANCHOR_SIGNALING 467 +#define VAR_AGGRESSIVE_NSEC 468 +#define VAR_USE_SYSTEMD 469 +#define VAR_SHM_ENABLE 470 +#define VAR_SHM_KEY 471 +#define VAR_ROOT_KEY_SENTINEL 472 +#define VAR_DNSCRYPT 473 +#define VAR_DNSCRYPT_ENABLE 474 +#define VAR_DNSCRYPT_PORT 475 +#define VAR_DNSCRYPT_PROVIDER 476 +#define VAR_DNSCRYPT_SECRET_KEY 477 +#define VAR_DNSCRYPT_PROVIDER_CERT 478 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 479 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 480 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 481 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 482 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 483 +#define VAR_IPSECMOD_ENABLED 484 +#define VAR_IPSECMOD_HOOK 485 +#define VAR_IPSECMOD_IGNORE_BOGUS 486 +#define VAR_IPSECMOD_MAX_TTL 487 +#define VAR_IPSECMOD_WHITELIST 488 +#define VAR_IPSECMOD_STRICT 489 +#define VAR_CACHEDB 490 +#define VAR_CACHEDB_BACKEND 491 +#define VAR_CACHEDB_SECRETSEED 492 +#define VAR_CACHEDB_REDISHOST 493 +#define VAR_CACHEDB_REDISPORT 494 +#define VAR_CACHEDB_REDISTIMEOUT 495 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 496 +#define VAR_FOR_UPSTREAM 497 +#define VAR_AUTH_ZONE 498 +#define VAR_ZONEFILE 499 +#define VAR_MASTER 500 +#define VAR_URL 501 +#define VAR_FOR_DOWNSTREAM 502 +#define VAR_FALLBACK_ENABLED 503 +#define VAR_TLS_ADDITIONAL_PORT 504 +#define VAR_LOW_RTT 505 +#define VAR_LOW_RTT_PERMIL 506 +#define VAR_FAST_SERVER_PERMIL 507 +#define VAR_FAST_SERVER_NUM 508 +#define VAR_ALLOW_NOTIFY 509 +#define VAR_TLS_WIN_CERT 510 +#define VAR_TCP_CONNECTION_LIMIT 511 +#define VAR_FORWARD_NO_CACHE 512 +#define VAR_STUB_NO_CACHE 513 +#define VAR_LOG_SERVFAIL 514 +#define VAR_DENY_ANY 515 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -570,7 +574,7 @@ union YYSTYPE char* str; -#line 574 "util/configparser.h" /* yacc.c:1909 */ +#line 578 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 85775b931..7f9825fda 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -135,6 +135,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_SEND_CLIENT_SUBNET VAR_CLIENT_SUBNET_ZONE %token VAR_CLIENT_SUBNET_ALWAYS_FORWARD VAR_CLIENT_SUBNET_OPCODE %token VAR_MAX_CLIENT_SUBNET_IPV4 VAR_MAX_CLIENT_SUBNET_IPV6 +%token VAR_MIN_CLIENT_SUBNET_IPV4 VAR_MIN_CLIENT_SUBNET_IPV6 %token VAR_MAX_ECS_TREE_SIZE_IPV4 VAR_MAX_ECS_TREE_SIZE_IPV6 %token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN %token VAR_QNAME_MINIMISATION VAR_QNAME_MINIMISATION_STRICT VAR_IP_FREEBIND @@ -239,6 +240,7 @@ content_server: server_num_threads | server_verbosity | server_port | 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 | server_max_ecs_tree_size_ipv4 | server_max_ecs_tree_size_ipv6 | server_caps_whitelist | server_cache_max_negative_ttl | server_permit_small_holddown | server_qname_minimisation | @@ -496,6 +498,40 @@ server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG free($2); } ; +server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG + { + #ifdef CLIENT_SUBNET + OUTYY(("P(min_client_subnet_ipv4:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("IPv4 subnet length expected"); + else if (atoi($2) > 32) + cfg_parser->cfg->min_client_subnet_ipv4 = 32; + else if (atoi($2) < 0) + cfg_parser->cfg->min_client_subnet_ipv4 = 0; + else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi($2); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + free($2); + } + ; +server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG + { + #ifdef CLIENT_SUBNET + OUTYY(("P(min_client_subnet_ipv6:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("Ipv6 subnet length expected"); + else if (atoi($2) > 128) + cfg_parser->cfg->min_client_subnet_ipv6 = 128; + else if (atoi($2) < 0) + cfg_parser->cfg->min_client_subnet_ipv6 = 0; + else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi($2); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + free($2); + } + ; server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG { #ifdef CLIENT_SUBNET