]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
add forgotten autogenerated files
authorTCY16 <tom@nlnetlabs.nl>
Fri, 19 Nov 2021 10:55:13 +0000 (11:55 +0100)
committerTCY16 <tom@nlnetlabs.nl>
Fri, 19 Nov 2021 10:55:13 +0000 (11:55 +0100)
util/configlexer.c
util/configparser.c
util/configparser.h

index 015df164cc2645b3abe923df708e5695cc2ff503..da64aa5fa709da82df52f91f51b908e2db48f1a3 100644 (file)
@@ -1,7 +1,7 @@
 #include "config.h"
 #include "util/configyyrename.h"
 
-#line 2 "<stdout>"
+#line 3 "<stdout>"
 
 #define  YY_INT_ALIGNED short int
 
@@ -9,8 +9,8 @@
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 4
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 35
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -48,6 +48,7 @@ typedef int16_t flex_int16_t;
 typedef uint16_t flex_uint16_t;
 typedef int32_t flex_int32_t;
 typedef uint32_t flex_uint32_t;
+typedef uint64_t flex_uint64_t;
 #else
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
@@ -55,6 +56,7 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -85,61 +87,63 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
-#ifndef SIZE_MAX
-#define SIZE_MAX               (~(size_t)0)
-#endif
+#endif /* ! FLEXINT_H */
 
-#endif /* ! C99 */
+#ifdef __cplusplus
 
-#endif /* ! FLEXINT_H */
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
 
-/* begin standard C++ headers. */
+#else  /* ! __cplusplus */
 
-/* TODO: this is always defined, so inline it */
-#define yyconst const
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif /* defined (__STDC__) */
+#endif /* ! __cplusplus */
 
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define yynoreturn __attribute__((__noreturn__))
+#ifdef YY_USE_CONST
+#define yyconst const
 #else
-#define yynoreturn
+#define yyconst
 #endif
 
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 
-/* Promotes a possibly negative, possibly signed char to an
- *   integer in range [0..255] for use as an array index.
+/* 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.
  */
-#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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. */
 #ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
 #define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -156,16 +160,15 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
 typedef size_t yy_size_t;
 #endif
 
-extern int yyleng;
+extern yy_size_t yyleng;
 
 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)
     
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
@@ -180,6 +183,7 @@ 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
@@ -194,12 +198,12 @@ struct yy_buffer_state
        /* Size of input buffer in bytes, not including room for EOB
         * characters.
         */
-       int yy_buf_size;
+       yy_size_t yy_buf_size;
 
        /* Number of characters read into yy_ch_buf, not including EOB
         * characters.
         */
-       int yy_n_chars;
+       yy_size_t yy_n_chars;
 
        /* Whether we "own" the buffer - i.e., we know we created it,
         * and can realloc() it to grow it, and should free() it to
@@ -222,7 +226,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.
         */
@@ -250,7 +254,7 @@ struct yy_buffer_state
 /* Stack of input buffers. */
 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
@@ -261,6 +265,7 @@ 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.
  */
@@ -268,11 +273,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 
 /* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-int yyleng;
+static yy_size_t yy_n_chars;           /* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
 
 /* Points to current character in buffer. */
-static char *yy_c_buf_p = NULL;
+static char *yy_c_buf_p = (char *) 0;
 static int yy_init = 0;                /* whether we need to initialize */
 static int yy_start = 0;       /* start state number */
 
@@ -281,68 +286,71 @@ 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 );
+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  );
 
-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 )
+#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 ( const char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
+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,yy_size_t 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 flex_uint8_t YY_CHAR;
 
-FILE *yyin = NULL, *yyout = NULL;
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 
 typedef int yy_state_type;
 
 extern int yylineno;
+
 int yylineno = 1;
 
 extern char *yytext;
-#ifdef yytext_ptr
-#undef yytext_ptr
-#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 ( const 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 yy_fatal_error (yyconst char msg[]  );
 
 /* Done after the current pattern has been matched and before the
  * corresponding action - sets up yytext.
@@ -350,12 +358,13 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
        (yytext_ptr) -= (yy_more_len); \
-       yyleng = (int) (yy_cp - (yytext_ptr)); \
+       yyleng = (yy_size_t) (yy_cp - (yytext_ptr)); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 355
-#define YY_END_OF_BUFFER 356
+
+#define YY_NUM_RULES 356
+#define YY_END_OF_BUFFER 357
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -363,399 +372,399 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[3524] =
+static yyconst flex_int16_t yy_accept[3531] =
     {   0,
-        1,    1,  329,  329,  333,  333,  337,  337,  341,  341,
-        1,    1,  345,  345,  349,  349,  356,  353,    1,  327,
-      327,  354,    2,  354,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  329,  330,  330,  331,
-      354,  333,  334,  334,  335,  354,  340,  337,  338,  338,
-      339,  354,  341,  342,  342,  343,  354,  352,  328,    2,
-      332,  354,  352,  348,  345,  346,  346,  347,  354,  349,
-      350,  350,  351,  354,  353,    0,    1,    2,    2,    2,
-        2,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  329,
-        0,  333,    0,  340,    0,  337,  341,    0,  352,    0,
-        2,    2,  352,  348,    0,  345,  349,    0,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  352,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  130,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      139,  353,  353,  353,  353,  353,  353,  353,  352,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  112,  353,
-      326,  353,  353,  353,  353,  353,  353,  353,  353,    8,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  131,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  144,  353,  353,  352,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  319,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  352,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-       67,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  250,  353,   14,   15,  353,
-       19,   18,  353,  353,  234,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  137,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  232,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,    3,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  352,  353,  353,  353,  353,  353,
-      353,  353,  313,  353,  353,  312,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  336,  353,  353,  353,  353,
-
-      353,  353,  353,  353,   66,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,   70,  353,  282,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  320,  321,  353,  353,  353,  353,  353,
-      353,  353,  353,   71,  353,  353,  138,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  134,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  221,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,   21,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  164,  353,  353,  353,
-      353,  353,  352,  336,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  110,  353,  353,  353,  353,
-      353,  353,  353,  290,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  190,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  163,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      109,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,   35,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,   36,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,   68,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  136,
-      353,  353,  353,  352,  353,  353,  353,  353,  353,  129,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,   69,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  254,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  191,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,   57,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  272,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,   61,  353,
-       62,  353,  353,  353,  353,  353,  113,  353,  114,  353,
-      353,  353,  353,  353,  111,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,    7,  353,  353,
-      353,  353,  352,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  243,  353,  353,  353,  353,  167,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  255,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,   48,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,   58,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  213,  353,
-      212,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,   16,   17,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,   72,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  220,
-      353,  353,  353,  353,  353,  353,  116,  353,  115,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  204,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  145,  353,  353,  353,  352,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  104,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,   92,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  233,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,   97,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,   65,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  207,  208,
-      353,  353,  353,  284,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,    6,  353,  353,
-      353,  353,  353,  353,  353,  303,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  288,  353,  353,  353,  353,  353,  353,
-      314,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,   45,  353,  353,  353,  353,
-       47,  353,  353,  353,   93,  353,  353,  353,  353,  353,
-       55,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  352,  353,  200,  353,  353,  353,  140,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  225,
-      353,  201,  353,  353,  353,  240,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,   56,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  142,  122,  353,
-      123,  353,  353,  353,  353,  121,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  160,  353,  353,   53,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  271,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  202,  353,  353,  353,
-
-      353,  353,  205,  353,  211,  353,  353,  353,  353,  353,
-      353,  239,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  108,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  135,  353,
-      353,  353,  353,  353,  353,  353,   63,  353,  353,  353,
-       29,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,   20,  353,  353,  353,  353,  353,  353,
-       30,   39,  353,  172,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  198,  353,
-
-      353,  352,  353,  353,  353,  353,  353,  353,   80,   82,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  292,  353,  353,  353,  353,  251,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  124,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  159,  353,   49,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  307,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  166,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  301,  353,  353,  353,  231,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  317,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  184,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  117,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  179,  353,  192,  353,  353,  353,  353,  353,  353,
-      353,  352,  353,  148,  353,  353,  353,  353,  353,  103,
-
-      353,  353,  353,  353,  223,  353,  353,  353,  353,  353,
-      353,  241,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  263,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  141,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  183,  353,  353,
-      353,  353,  353,  353,   83,  353,   84,  353,  353,  353,
-      353,  353,   64,  310,  353,  353,  353,  353,  353,   91,
-      193,  353,  214,  353,  244,  353,  353,  206,  285,  353,
-      353,  353,  353,  353,  353,   76,  353,  195,  353,  353,
-
-      353,  353,  353,  353,    9,  353,  353,  353,  353,  353,
-      107,  353,  353,  353,  353,  276,  353,  353,  353,  353,
-      222,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  352,  353,  353,  353,  353,  182,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  168,
-      353,  291,  353,  353,  353,  353,  353,  262,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  235,
-      353,  353,  353,  353,  353,  283,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  165,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  311,
-      353,  194,  353,  353,  353,  353,  353,  353,  353,  353,
-       75,   77,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  106,  353,  353,  353,  353,  274,  353,  353,
-      353,  353,  287,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  227,   37,   31,   33,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,   38,  353,   32,   34,  353,  353,  353,  353,  353,
-      353,  353,  353,  102,  353,  178,  353,  353,  353,  353,
-      353,  353,  353,  352,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  229,  226,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,   74,  353,  353,  353,  143,
-      353,  125,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  161,   50,  353,  353,  353,  344,   13,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  305,
-
-      353,  308,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,   12,  353,  353,   22,  353,  353,
-      353,  353,  353,  280,  353,  353,  353,  353,  289,  353,
-      353,  353,   78,  353,  237,  353,  353,  353,  353,  353,
-      228,  353,  353,   73,  353,  353,  353,  353,  353,  353,
-       23,  353,  353,   46,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  177,  176,  353,  353,
-      344,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      230,  224,  353,  242,  353,  353,  293,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,   85,  353,  353,  353,  353,  275,  353,  353,  353,
-      353,  210,  353,  353,  353,  353,  353,  236,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      315,  316,  174,  353,  353,   79,  353,  353,  353,  353,
-      185,  353,  353,  353,  118,  120,  119,  353,  353,  353,
-       25,  353,  353,  169,  353,  171,  353,  215,  353,  353,
-      353,  353,  175,  353,  353,  353,  353,  245,  353,  353,
-      353,  353,  353,  353,  353,  150,  353,  353,  353,  353,
-
-      353,  353,  353,  353,  353,  353,  353,  353,  253,  353,
-      353,  353,  353,  353,  353,  353,  324,  353,   27,  353,
-      286,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,   89,  216,  353,
-      353,  273,  353,  309,  353,  209,  353,  353,  353,  353,
-      353,  281,   59,  353,  353,  353,  353,  353,  353,    4,
-      353,  353,  353,  353,  133,  149,  353,  353,  353,  189,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  248,   40,
-       41,  353,  353,  353,  353,  353,  353,  353,  294,  353,
-
-      353,  353,  353,  353,  353,  353,  261,  353,  353,  353,
-      353,  353,  353,  353,  353,  219,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-       88,  353,   60,  279,  353,  249,  353,  353,  353,  353,
-      353,   11,  353,  353,  353,  353,  353,  353,  353,  353,
-      132,  353,  353,  353,  353,  217,   94,  353,  353,   43,
-      353,  353,  353,  353,  353,  353,  353,  353,  181,  353,
-      353,  353,  353,  353,  353,  353,  152,  353,  353,  353,
-      353,  252,  353,  353,  353,  353,  353,  260,  353,  353,
-      353,  353,  146,  353,  353,  353,  126,  128,  127,  353,
-
-      353,  353,   96,  100,   95,  162,  353,  353,  353,  353,
-       86,  353,  353,  353,  353,  353,  353,   10,  353,  353,
-      353,  353,  353,  277,  318,  353,  353,  353,  353,  353,
-      323,   42,  353,  353,  353,  353,  353,  180,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  101,   99,  353,   54,  353,  353,   87,
-      306,  353,  353,  353,  353,   24,  353,  353,  353,  353,
-      353,  203,  353,  353,  353,  353,  353,  218,  353,  353,
-      353,  353,  353,  353,  353,  353,  199,  353,  353,  170,
-
-       81,  353,  353,  353,  353,  353,  295,  353,  353,  353,
-      353,  353,  353,  353,  257,  353,  353,  256,  147,  353,
-      353,   98,   51,  353,  153,  154,  157,  158,  155,  156,
-       90,  304,  353,  353,  278,  353,  353,  353,   26,  353,
-      173,  353,  353,  353,  353,  197,  353,  247,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  187,  186,
-       44,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  302,  353,  353,  353,  353,  105,  353,
-
-      246,  353,  270,  299,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  325,  353,   52,    5,  353,
-      353,  238,  353,  353,  300,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  258,   28,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  259,  353,
-      353,  353,  151,  353,  353,  353,  353,  353,  353,  353,
-      353,  188,  353,  196,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  296,  353,  353,  353,  353,  353,  353,
-      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
-      353,  322,  353,  353,  266,  353,  353,  353,  353,  353,
-
-      297,  353,  353,  353,  353,  353,  353,  298,  353,  353,
-      353,  264,  353,  267,  268,  353,  353,  353,  353,  353,
-      265,  269,    0
+        1,    1,  330,  330,  334,  334,  338,  338,  342,  342,
+        1,    1,  346,  346,  350,  350,  357,  354,    1,  328,
+      328,  355,    2,  355,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  330,  331,  331,  332,
+      355,  334,  335,  335,  336,  355,  341,  338,  339,  339,
+      340,  355,  342,  343,  343,  344,  355,  353,  329,    2,
+      333,  355,  353,  349,  346,  347,  347,  348,  355,  350,
+      351,  351,  352,  355,  354,    0,    1,    2,    2,    2,
+        2,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  330,
+        0,  334,    0,  341,    0,  338,  342,    0,  353,    0,
+        2,    2,  353,  349,    0,  346,  350,    0,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  353,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  130,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      139,  354,  354,  354,  354,  354,  354,  354,  353,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  112,  354,
+      326,  354,  354,  354,  354,  354,  354,  354,  354,    8,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  131,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  144,  354,  354,  353,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  319,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  353,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+       67,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  250,  354,   14,   15,  354,
+       19,   18,  354,  354,  234,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  137,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  232,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,    3,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  353,  354,  354,  354,  354,  354,
+      354,  354,  313,  354,  354,  312,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  337,  354,  354,  354,  354,
+
+      354,  354,  354,  354,   66,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,   70,  354,  282,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  320,  321,  354,  354,  354,  354,  354,
+      354,  354,  354,   71,  354,  354,  138,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  134,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  221,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,   21,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  164,  354,  354,  354,
+      354,  354,  353,  337,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  110,  354,  354,  354,  354,
+      354,  354,  354,  290,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  190,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  163,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      109,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,   35,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,   36,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,   68,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  136,
+      354,  354,  354,  353,  354,  354,  354,  354,  354,  129,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,   69,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  254,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  191,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,   57,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  272,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,   61,  354,
+       62,  354,  354,  354,  354,  354,  113,  354,  114,  354,
+      354,  354,  354,  354,  111,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,    7,  354,  354,
+      354,  354,  353,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  243,  354,  354,  354,  354,  167,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  255,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,   48,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,   58,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  213,  354,
+      212,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,   16,   17,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,   72,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  220,
+      354,  354,  354,  354,  354,  354,  116,  354,  115,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  204,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  145,  354,  354,  354,  353,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  104,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,   92,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  233,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,   97,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,   65,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  207,
+      208,  354,  354,  354,  284,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,    6,  354,
+      354,  354,  354,  354,  354,  354,  303,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  288,  354,  354,  354,  354,  354,
+      354,  314,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,   45,  354,  354,  354,
+      354,   47,  354,  354,  354,   93,  354,  354,  354,  354,
+      354,   55,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  353,  354,  200,  354,  354,  354,  140,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      225,  354,  201,  354,  354,  354,  240,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,   56,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  142,  122,
+      354,  123,  354,  354,  354,  354,  121,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  160,  354,  354,   53,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  271,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  202,  354,  354,
+
+      354,  354,  354,  354,  205,  354,  211,  354,  354,  354,
+      354,  354,  354,  239,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  108,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      135,  354,  354,  354,  354,  354,  354,  354,   63,  354,
+      354,  354,   29,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,   20,  354,  354,  354,  354,
+      354,  354,   30,   39,  354,  172,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      198,  354,  354,  353,  354,  354,  354,  354,  354,  354,
+       80,   82,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  292,  354,  354,  354,  354,
+      251,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  124,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  159,  354,   49,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      307,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  166,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  301,  354,  354,  354,  231,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  317,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  184,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  117,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  179,  354,  192,  354,  354,  354,
+      354,  354,  354,  354,  353,  354,  148,  354,  354,  354,
+
+      354,  354,  103,  354,  354,  354,  354,  223,  354,  354,
+      354,  354,  354,  354,  241,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  263,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  141,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      183,  354,  354,  354,  354,  354,  354,   83,  354,   84,
+      354,  354,  354,  354,  354,   64,  310,  354,  354,  354,
+      354,  354,   91,  193,  354,  214,  354,  354,  244,  354,
+      354,  206,  285,  354,  354,  354,  354,  354,  354,   76,
+
+      354,  195,  354,  354,  354,  354,  354,  354,    9,  354,
+      354,  354,  354,  354,  107,  354,  354,  354,  354,  276,
+      354,  354,  354,  354,  222,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  353,  354,  354,
+      354,  354,  182,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  168,  354,  291,  354,  354,  354,  354,
+
+      354,  262,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  235,  354,  354,  354,  354,  354,  283,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  165,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  311,  354,  194,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,   75,   77,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  106,  354,  354,
+      354,  354,  274,  354,  354,  354,  354,  287,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      227,   37,   31,   33,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,   38,  354,   32,   34,
+      354,  354,  354,  354,  354,  354,  354,  354,  102,  354,
+      178,  354,  354,  354,  354,  354,  354,  354,  353,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      229,  226,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+       74,  354,  354,  354,  143,  354,  125,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  161,   50,  354,
+      354,  354,  345,   13,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  305,  354,  308,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+       12,  354,  354,   22,  354,  354,  354,  354,  354,  280,
+      354,  354,  354,  354,  289,  354,  354,  354,   78,  354,
+      237,  354,  354,  354,  354,  354,  228,  354,  354,   73,
+      354,  354,  354,  354,  354,  354,   23,  354,  354,   46,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  177,  176,  354,  354,  345,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  230,  224,  354,  242,
+      354,  354,  293,  354,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,   85,  354,  354,
+      354,  354,  275,  354,  354,  354,  327,  354,  210,  354,
+      354,  354,  354,  354,  236,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  315,  316,  174,
+      354,  354,   79,  354,  354,  354,  354,  185,  354,  354,
+      354,  118,  120,  119,  354,  354,  354,   25,  354,  354,
+      169,  354,  171,  354,  215,  354,  354,  354,  354,  175,
+      354,  354,  354,  354,  245,  354,  354,  354,  354,  354,
+
+      354,  354,  150,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  253,  354,  354,  354,  354,
+      354,  354,  354,  324,  354,   27,  354,  286,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,   89,  216,  354,  354,  273,  354,
+      309,  354,  209,  354,  354,  354,  354,  354,  281,   59,
+      354,  354,  354,  354,  354,  354,    4,  354,  354,  354,
+      354,  133,  149,  354,  354,  354,  189,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  248,   40,   41,  354,  354,
+
+      354,  354,  354,  354,  354,  294,  354,  354,  354,  354,
+      354,  354,  354,  261,  354,  354,  354,  354,  354,  354,
+      354,  354,  219,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,   88,  354,   60,
+      279,  354,  249,  354,  354,  354,  354,  354,   11,  354,
+      354,  354,  354,  354,  354,  354,  354,  132,  354,  354,
+      354,  354,  217,   94,  354,  354,   43,  354,  354,  354,
+      354,  354,  354,  354,  354,  181,  354,  354,  354,  354,
+      354,  354,  354,  152,  354,  354,  354,  354,  252,  354,
+      354,  354,  354,  354,  260,  354,  354,  354,  354,  146,
+
+      354,  354,  354,  126,  128,  127,  354,  354,  354,   96,
+      100,   95,  162,  354,  354,  354,  354,   86,  354,  354,
+      354,  354,  354,  354,   10,  354,  354,  354,  354,  354,
+      277,  318,  354,  354,  354,  354,  354,  323,   42,  354,
+      354,  354,  354,  354,  180,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      101,   99,  354,   54,  354,  354,   87,  306,  354,  354,
+      354,  354,   24,  354,  354,  354,  354,  354,  203,  354,
+      354,  354,  354,  354,  218,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  199,  354,  354,  170,   81,  354,  354,
+      354,  354,  354,  295,  354,  354,  354,  354,  354,  354,
+      354,  257,  354,  354,  256,  147,  354,  354,   98,   51,
+      354,  153,  154,  157,  158,  155,  156,   90,  304,  354,
+      354,  278,  354,  354,  354,   26,  354,  173,  354,  354,
+      354,  354,  197,  354,  247,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  187,  186,   44,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+
+      302,  354,  354,  354,  354,  105,  354,  246,  354,  270,
+      299,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  325,  354,   52,    5,  354,  354,  238,  354,
+      354,  300,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  258,   28,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  259,  354,  354,  354,  151,
+      354,  354,  354,  354,  354,  354,  354,  354,  188,  354,
+      196,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      296,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  322,  354,
+
+      354,  266,  354,  354,  354,  354,  354,  297,  354,  354,
+      354,  354,  354,  354,  298,  354,  354,  354,  264,  354,
+      267,  268,  354,  354,  354,  354,  354,  265,  269,    0
     } ;
 
-static const YY_CHAR yy_ec[256] =
+static yyconst flex_int32_t yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
@@ -787,7 +796,7 @@ static const YY_CHAR yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static const YY_CHAR yy_meta[41] =
+static yyconst flex_int32_t yy_meta[41] =
     {   0,
         1,    2,    3,    4,    5,    1,    6,    1,    1,    1,
         1,    1,    7,    1,    1,    1,    1,    1,    1,    1,
@@ -795,17 +804,17 @@ static const YY_CHAR yy_meta[41] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static const flex_int16_t yy_base[3542] =
+static yyconst flex_int16_t yy_base[3549] =
     {   0,
         0,    0,   38,   41,   44,   46,   59,   65,   71,   77,
-       90,  112,   96,  118,  124,  136, 4616, 4433,   81, 6875,
-     6875, 6875,  129,   52,  130,   63,  131,  152,   70,  140,
+       90,  112,   96,  118,  124,  136, 4891, 4606,   81, 6886,
+     6886, 6886,  129,   52,  130,   63,  131,  152,   70,  140,
       149,  156,   57,   88,   76,  173,  175,   95,  197,  145,
-      185,  199,  208,  213,  178,  123, 4370, 6875, 6875, 6875,
-      107, 3871, 6875, 6875, 6875,  154, 3773, 3649, 6875, 6875,
-     6875,  245, 3475, 6875, 6875, 6875,  163, 2996, 6875,  249,
-     6875,  253,  148, 2649, 2362, 6875, 6875, 6875,  257, 1809,
-     6875, 6875, 6875,  233, 1758,  263,  201,    0,  267,    0,
+      185,  199,  208,  213,  178,  123, 4484, 6886, 6886, 6886,
+      107, 4437, 6886, 6886, 6886,  154, 4339, 4052, 6886, 6886,
+     6886,  245, 3630, 6886, 6886, 6886,  163, 2996, 6886,  249,
+     6886,  253,  148, 2649, 2362, 6886, 6886, 6886,  257, 1809,
+     6886, 6886, 6886,  233, 1758,  263,  201,    0,  267,    0,
         0,  165,  191,  221,  252,  205,  181,  265,   92,  261,
 
       216,  263,  271,  272,  210,  279,  274,  282,  278,  291,
@@ -835,10 +844,10 @@ static const flex_int16_t yy_base[3542] =
       738,  742,  745,  743,  753,  754,  755,  759,  758,  774,
       763,  764,  771,  784,  765,  767,  769,  775,  796,  785,
       798,  799,  800,  803,  804,  801,  808,  807,  809,  811,
-      823,  813,  820,  826,  827,  829,  830,  837,  832, 6875,
+      823,  813,  820,  826,  827,  829,  830,  837,  832, 6886,
       834,  836,  848,  847,  850,  853,  843,  859,  851,  839,
       869,  865,  866,  881,  903,  867,  870,  868,  874,  872,
-     6875,  876,  893,  927,  877,  888,  911,  908,  896,  901,
+     6886,  876,  893,  927,  877,  888,  911,  908,  896,  901,
       885,  909,  912,  934,  923,  913,  936,  944,  932,  915,
 
       925,  947,  951,  952,  959,  957,  954,  960,  961,  969,
@@ -847,16 +856,16 @@ static const flex_int16_t yy_base[3542] =
      1007, 1002, 1018, 1005, 1020, 1025, 1003, 1021, 1022, 1032,
      1033, 1034, 1039, 1037, 1042, 1046, 1043, 1057, 1053, 1055,
      1060, 1061, 1062, 1063, 1064, 1066, 1069, 1070, 1071, 1074,
-     1076, 1080, 1079, 1085, 1087, 1072, 1094, 1090, 6875, 1096,
-     6875, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 6875,
+     1076, 1080, 1079, 1085, 1087, 1072, 1094, 1090, 6886, 1096,
+     6886, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 6886,
      1109, 1113, 1106, 1111, 1120, 1128, 1122, 1130, 1118, 1133,
      1136, 1134, 1138, 1146, 1142, 1147, 1149, 1145, 1151, 1152,
 
-     1154, 1157, 1155, 1158, 1163, 1164, 1165, 1166, 1185, 6875,
+     1154, 1157, 1155, 1158, 1163, 1164, 1165, 1166, 1185, 6886,
      1169, 1171, 1172, 1177, 1176, 1178, 1182, 1190, 1197, 1188,
      1207, 1200, 1208, 1215, 1210, 1213, 1218, 1214, 1222, 1223,
      1226, 1227, 1230, 1231, 1232, 1233, 1235, 1236, 1239, 1240,
-     1238, 1241, 1246, 6875, 1250, 1260, 1261, 1268, 1255, 1248,
+     1238, 1241, 1246, 6886, 1250, 1260, 1261, 1268, 1255, 1248,
      1253, 1266, 1269, 1270, 1271, 1273, 1274,  517, 1277, 1279,
      1287, 1282, 1289, 1290, 1292, 1291, 1293, 1296, 1297, 1298,
      1299, 1310, 1303, 1312, 1319, 1326, 1322, 1324, 1331, 1333,
@@ -864,7 +873,7 @@ static const flex_int16_t yy_base[3542] =
      1346, 1357, 1347, 1352, 1354, 1355, 1359, 1363, 1361, 1358,
 
      1365, 1366, 1368, 1369, 1377, 1375, 1374, 1383, 1378, 1381,
-     1387, 1390, 1392, 1393, 1399, 1400, 6875, 1407, 1402, 1409,
+     1387, 1390, 1392, 1393, 1399, 1400, 6886, 1407, 1402, 1409,
      1404, 1414, 1417, 1416, 1410, 1418, 1422, 1424, 1423, 1425,
      1432, 1433, 1427, 1434, 1435, 1438, 1440, 1449, 1444, 1453,
      1460, 1459, 1461, 1454, 1463, 1464, 1465, 1448, 1474, 1471,
@@ -878,20 +887,20 @@ static const flex_int16_t yy_base[3542] =
      1602, 1603, 1604, 1605, 1606, 1609, 1608, 1610, 1611, 1617,
      1620, 1621, 1624, 1625, 1626, 1629, 1636, 1627, 1637, 1642,
      1631, 1643, 1644, 1647, 1648, 1650, 1653, 1656, 1658, 1651,
-     6875, 1657, 1670, 1665, 1667, 1666, 1668, 1672, 1679, 1674,
-     1677, 1680, 1675, 1681, 1702, 6875, 1688, 6875, 6875, 1689,
-     6875, 6875, 1683, 1691, 6875, 1699, 1686, 1694, 1708, 1715,
+     6886, 1657, 1670, 1665, 1667, 1666, 1668, 1672, 1679, 1674,
+     1677, 1680, 1675, 1681, 1702, 6886, 1688, 6886, 6886, 1689,
+     6886, 6886, 1683, 1691, 6886, 1699, 1686, 1694, 1708, 1715,
      1717, 1709, 1713, 1719, 1723, 1732, 1744, 1727, 1725, 1728,
      1734, 1735, 1729, 1737, 1750, 1740, 1760, 1754, 1736, 1764,
      1772, 1768, 1773, 1770, 1776, 1777, 1779, 1780, 1782, 1789,
 
      1790, 1786, 1791, 1738, 1793, 1795, 1794, 1796, 1800, 1803,
-     1804, 1801, 1799, 1806, 1818, 1816, 1808, 1826, 6875, 1822,
+     1804, 1801, 1799, 1806, 1818, 1816, 1808, 1826, 6886, 1822,
      1829, 1824, 1836, 1832, 1839, 1831, 1835, 1838, 1845, 1848,
      1842, 1840, 1849, 1851, 1852, 1853, 1856, 1857, 1861, 1687,
-     1862, 1864, 1873, 1865, 6875, 1866, 1868, 1869, 1874, 1878,
+     1862, 1864, 1873, 1865, 6886, 1866, 1868, 1869, 1874, 1878,
      1880, 1881, 1882, 1885, 1888, 1889, 1900, 1890, 1892, 1895,
-     1903, 1898, 1901, 1905, 6875, 1904, 1918, 1909, 1915, 1911,
+     1903, 1898, 1901, 1905, 6886, 1904, 1918, 1909, 1915, 1911,
      1913, 1921, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1942,
      1938, 1939, 1937, 1935, 1943, 1950, 1952, 1955, 1958, 1962,
      1940, 1964, 1965, 1966, 1967, 1968, 1970, 1971, 1973, 1978,
@@ -899,691 +908,691 @@ static const flex_int16_t yy_base[3542] =
      1982, 1977, 1985, 1980, 1981, 1989, 2002, 1995, 1987, 1997,
      1998, 2000, 2004, 2013, 2014, 2012, 2010, 2011, 2022, 2018,
      2020, 2023, 2025, 2026, 2033, 2031, 2035, 2036, 2034, 2040,
-     2043, 2045, 6875, 2047, 2049, 6875, 2052, 2050, 2051, 2073,
+     2043, 2045, 6886, 2047, 2049, 6886, 2052, 2050, 2051, 2073,
      2053, 2055, 2062, 2058, 2061, 2075, 2066, 2069, 2080, 2074,
      2093, 2090, 2091, 2096, 2095, 2098, 2097, 2101, 2102, 2104,
      2107, 2108, 2114, 2118, 2128, 2130, 2068, 2131, 2133, 2115,
      2119, 2111, 2139, 2132, 2136, 2134, 2142, 2149, 2146, 2135,
      2152, 2155, 2156, 2157, 2161, 2166, 2162, 2170, 2163, 2164,
-     2171, 2172, 2174, 2179, 2178, 6875, 2191, 2184, 2186, 2188,
+     2171, 2172, 2174, 2179, 2178, 6886, 2191, 2184, 2186, 2188,
 
-     2194, 2201, 2192, 2196, 6875, 2199, 2200, 2202, 2210, 2203,
+     2194, 2201, 2192, 2196, 6886, 2199, 2200, 2202, 2210, 2203,
      2206, 2211, 2213, 2214, 2217, 2219, 2220, 2221, 2226, 2222,
-     2240, 6875, 2227, 6875, 2224, 2235, 2236, 2223, 2244, 2245,
-     2246, 2247, 2248, 6875, 6875, 2249, 2250, 2256, 2266, 2268,
-     2264, 2265, 2269, 6875, 2251, 2276, 6875, 2277, 2271, 2272,
+     2240, 6886, 2227, 6886, 2224, 2235, 2236, 2223, 2244, 2245,
+     2246, 2247, 2248, 6886, 6886, 2249, 2250, 2256, 2266, 2268,
+     2264, 2265, 2269, 6886, 2251, 2276, 6886, 2277, 2271, 2272,
      2279, 2284, 2283, 2285, 2287, 2294, 2289, 2296, 2291, 2292,
-     2293, 6875, 2305, 2295, 2310, 2312, 2303, 2304, 2318, 2320,
-     2314, 6875, 2321, 2322, 2324, 2334, 2332, 2333, 2311, 2336,
+     2293, 6886, 2305, 2295, 2310, 2312, 2303, 2304, 2318, 2320,
+     2314, 6886, 2321, 2322, 2324, 2334, 2332, 2333, 2311, 2336,
      2340, 2335, 2337, 2343, 2344, 2345, 2352, 2354, 2355, 2357,
-     2359, 2366, 2365, 2367, 6875, 2368, 2351, 2371, 2378, 2374,
+     2359, 2366, 2365, 2367, 6886, 2368, 2351, 2371, 2378, 2374,
 
      2376, 2377, 2380, 2381, 2382, 2384, 2385, 2383, 2390, 2392,
      2393, 2396, 2403, 2404, 2402, 2406, 2408, 2400, 2409, 2412,
-     2413, 2418, 2416, 2420, 2421, 2422, 6875, 2425, 2427, 2428,
+     2413, 2418, 2416, 2420, 2421, 2422, 6886, 2425, 2427, 2428,
      2430, 2432, 2433,  171, 2438, 2439, 2443, 2441, 2442, 2449,
      2445, 2456, 2463, 2458, 2459, 2460, 2461, 2467, 2468, 2470,
-     2469, 2471, 2472, 2473, 2476, 6875, 2478, 2480, 2483, 2485,
-     2486, 2487, 2497, 6875, 2489, 2498, 2491, 2504, 2505, 2506,
+     2469, 2471, 2472, 2473, 2476, 6886, 2478, 2480, 2483, 2485,
+     2486, 2487, 2497, 6886, 2489, 2498, 2491, 2504, 2505, 2506,
      2514, 2508, 2510, 2509, 2519, 2515, 2521, 2525, 2522, 2526,
-     2523, 6875, 2532, 2535, 2538, 2529, 2539, 2541, 2546, 2547,
+     2523, 6886, 2532, 2535, 2538, 2529, 2539, 2541, 2546, 2547,
      2548, 2550, 2553, 2551, 2552, 2558, 2554, 2557, 2561, 2568,
 
      2560, 2577, 2564, 2567, 2572, 2576, 2580, 2582, 2583, 2585,
-     2586, 2595, 2588, 6875, 2596, 2592, 2597, 2598, 2593, 2600,
+     2586, 2595, 2588, 6886, 2596, 2592, 2597, 2598, 2593, 2600,
      2604, 2603, 2618, 2605, 2614, 2619, 2620, 2633, 2622, 2627,
      2629, 2625, 2639, 2631, 2643, 2645, 2648, 2654, 2630, 2657,
      2659, 2647, 2660, 2669, 2661, 2665, 2666, 2668, 2672, 2679,
      2680, 2676, 2683, 2675, 2677, 2684, 2692, 2698, 2703, 2694,
-     6875, 2704, 2696, 2702, 2707, 2715, 2710, 2712, 2713, 2717,
+     6886, 2704, 2696, 2702, 2707, 2715, 2710, 2712, 2713, 2717,
      2721, 2722, 2723, 2724, 2732, 2727, 2725, 2729, 2735, 2736,
-     2737, 2744, 2739, 2745, 2747, 2749, 2753, 2755, 2756, 6875,
+     2737, 2744, 2739, 2745, 2747, 2749, 2753, 2755, 2756, 6886,
      2759, 2760, 2761, 2763, 2767, 2764, 2774, 2775, 2777, 2769,
 
      2771, 2778, 2786, 2781, 2779, 2788, 2783, 2793, 2789, 2795,
-     2798, 2797, 6875, 2802, 2806, 2807, 2808, 2809, 2810, 2811,
-     2817, 2819, 2825, 2823, 2813, 2827, 2829, 2830, 6875, 2838,
-     2840, 2837, 2839, 2841, 2845, 2846, 2847, 2849, 2850, 6875,
-     2851, 2853, 2852, 2857, 2855, 2859, 2866, 2867, 2863, 6875,
+     2798, 2797, 6886, 2802, 2806, 2807, 2808, 2809, 2810, 2811,
+     2817, 2819, 2825, 2823, 2813, 2827, 2829, 2830, 6886, 2838,
+     2840, 2837, 2839, 2841, 2845, 2846, 2847, 2849, 2850, 6886,
+     2851, 2853, 2852, 2857, 2855, 2859, 2866, 2867, 2863, 6886,
      2874, 2864, 2873, 2876, 2877, 2880, 2879, 2885, 2881, 2883,
-     2887, 2890, 2892, 2888, 2898, 6875, 2899, 2910, 2902, 2906,
-     2913, 2900, 2907, 2912, 2923, 2916, 2917, 2924, 6875, 2932,
+     2887, 2890, 2892, 2888, 2898, 6886, 2899, 2910, 2902, 2906,
+     2913, 2900, 2907, 2912, 2923, 2916, 2917, 2924, 6886, 2932,
      2929, 2934, 2941, 2936, 1170, 2939, 2937, 2943, 2944, 2946,
-     2947, 2949, 6875, 2950, 2953, 2954, 2958, 2956, 2961, 2951,
+     2947, 2949, 6886, 2950, 2953, 2954, 2958, 2956, 2961, 2951,
 
      2973, 2963, 2965, 2968, 2974, 2976, 2977, 2978, 2980, 2982,
      2990, 2983, 2984, 2993, 2998, 2994, 3003, 2986, 3007, 3010,
      3017, 3000, 3015, 3019, 3020, 3013, 3021, 3022, 3030, 3031,
-     3034, 3032, 3035, 6875, 3038, 3039, 3040, 3023, 3044, 3045,
+     3034, 3032, 3035, 6886, 3038, 3039, 3040, 3023, 3044, 3045,
      3046, 3047, 3050, 3048, 3052, 3053, 3055, 3057, 3071, 3073,
      3062, 3063, 3066, 3074, 3075, 3078, 3077, 3079, 3080, 3087,
      3086, 3088, 3089, 3100, 3090, 3095, 3103, 3092, 3102, 3104,
      3105, 3106, 3112, 3107, 3114, 3116, 3110, 3118, 3119, 3120,
-     3131, 3134, 3122, 3135, 3136, 3141, 3140, 3142, 6875, 3145,
+     3131, 3134, 3122, 3135, 3136, 3141, 3140, 3142, 6886, 3145,
      3146, 3143, 3147, 3152, 3155, 3157, 3165, 3156, 3160, 3164,
 
-     3166, 3172, 3174, 3175, 3177, 3178, 3185, 3181, 6875, 3182,
-     6875, 3183, 3184, 3187, 3196, 3191, 6875, 3202, 6875, 3192,
-     3206, 3197, 3199, 3203, 6875, 3207, 3208, 3212, 3209, 3214,
+     3166, 3172, 3174, 3175, 3177, 3178, 3185, 3181, 6886, 3182,
+     6886, 3183, 3184, 3187, 3196, 3191, 6886, 3202, 6886, 3192,
+     3206, 3197, 3199, 3203, 6886, 3207, 3208, 3212, 3209, 3214,
      3216, 3220, 3221, 3222, 3223, 3224, 3225, 3227, 3230, 3231,
      3233, 3237, 3239, 3245, 3243, 3244, 3247, 3251, 3252, 3253,
-     3254, 3260, 3264, 3263, 3265, 3266, 3267, 6875, 3271, 3275,
+     3254, 3260, 3264, 3263, 3265, 3266, 3267, 6886, 3271, 3275,
      3268, 3279, 3276, 3277, 3280, 3286, 3287, 3288, 3289, 3291,
      3297, 3298, 3300, 3293, 3303, 3304, 3307, 3310, 3320, 3311,
-     3322, 6875, 3312, 3328, 3319, 3323, 6875, 3325, 3321, 3332,
+     3322, 6886, 3312, 3328, 3319, 3323, 6886, 3325, 3321, 3332,
      3334, 3336, 3337, 3339, 3340, 3341, 3344, 3346, 3347, 3353,
 
-     3357, 3360, 3349, 6875, 3361, 3364, 3348, 3363, 3375, 3378,
+     3357, 3360, 3349, 6886, 3361, 3364, 3348, 3363, 3375, 3378,
      3382, 3379, 3380, 3385, 3383, 3387, 3388, 3389, 3390, 3391,
      3393, 3400, 3403, 3404, 3405, 3408, 3395, 3412, 3414, 3415,
      3406, 3399, 3416, 3421, 3422, 3423, 3425, 3426, 3427, 3428,
-     3429, 3430, 3433, 6875, 3434, 3438, 3442, 3451, 3443, 3448,
-     3447, 3454, 3453, 6875, 3457, 3458, 3460, 3459, 3461, 3466,
-     3469, 3470, 3472, 3473, 3476, 3477, 3480, 3479, 6875, 3485,
-     6875, 3486, 3493, 3488, 3498, 3501, 3499, 3503, 3508, 3502,
-     3504, 3509, 3516, 3520, 3510, 3512, 3518, 3521, 3522, 3524,
-     3532, 3536, 3530, 3538, 3539, 3541, 3542, 3544, 3549, 3545,
-
-     3551, 6875, 6875, 3546, 3547, 3553, 3557, 3555, 3561, 3567,
-     3569, 3570, 3562, 3572, 3574, 3585, 6875, 3576, 3583, 3577,
-     3586, 3594, 3587, 3596, 3603, 3601, 3600, 3608, 3604, 6875,
-     3589, 3607, 3617, 3612, 3613, 3624, 6875, 3615, 6875, 3619,
-     3620, 3626, 3627, 3628, 3631, 3629, 3632, 3630, 3634, 3636,
-     3647, 3655, 3657, 3652, 3654, 3644, 3656, 3658, 3660, 3662,
-     3667, 3663, 3666, 3669, 6875, 3671, 3672, 3676, 3673, 3679,
-     3681, 3683, 3684, 3689, 6875, 3690, 3691, 3694, 3695, 3696,
-     3703, 3698, 3704, 3705, 3709, 3706, 3714, 3710, 3713, 6875,
-     3715, 3718, 3729, 3719, 3726, 3727, 3736, 3737, 3742, 6875,
-
-     3743, 3730, 3751, 3747, 3749, 3750, 3753, 3754, 3755, 3757,
-     3758, 3759, 3760, 3762, 3766, 3767, 3763, 3770, 3769, 3781,
-     3780, 3772, 3784, 3794, 3790, 6875, 3791, 3795, 3796, 3797,
-     3798, 3799, 3801, 3804, 3806, 3807, 3809, 3818, 3816, 3820,
-     3821, 3823, 3728, 3830, 3825, 6875, 3832, 3829, 3839, 3831,
-     3834, 3835, 3844, 3840, 3845, 3849, 3846, 3851, 3852, 3853,
-     3854, 3862, 3869, 3864, 3865, 3856, 3866, 3879, 3868, 6875,
-     3881, 3870, 3882, 3887, 3890, 3891, 3898, 3893, 3894, 3895,
-     3900, 3896, 3903, 3905, 3907, 3908, 3911, 3912, 6875, 6875,
-     3918, 3913, 3915, 6875, 3919, 3920, 3927, 3923, 3931, 3926,
-
-     3933, 3935, 3934, 3936, 3944, 3937, 3940, 6875, 3952, 3949,
-     3957, 3950, 3953, 3961, 3964, 6875, 3958, 3965, 3968, 3969,
-     3971, 3972, 3975, 3973, 3976, 3978, 3981, 3982, 3990, 3993,
-     3986, 3988, 3991, 6875, 3989, 3997, 3999, 4001, 3998, 4005,
-     6875, 4002, 4008, 4013, 4010, 4015, 4023, 4025, 4026, 4028,
-     4018, 4030, 4031, 4033, 4032, 4034, 4035, 4046, 4041, 4036,
-     4043, 4045, 4057, 4060, 4049, 6875, 4062, 4063, 4047, 4065,
-     6875, 4069, 4076, 4072, 6875, 4083, 4073, 4080, 4078, 4087,
-     6875, 4082, 4084, 4086, 4091, 4089, 4101, 4093, 4102, 4104,
-     4097, 4100, 4105, 4106, 6875, 4107, 4108, 4112, 6875, 4121,
-
-     4122, 4126, 4129, 4111, 4136, 4132, 4134, 4135, 4133, 6875,
-     4140, 6875, 4143, 4137, 4147, 6875, 4144, 4150, 4152, 4154,
-     4151, 4158, 4159, 4165, 4167, 4155, 4161, 4169, 4171, 4109,
-     4172, 4179, 4174, 4176, 4178, 4180, 6875, 4181, 4183, 4186,
-     4184, 4188, 4191, 4197, 4198, 4202, 4199, 6875, 6875, 4206,
-     6875, 4208, 4210, 4213, 4214, 6875, 4203, 4217, 4221, 4216,
-     4222, 4225, 4220, 4235, 4224, 6875, 4237, 4239, 6875, 4228,
-     4241, 4248, 4243, 4245, 4244, 4249, 4253, 4246, 4250, 4256,
-     4258, 4259, 4260, 4261, 4262, 4267, 6875, 4263, 4265, 4264,
-     4279, 4275, 4280, 4281, 4285, 4282, 6875, 4289, 4295, 4291,
-
-     4296, 4292, 6875, 4298, 6875, 4303, 4304, 4305, 4306, 4310,
-     4318, 6875, 4314, 4311, 4320, 4315, 4322, 4324, 4323, 4330,
-     4331, 4332, 4333, 4340, 4337, 4338, 4336, 4345, 4346, 6875,
-     4343, 4347, 4356, 4357, 4352, 4359, 4366, 4363, 4369, 4364,
-     4365, 4375, 4372, 4376, 4385, 4378, 4383, 4380, 6875, 4390,
-     4389, 4392, 4401, 4393, 4394, 4396, 6875, 4397, 4406, 4407,
-     6875, 4404, 4410, 4414, 4416, 4418, 4419, 4420, 4424, 4421,
-     4425, 4426, 4422, 6875, 4431, 4432, 4428, 4429, 4442, 4445,
-     6875, 6875, 4449, 6875, 4450, 4435, 4451, 4452, 4453, 4460,
-     4462, 4463, 4465, 4457, 4467, 4473, 4471, 4474, 6875, 4479,
-
-     4488, 4459, 4490, 4491, 4499, 4480, 4492, 4494, 6875, 6875,
-     4496, 4501, 4497, 4504, 4507, 4505, 4510, 4515, 4513, 4511,
-     4520, 4521, 4529, 6875, 4530, 4522, 4531, 4524, 6875, 4525,
-     4532, 4533, 4536, 4538, 4539, 4545, 4540, 4541, 4547, 4549,
-     4554, 4552, 4559, 4553, 4555, 4562, 4563, 4565, 4568, 4566,
-     4572, 6875, 4575, 4576, 4577, 4578, 4580, 4585, 4586, 4587,
-     4588, 4589, 4598, 6875, 4591, 6875, 4594, 4590, 4593, 4611,
-     4601, 4615, 4612, 4616, 4618, 4620, 4622, 4623, 4626, 4627,
-     4633, 4628, 4636, 4637, 4630, 4641, 4645, 4646, 6875, 4647,
-     4648, 4650, 4653, 4655, 4657, 4658, 4660, 4661, 4663, 4666,
-
-     4664, 4672, 4674, 4675, 4667, 4678, 4680, 4682, 6875, 4683,
-     4685, 4686, 4691, 4692, 4693, 4696, 4697, 4703, 4707, 4699,
-     4708, 4709, 6875, 4712, 4713, 4715, 6875, 4716, 4717, 4720,
-     4721, 4729, 4722, 4726, 4724, 4730, 6875, 4734, 4737, 4742,
-     4738, 4743, 4744, 4746, 4747, 4750, 4751, 4755, 6875, 4760,
-     4756, 4764, 4765, 4763, 4766, 4771, 4776, 4767, 6875, 4777,
-     4778, 4780, 4774, 4790, 4797, 4786, 4787, 4800, 4796, 4798,
-     4795, 4799, 4805, 4804, 4806, 4809, 4810, 4811, 4822, 4823,
-     4824, 6875, 4814, 6875, 4821, 4826, 4829, 4833, 4831, 4836,
-     4837, 4839, 4842, 6875, 4843, 4847, 4849, 4846, 4851, 6875,
-
-     4853, 4850, 4852, 4856, 6875, 4854, 4869, 4855, 4858, 4872,
-     4876, 6875, 4879, 4880, 4881, 4888, 4890, 4885, 4892, 4873,
-     4895, 4889, 4893, 4897, 4898, 4906, 4903, 4904, 6875, 4908,
-     4902, 4911, 4913, 4914, 4915, 4919, 4921, 4927, 4920, 6875,
-     4929, 4922, 4928, 4930, 4931, 4932, 4935, 4938, 4946, 4941,
-     4951, 4944, 4937, 4949, 4953, 4954, 4960, 6875, 4957, 4961,
-     4965, 4972, 4963, 4974, 6875, 4964, 6875, 4967, 4978, 4980,
-     4982, 4984, 6875, 6875, 4986, 4993, 4988, 4992, 4989, 6875,
-     6875, 4995, 6875, 4996, 6875, 4997, 4999, 6875, 6875, 5001,
-     5002, 5003, 5004, 5005, 5013, 6875, 5017, 6875, 5025, 5007,
-
-     5020, 5018, 5022, 5026, 6875, 5023, 5029, 5033, 5035, 5037,
-     6875, 5030, 5046, 5038, 5043, 6875, 5049, 5050, 5041, 5051,
-     6875, 5054, 5062, 5052, 5059, 5063, 5065, 5064, 5067, 5068,
-     5071, 5073, 5074, 5075, 5079, 5086, 5088, 5090, 5092, 5093,
-     5080, 5096, 5099, 5102, 5106, 5097, 5104, 5108, 5110, 5111,
-     5112, 5114, 5115, 5117, 5119, 5122, 5123, 5129, 5125, 5121,
-     5126, 5127, 5138, 5140, 5142, 5144, 5145, 5146, 5148, 5149,
-     5150, 5152, 5153, 5156, 5159, 5154, 5157, 5162, 6875, 5165,
-     5167, 5169, 5175, 5170, 5176, 5180, 5187, 5191, 5193, 6875,
-     5195, 6875, 5197, 5182, 5188, 5201, 5202, 6875, 5203, 5204,
-
-     5205, 5206, 5207, 5208, 5209, 5210, 5213, 5214, 5218, 6875,
-     5225, 5215, 5212, 5233, 5236, 6875, 5237, 5239, 5240, 5241,
-     5243, 5244, 5245, 5247, 5248, 5252, 5250, 5249, 5254, 5263,
-     5255, 5264, 5267, 6875, 5271, 5277, 5278, 5274, 5279, 5280,
-     5281, 5283, 5284, 5285, 5286, 5287, 5297, 5298, 5302, 6875,
-     5290, 6875, 5303, 5306, 5307, 5293, 5310, 5311, 5308, 5314,
-     6875, 6875, 5317, 5318, 5320, 5322, 5324, 5326, 5330, 5327,
-     5331, 5341, 6875, 5332, 5348, 5335, 5340, 6875, 5342, 5343,
-     5349, 5351, 6875, 5354, 5355, 5356, 5359, 5361, 5368, 5365,
-     5362, 5372, 5373, 5374, 5376, 6875, 6875, 6875, 6875, 5377,
-
-     5379, 5382, 5383, 5384, 5386, 5389, 5391, 5393, 5404, 5387,
-     5390, 6875, 5409, 6875, 6875, 5406, 5410, 5412, 5413, 5414,
-     5416, 5419, 5417, 6875, 5421, 6875, 5424, 5427, 5423, 5431,
-     5434, 5437, 5420, 5441, 5443, 5444, 5445, 5446, 5453, 5451,
-     5454, 5452, 5457, 5459, 5461, 6875, 6875, 5465, 5469, 5392,
-     5472, 5470, 5474, 5473, 5482, 5477, 5480, 5483, 5484, 5486,
-     5488, 5495, 5496, 5493, 5491, 6875, 5497, 5500, 5507, 6875,
-     5501, 6875, 5506, 5512, 5514, 5502, 5508, 5515, 5516, 5522,
-     5518, 5526, 6875, 6875, 5528, 5535, 5530, 6875, 6875, 5532,
-     5533, 5537, 5539, 5534, 5540, 5543, 5542, 5545, 5547, 6875,
-
-     5548, 6875, 5549, 5550, 5561, 5555, 5564, 5568, 5565, 5573,
-     5571, 5574, 5572, 5576, 6875, 5575, 5577, 6875, 5585, 5586,
-     5587, 5578, 5588, 6875, 5593, 5595, 5599, 5601, 6875, 5605,
-     5602, 5607, 6875, 5609, 6875, 5596, 5610, 5611, 5620, 5617,
-     6875, 5618, 5621, 6875, 5625, 5627, 5631, 5632, 5628, 5633,
-     6875, 5637, 5634, 6875, 5639, 5643, 5644, 5648, 5640, 5650,
-     5651, 5653, 5654, 5662, 5658, 5661, 6875, 6875, 5666, 5667,
-      135, 5675, 5663, 5670, 5673, 5676, 5683, 5678, 5680, 5688,
-     6875, 6875, 5689, 6875, 5691, 5692, 6875, 5679, 5697, 5701,
-     5696, 5705, 5698, 5706, 5707, 5709, 5711, 5712, 5717, 5718,
-
-     5719, 5730, 5734, 5720, 5736, 5740, 5742, 5744, 5746, 5748,
-     5722, 5750, 5732, 5751, 5753, 5754, 5756, 5757, 5760, 5758,
-     5761, 6875, 5764, 5766, 5768, 5770, 6875, 5773, 5776, 5780,
-     5782, 6875, 5785, 5786, 5789, 5790, 5791, 6875, 5774, 5794,
-     5797, 5681, 5801, 5802, 5803, 5804, 5812, 5805, 5807, 5809,
-     6875, 6875, 6875, 5815, 5823, 6875, 5825, 5817, 5808, 5826,
-     6875, 5828, 5829, 5830, 6875, 6875, 6875, 5832, 5834, 5836,
-     6875, 5835, 5843, 6875, 5840, 6875, 5841, 6875, 5846, 5848,
-     5849, 5847, 6875, 5854, 5858, 5860, 5863, 6875, 5866, 5869,
-     5873, 5861, 5875, 5877, 5876, 6875, 5884, 5880, 5882, 5889,
-
-     5879, 5886, 5883, 5894, 5890, 5906, 5891, 5893, 6875, 5901,
-     5902, 5909, 5910, 5903, 5912, 5913, 6875, 5915, 6875, 5918,
-     6875, 5919, 5920, 5921, 5925, 5930, 5924, 5923, 5936, 5926,
-     5937, 5945, 5938, 5941, 5943, 5949, 5951, 6875, 6875, 5953,
-     5955, 6875, 5950, 6875, 5961, 6875, 5956, 5958, 5962, 5963,
-     5968, 6875, 6875, 5965, 5966, 5975, 5982, 5977, 5978, 6875,
-     5980, 5985, 5983, 5988, 6875, 6875, 5989, 5996, 5993, 6875,
-     5991, 5995, 6004, 5992, 6001, 6006, 6008, 6011, 6010, 6018,
-     6014, 6015, 6016, 6023, 6017, 6026, 6028, 6034, 6875, 6875,
-     6875, 6037, 6024, 6045, 6041, 6043, 6048, 6038, 6875, 6047,
-
-     6051, 6053, 6054, 6061, 6057, 6060, 6875, 6064, 6062, 6063,
-     6065, 6067, 6068, 6069, 6070, 6875, 6072, 6082, 6084, 6086,
-     6089, 6090, 6093, 6097, 6099, 6101, 6094, 6102, 6110, 6106,
-     6875, 6109, 6875, 6875, 6105, 6875, 6112, 6113, 6114, 6115,
-     6116, 6875, 6119, 6120, 6121, 6122, 6123, 6129, 6126, 6131,
-     6875, 6145, 6127, 6132, 6144, 6875, 6875, 6141, 6153, 6875,
-     6155, 6156, 6150, 6148, 6157, 6158, 6160, 6163, 6875, 6167,
-     6165, 6172, 6173, 6174, 6175, 6176, 6875, 6177, 6178, 6180,
-     6181, 6875, 6184, 6183, 6186, 6188, 6189, 6875, 6190, 6191,
-     6212, 6205, 6875, 6196, 6214, 6207, 6875, 6875, 6875, 6219,
-
-     6222, 6223, 6875, 6875, 6875, 6875, 6225, 6208, 6215, 6229,
-     6875, 6231, 6235, 6239, 6241, 6245, 6244, 6875, 6246, 6238,
-     6250, 6252, 6253, 6875, 6875, 6254, 6255, 6256, 6258, 6259,
-     6875, 6875, 6260, 6262, 6264, 6263, 6265, 6875, 6266, 6271,
-     6278, 6273, 6286, 6289, 6291, 6281, 6292, 6293, 6300, 6301,
-     6283, 6298, 6303, 6304, 6306, 6307, 6315, 6316, 6312, 6320,
-     6322, 6317, 6323, 6875, 6875, 6330, 6875, 6334, 6327, 6875,
-     6875, 6338, 6340, 6342, 6344, 6875, 6346, 6348, 6350, 6352,
-     6331, 6875, 6353, 6355, 6356, 6358, 6359, 6875, 6361, 6363,
-     6367, 6368, 6364, 6369, 6371, 6374, 6875, 6375, 6385, 6875,
-
-     6875, 6376, 6386, 6378, 6387, 6380, 6875, 6392, 6397, 6393,
-     6396, 6399, 6402, 6400, 6875, 6403, 6405, 6875, 6875, 6406,
-     6408, 6875, 6875, 6411, 6875, 6875, 6875, 6875, 6875, 6875,
-     6875, 6875, 6412, 6419, 6875, 6413, 6425, 6428, 6875, 6430,
-     6875, 6415, 6431, 6432, 6421, 6875, 6433, 6875, 6434, 6435,
-     6439, 6443, 6448, 6449, 6442, 6451, 6453, 6452, 6454, 6458,
-     6456, 6460, 6459, 6461, 6462, 6475, 6466, 6476, 6875, 6875,
-     6875, 6469, 6477, 6485, 6478, 6489, 6490, 6493, 6495, 6480,
-     6496, 6498, 6500, 6502, 6503, 6504, 6512, 6508, 6509, 6510,
-     6514, 6511, 6518, 6875, 6524, 6520, 6525, 6527, 6875, 6530,
-
-     6875, 6529, 6875, 6875, 6533, 6536, 6534, 6538, 6546, 6549,
-     6539, 6541, 6548, 6550, 6552, 6875, 6559, 6875, 6875, 6556,
-     6560, 6875, 6561, 6562, 6875, 6563, 6564, 6565, 6568, 6572,
-     6570, 6571, 6573, 6587, 6875, 6875, 6574, 6579, 6582, 6591,
-     6588, 6598, 6595, 6599, 6600, 6602, 6603, 6612, 6875, 6609,
-     6610, 6614, 6875, 6616, 6611, 6617, 6618, 6619, 6627, 6623,
-     6626, 6875, 6628, 6875, 6632, 6634, 6635, 6625, 6633, 6636,
-     6647, 6645, 6641, 6875, 6651, 6655, 6653, 6657, 6659, 6661,
-     6662, 6663, 6665, 6668, 6674, 6671, 6678, 6679, 6675, 6683,
-     6680, 6875, 6690, 6681, 6875, 6687, 6691, 6684, 6693, 6697,
-
-     6875, 6702, 6695, 6704, 6705, 6708, 6709, 6875, 6711, 6718,
-     6713, 6875, 6719, 6875, 6875, 6721, 6715, 6722, 6728, 6730,
-     6875, 6875, 6875, 6755, 6762, 6769, 6776, 6783, 6790, 6797,
-       88, 6804, 6811, 6818, 6825, 6832, 6839, 6846, 6853, 6860,
-     6867
+     3429, 3430, 3433, 6886, 3434, 3438, 3442, 3451, 3443, 3448,
+     3447, 3454, 3453, 6886, 3457, 3458, 3460, 3459, 3461, 3466,
+     3469, 3470, 3472, 3473, 3476, 3477, 3480, 3479, 6886, 3493,
+     6886, 3475, 3485, 3487, 3499, 3502, 3501, 3503, 3505, 3496,
+     3507, 3510, 3517, 3511, 3512, 3518, 3521, 3522, 3523, 3524,
+     3542, 3528, 3537, 3525, 3538, 3529, 3539, 3540, 3549, 3550,
+
+     3546, 6886, 6886, 3552, 3554, 3559, 3557, 3561, 3562, 3563,
+     3571, 3569, 3566, 3565, 3575, 3582, 6886, 3585, 3579, 3568,
+     3587, 3595, 3588, 3597, 3604, 3600, 3601, 3608, 3603, 6886,
+     3591, 3607, 3616, 3612, 3614, 3619, 6886, 3618, 6886, 3620,
+     3622, 3624, 3627, 3628, 3629, 3631, 3636, 3634, 3632, 3637,
+     3649, 3656, 3658, 3640, 3655, 3642, 3657, 3659, 3661, 3663,
+     3671, 3664, 3666, 3667, 6886, 3669, 3672, 3673, 3674, 3680,
+     3683, 3684, 3681, 3687, 6886, 3691, 3694, 3693, 3695, 3697,
+     3699, 3701, 3704, 3705, 3709, 3711, 3706, 3714, 3715, 6886,
+     3717, 3718, 3728, 3719, 3721, 3723, 3733, 3734, 3741, 6886,
+
+     3730, 3742, 3749, 3745, 3746, 3748, 3752, 3747, 3753, 3754,
+     3756, 3757, 3759, 3760, 3761, 3763, 3765, 3768, 3766, 3771,
+     3779, 3780, 3782, 3791, 3787, 6886, 3788, 3792, 3789, 3793,
+     3794, 3798, 3799, 3802, 3804, 3797, 3810, 3815, 3806, 3818,
+     3819, 3821, 3822, 3829, 3825, 6886, 3830, 3831, 3838, 3836,
+     3833, 3834, 3843, 3835, 3845, 3847, 3844, 3848, 3851, 3852,
+     3853, 3860, 3867, 3862, 3863, 3864, 3866, 3877, 3868, 6886,
+     3879, 3870, 3872, 3889, 3885, 3880, 3898, 3890, 3893, 3894,
+     3901, 3897, 3902, 3904, 3905, 3906, 3907, 3910, 3911, 6886,
+     6886, 3917, 3912, 3918, 6886, 3921, 3914, 3925, 3922, 3933,
+
+     3926, 3929, 3934, 3936, 3939, 3942, 3940, 3946, 6886, 3954,
+     3950, 3957, 3949, 3952, 3964, 3961, 6886, 3953, 3973, 3971,
+     3974, 3968, 3956, 3975, 3978, 3980, 3981, 3960, 3984, 3988,
+     3993, 3989, 3991, 3992, 6886, 3995, 3997, 3998, 4001, 4002,
+     4005, 6886, 4004, 4007, 4013, 4010, 4008, 4025, 4018, 4026,
+     4028, 4029, 4030, 4032, 4031, 4033, 4034, 4035, 4045, 4038,
+     4043, 4041, 4047, 4049, 4061, 4059, 6886, 4057, 4064, 4052,
+     4068, 6886, 4070, 4077, 4079, 6886, 4084, 4065, 4081, 4082,
+     4089, 6886, 4085, 4088, 4087, 4095, 4090, 4104, 4100, 4107,
+     4103, 4074, 4105, 4106, 4108, 6886, 4109, 4110, 4112, 6886,
+
+     4113, 4118, 4124, 4127, 4114, 4136, 4131, 4128, 4132, 4135,
+     6886, 4140, 6886, 4139, 4141, 4146, 6886, 4143, 4148, 4149,
+     4151, 4152, 4157, 4158, 4156, 4165, 4166, 4167, 4169, 4170,
+     4168, 4173, 4177, 4174, 4175, 4179, 4180, 6886, 4181, 4183,
+     4190, 4185, 4195, 4191, 4198, 4188, 4202, 4203, 6886, 6886,
+     4212, 6886, 4214, 4204, 4206, 4208, 6886, 4213, 4215, 4225,
+     4218, 4226, 4221, 4230, 4232, 4233, 6886, 4237, 4238, 6886,
+     4234, 4240, 4249, 4242, 4244, 4245, 4250, 4252, 4254, 4247,
+     4259, 4260, 4258, 4262, 4255, 4261, 4269, 6886, 4264, 4266,
+     4265, 4279, 4280, 4282, 4283, 4285, 4287, 6886, 4291, 4292,
+
+     4293, 4301, 4299, 4303, 6886, 4297, 6886, 4300, 4305, 4308,
+     4313, 4309, 4322, 6886, 4317, 4312, 4324, 4321, 4325, 4327,
+     4331, 4332, 4333, 4334, 4335, 4344, 4340, 4341, 4346, 4349,
+     4342, 6886, 4353, 4356, 4360, 4361, 4363, 4357, 4371, 4364,
+     4366, 4367, 4373, 4375, 4376, 4379, 4382, 4384, 4386, 4387,
+     6886, 4390, 4392, 4395, 4404, 4396, 4397, 4400, 6886, 4401,
+     4409, 4410, 6886, 4407, 4411, 4417, 4419, 4421, 4422, 4423,
+     4427, 4424, 4428, 4429, 4425, 6886, 4433, 4434, 4432, 4448,
+     4450, 4438, 6886, 6886, 4451, 6886, 4454, 4435, 4456, 4459,
+     4436, 4463, 4465, 4466, 4468, 4462, 4469, 4474, 4476, 4473,
+
+     6886, 4479, 4489, 4482, 4491, 4493, 4500, 4492, 4497, 4496,
+     6886, 6886, 4502, 4506, 4499, 4510, 4511, 4503, 4513, 4520,
+     4517, 4518, 4524, 4525, 4533, 6886, 4534, 4526, 4535, 4528,
+     6886, 4529, 4536, 4537, 4540, 4542, 4543, 4549, 4544, 4545,
+     4551, 4553, 4558, 4556, 4563, 4557, 4559, 4566, 4567, 4569,
+     4572, 4570, 4576, 6886, 4579, 4580, 4581, 4582, 4584, 4589,
+     4590, 4591, 4592, 4593, 4602, 6886, 4595, 6886, 4598, 4594,
+     4597, 4615, 4605, 4619, 4616, 4620, 4622, 4624, 4626, 4627,
+     4630, 4631, 4637, 4632, 4640, 4641, 4634, 4645, 4649, 4650,
+     6886, 4651, 4652, 4654, 4657, 4659, 4661, 4662, 4664, 4665,
+
+     4666, 4668, 4671, 4673, 4676, 4680, 4677, 4683, 4682, 4687,
+     4685, 6886, 4688, 4690, 4694, 4696, 4697, 4698, 4700, 4702,
+     4707, 4710, 4711, 4712, 4714, 6886, 4717, 4718, 4720, 6886,
+     4721, 4722, 4724, 4725, 4734, 4728, 4726, 4735, 4736, 6886,
+     4743, 4738, 4746, 4740, 4744, 4748, 4749, 4755, 4752, 4757,
+     4760, 6886, 4770, 4765, 4767, 4768, 4769, 4771, 4774, 4776,
+     4779, 6886, 4782, 4783, 4785, 4786, 4797, 4798, 4789, 4793,
+     4802, 4799, 4806, 4800, 4803, 4809, 4813, 4814, 4815, 4817,
+     4807, 4833, 4834, 4831, 6886, 4818, 6886, 4819, 4820, 4836,
+     4846, 4841, 4843, 4844, 4848, 4847, 6886, 4849, 4854, 4856,
+
+     4851, 4859, 6886, 4860, 4857, 4861, 4862, 6886, 4875, 4858,
+     4864, 4871, 4880, 4881, 6886, 4886, 4887, 4888, 4895, 4897,
+     4892, 4899, 4894, 4902, 4900, 4896, 4904, 4905, 4913, 4911,
+     4909, 6886, 4915, 4917, 4922, 4924, 4918, 4926, 4916, 4928,
+     4931, 4933, 6886, 4934, 4937, 4938, 4940, 4941, 4943, 4942,
+     4944, 4951, 4948, 4952, 4950, 4956, 4959, 4961, 4963, 4965,
+     6886, 4967, 4969, 4971, 4980, 4973, 4830, 6886, 4977, 6886,
+     4982, 4987, 4989, 4972, 4990, 6886, 6886, 4993, 5000, 4983,
+     5002, 4999, 6886, 6886, 5004, 6886, 5005, 5006, 6886, 5007,
+     5010, 6886, 6886, 5011, 5012, 5013, 5014, 5015, 5018, 6886,
+
+     5023, 6886, 5031, 5027, 5028, 5030, 5032, 5035, 6886, 5033,
+     5036, 5037, 5041, 5043, 6886, 5048, 5050, 5045, 5051, 6886,
+     5056, 5058, 5059, 5062, 6886, 5064, 5068, 5069, 5070, 5072,
+     5071, 5073, 5077, 5079, 5082, 5084, 5083, 5085, 5087, 5096,
+     5098, 5100, 5102, 5104, 5090, 5106, 5109, 5112, 5114, 5107,
+     5117, 5118, 5120, 5121, 5122, 5124, 5125, 5127, 5129, 5132,
+     5133, 5134, 5135, 5131, 5148, 5136, 5139, 5150, 5146, 5158,
+     5060, 5152, 5154, 5160, 5161, 5163, 5162, 5165, 5168, 5170,
+     5166, 5171, 6886, 5173, 5174, 5176, 5180, 5178, 5182, 5188,
+     5190, 5195, 5197, 6886, 5200, 6886, 5202, 5204, 5205, 5206,
+
+     5208, 6886, 5207, 5210, 5209, 5212, 5211, 5213, 5215, 5214,
+     5218, 5219, 5229, 6886, 5239, 5221, 5224, 5240, 5242, 6886,
+     5243, 5245, 5247, 5248, 5250, 5251, 5254, 5253, 5255, 5256,
+     5257, 5260, 5262, 5264, 5259, 5270, 5274, 6886, 5278, 5282,
+     5289, 5275, 5284, 5285, 5286, 5287, 5290, 5291, 5296, 5295,
+     5303, 5305, 5309, 6886, 5294, 6886, 5312, 5306, 5314, 5316,
+     5298, 5319, 5320, 5321, 5323, 6886, 6886, 5326, 5322, 5327,
+     5332, 5329, 5334, 5336, 5337, 5338, 5339, 6886, 5345, 5347,
+     5350, 5354, 6886, 5355, 5356, 5357, 5359, 6886, 5361, 5362,
+     5364, 5366, 5363, 5375, 5378, 5372, 5369, 5379, 5380, 5387,
+
+     6886, 6886, 6886, 6886, 5388, 5384, 5393, 5390, 5394, 5395,
+     5396, 5401, 5402, 5398, 5399, 5409, 6886, 5413, 6886, 6886,
+     5415, 5416, 5404, 5417, 5423, 5414, 5425, 5427, 6886, 5426,
+     6886, 5432, 5438, 5429, 5440, 5446, 5442, 5430, 5451, 5448,
+     5452, 5436, 5453, 5462, 5458, 5459, 5461, 5464, 5466, 5468,
+     6886, 6886, 5470, 5473, 5474, 5481, 5479, 5482, 5478, 5491,
+     5486, 5488, 5489, 5494, 5495, 5496, 5505, 5506, 5497, 5501,
+     6886, 5504, 5507, 5515, 6886, 5508, 6886, 5514, 5516, 5522,
+     5510, 5523, 5524, 5525, 5529, 5526, 5532, 6886, 6886, 5531,
+     5544, 5539, 6886, 6886, 5540, 5541, 5543, 5547, 5548, 5550,
+
+     5542, 5552, 5554, 5556, 6886, 5557, 6886, 5558, 5564, 5566,
+     5574, 5560, 5571, 5582, 5568, 5583, 5580, 5581, 5584, 5587,
+     6886, 5588, 5590, 6886, 5599, 5591, 5596, 5598, 5595, 6886,
+     5601, 5604, 5606, 5608, 6886, 5614, 5611, 5616, 6886, 5618,
+     6886, 5619, 5620, 5623, 5630, 5626, 6886, 5627, 5631, 6886,
+     5634, 5637, 5641, 5642, 5643, 5644, 6886, 5649, 5628, 6886,
+     5650, 5652, 5653, 5659, 5660, 5662, 5655, 5663, 5664, 5671,
+     5667, 5669, 6886, 6886, 5680, 5672,  135, 5685, 5676, 5682,
+     5683, 5686, 5693, 5688, 5690, 5696, 6886, 6886, 5700, 6886,
+     5689, 5698, 6886, 5691, 5704, 5708, 5706, 5710, 5711, 5712,
+
+     5714, 5718, 5719, 5727, 5720, 5721, 5731, 5742, 5749, 5725,
+     5746, 5750, 5752, 5754, 5756, 5758, 5747, 5760, 5761, 5762,
+     5764, 5766, 5767, 5768, 5726, 5769, 5770, 6886, 5775, 5777,
+     5779, 5780, 6886, 5784, 5785, 5794, 6886, 5791, 6886, 5800,
+     5795, 5797, 5801, 5802, 6886, 5787, 5808, 5813, 5814, 5815,
+     5803, 5809, 5722, 5827, 5816, 5819, 5830, 6886, 6886, 6886,
+     5831, 5833, 6886, 5838, 5825, 5817, 5823, 6886, 5844, 5840,
+     5835, 6886, 6886, 6886, 5845, 5846, 5848, 6886, 5852, 5856,
+     6886, 5853, 6886, 5854, 6886, 5855, 5858, 5861, 5859, 6886,
+     5864, 5866, 5867, 5873, 6886, 5883, 5885, 5887, 5871, 5876,
+
+     5878, 5888, 6886, 5895, 5894, 5898, 5891, 5892, 5900, 5901,
+     5902, 5905, 5914, 5904, 5916, 6886, 5909, 5906, 5919, 5917,
+     5920, 5921, 5925, 6886, 5926, 6886, 5928, 6886, 5930, 5931,
+     5932, 5933, 5938, 5934, 5935, 5941, 5948, 5942, 5951, 5955,
+     5956, 5957, 5959, 5960, 6886, 6886, 5966, 5968, 6886, 5961,
+     6886, 5970, 6886, 5971, 5972, 5973, 5975, 5976, 6886, 6886,
+     5985, 5977, 5980, 5992, 5990, 5993, 6886, 5994, 5996, 5998,
+     6000, 6886, 6886, 6001, 6008, 6004, 6886, 6003, 6006, 6015,
+     6007, 6011, 6019, 6016, 6020, 6023, 6030, 6026, 6028, 6032,
+     6034, 6035, 6036, 6041, 6046, 6886, 6886, 6886, 6037, 6042,
+
+     6054, 6056, 6057, 6059, 6051, 6886, 6058, 6065, 6061, 6067,
+     6074, 6070, 6072, 6886, 6073, 6075, 6076, 6077, 6079, 6080,
+     6081, 6082, 6886, 6084, 6095, 6103, 6100, 6092, 6104, 6108,
+     6111, 6113, 6115, 6116, 6096, 6123, 6119, 6886, 6121, 6886,
+     6886, 6118, 6886, 6125, 6126, 6127, 6128, 6130, 6886, 6133,
+     6134, 6135, 6138, 6136, 6089, 6140, 6142, 6886, 6149, 6144,
+     6151, 6153, 6886, 6886, 6145, 6162, 6886, 6168, 6169, 6157,
+     6165, 6163, 6172, 6177, 6173, 6886, 6179, 6181, 6182, 6184,
+     6185, 6187, 6188, 6886, 6189, 6191, 6192, 6193, 6886, 6196,
+     6195, 6198, 6200, 6201, 6886, 6203, 6205, 6223, 6219, 6886,
+
+     6207, 6226, 6209, 6886, 6886, 6886, 6231, 6233, 6234, 6886,
+     6886, 6886, 6886, 6236, 6237, 6220, 6241, 6886, 6244, 6248,
+     6252, 6254, 6258, 6247, 6886, 6257, 6259, 6261, 6263, 6264,
+     6886, 6886, 6265, 6266, 6267, 6270, 6271, 6886, 6886, 6273,
+     6275, 6276, 6274, 6277, 6886, 6279, 6284, 6288, 6290, 6293,
+     6296, 6301, 6302, 6303, 6304, 6311, 6312, 6307, 6309, 6314,
+     6315, 6318, 6319, 6322, 6331, 6327, 6329, 6337, 6326, 6334,
+     6886, 6886, 6343, 6886, 6345, 6340, 6886, 6886, 6347, 6351,
+     6353, 6355, 6886, 6357, 6359, 6361, 6363, 6348, 6886, 6364,
+     6366, 6367, 6368, 6369, 6886, 6371, 6372, 6378, 6375, 6379,
+
+     6381, 6382, 6385, 6886, 6386, 6388, 6886, 6886, 6394, 6395,
+     6396, 6399, 6397, 6886, 6402, 6409, 6404, 6406, 6407, 6410,
+     6408, 6886, 6413, 6414, 6886, 6886, 6416, 6417, 6886, 6886,
+     6421, 6886, 6886, 6886, 6886, 6886, 6886, 6886, 6886, 6425,
+     6431, 6886, 6427, 6436, 6438, 6886, 6442, 6886, 6429, 6439,
+     6445, 6433, 6886, 6443, 6886, 6444, 6450, 6446, 6454, 6455,
+     6458, 6460, 6462, 6464, 6463, 6465, 6468, 6466, 6472, 6469,
+     6471, 6480, 6477, 6478, 6486, 6886, 6886, 6886, 6487, 6488,
+     6494, 6495, 6497, 6499, 6503, 6506, 6507, 6489, 6510, 6511,
+     6512, 6514, 6515, 6524, 6519, 6520, 6522, 6529, 6521, 6535,
+
+     6886, 6537, 6523, 6525, 6543, 6886, 6531, 6886, 6540, 6886,
+     6886, 6548, 6549, 6545, 6551, 6560, 6561, 6552, 6556, 6557,
+     6559, 6563, 6886, 6568, 6886, 6886, 6565, 6571, 6886, 6573,
+     6574, 6886, 6572, 6575, 6577, 6581, 6582, 6579, 6583, 6584,
+     6600, 6886, 6886, 6585, 6590, 6593, 6602, 6604, 6603, 6606,
+     6610, 6611, 6613, 6614, 6623, 6886, 6620, 6621, 6625, 6886,
+     6627, 6622, 6628, 6629, 6630, 6638, 6634, 6637, 6886, 6639,
+     6886, 6643, 6645, 6646, 6636, 6644, 6647, 6658, 6656, 6652,
+     6886, 6662, 6666, 6664, 6668, 6670, 6672, 6673, 6674, 6676,
+     6679, 6685, 6682, 6689, 6690, 6686, 6694, 6691, 6886, 6701,
+
+     6692, 6886, 6698, 6702, 6695, 6704, 6708, 6886, 6713, 6706,
+     6715, 6716, 6719, 6720, 6886, 6722, 6729, 6724, 6886, 6730,
+     6886, 6886, 6732, 6726, 6733, 6739, 6741, 6886, 6886, 6886,
+     6766, 6773, 6780, 6787, 6794, 6801, 6808,   88, 6815, 6822,
+     6829, 6836, 6843, 6850, 6857, 6864, 6871, 6878
     } ;
 
-static const flex_int16_t yy_def[3542] =
+static yyconst flex_int16_t yy_def[3549] =
     {   0,
-     3523,    1, 3524, 3524, 3525, 3525, 3526, 3526, 3527, 3527,
-     3528, 3528, 3529, 3529, 3530, 3530, 3523, 3531, 3523, 3523,
-     3523, 3523, 3532, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3533, 3523, 3523, 3523,
-     3533, 3534, 3523, 3523, 3523, 3534, 3535, 3523, 3523, 3523,
-     3523, 3535, 3536, 3523, 3523, 3523, 3536, 3537, 3523, 3538,
-     3523, 3537, 3537, 3539, 3523, 3523, 3523, 3523, 3539, 3540,
-     3523, 3523, 3523, 3540, 3531, 3531, 3523, 3541, 3532, 3541,
-     3532, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3533,
-     3533, 3534, 3534, 3535, 3535, 3523, 3536, 3536, 3537, 3537,
-     3538, 3538, 3537, 3539, 3539, 3523, 3540, 3540, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3537, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3537, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3537, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3523, 3531,
-     3523, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3537, 3537, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3537, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3537, 3531, 3523, 3531, 3531, 3531, 3523, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3523, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531,
-     3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-
-     3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-
-     3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3537, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523,
-
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3523,
-     3523, 3531, 3523, 3531, 3523, 3531, 3531, 3523, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3523, 3523, 3523, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3537, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3523,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3523, 3523, 3531, 3531, 3531, 3523, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531,
-     3537, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3523, 3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3523, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3523, 3523, 3523, 3531, 3531, 3531,
-     3523, 3531, 3531, 3523, 3531, 3523, 3531, 3523, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523, 3531,
-     3531, 3523, 3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3523, 3523, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3523,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3523, 3523, 3523, 3531,
-
-     3531, 3531, 3523, 3523, 3523, 3523, 3531, 3531, 3531, 3531,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531,
-     3523, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3523, 3531, 3523, 3531, 3531, 3523,
-     3523, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523,
-
-     3523, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3531, 3531, 3523, 3523, 3531,
-     3531, 3523, 3523, 3531, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3523, 3531,
-     3523, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3523,
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3523, 3531,
-
-     3523, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3523, 3531, 3523, 3523, 3531,
-     3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3523, 3523, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531,
-     3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
-     3531, 3523, 3531, 3531, 3523, 3531, 3531, 3531, 3531, 3531,
-
-     3523, 3531, 3531, 3531, 3531, 3531, 3531, 3523, 3531, 3531,
-     3531, 3523, 3531, 3523, 3523, 3531, 3531, 3531, 3531, 3531,
-     3523, 3523,    0, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523
+     3530,    1, 3531, 3531, 3532, 3532, 3533, 3533, 3534, 3534,
+     3535, 3535, 3536, 3536, 3537, 3537, 3530, 3538, 3530, 3530,
+     3530, 3530, 3539, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3540, 3530, 3530, 3530,
+     3540, 3541, 3530, 3530, 3530, 3541, 3542, 3530, 3530, 3530,
+     3530, 3542, 3543, 3530, 3530, 3530, 3543, 3544, 3530, 3545,
+     3530, 3544, 3544, 3546, 3530, 3530, 3530, 3530, 3546, 3547,
+     3530, 3530, 3530, 3547, 3538, 3538, 3530, 3548, 3539, 3548,
+     3539, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3540,
+     3540, 3541, 3541, 3542, 3542, 3530, 3543, 3543, 3544, 3544,
+     3545, 3545, 3544, 3546, 3546, 3530, 3547, 3547, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3544, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3544, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3544, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3544, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530, 3530, 3538,
+     3530, 3530, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3544, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3544, 3544, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3544, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3544, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3544, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3530, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3544, 3538, 3530, 3538, 3538, 3538, 3530,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3530, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3530,
+     3538, 3530, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3530, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3530, 3538, 3538, 3544, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3544, 3538, 3530, 3538, 3538, 3538,
+
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3530, 3530, 3538, 3538, 3538,
+     3538, 3538, 3530, 3530, 3538, 3530, 3538, 3538, 3530, 3538,
+     3538, 3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3530,
+
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3544, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538, 3538,
+
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3530, 3530, 3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3544, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3530, 3538,
+     3538, 3538, 3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3530, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3530, 3538, 3538, 3544, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3530, 3538, 3530,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3530, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3530, 3530,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3530, 3530, 3530, 3538, 3538, 3538, 3530, 3538, 3538,
+     3530, 3538, 3530, 3538, 3530, 3538, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3530, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3530, 3538, 3538, 3530, 3538,
+     3530, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3530, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3530, 3530, 3538, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3530, 3530, 3538, 3538,
+
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3530,
+     3530, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3530, 3530, 3538, 3538, 3530, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3530,
+
+     3538, 3538, 3538, 3530, 3530, 3530, 3538, 3538, 3538, 3530,
+     3530, 3530, 3530, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3530, 3530, 3538, 3538, 3538, 3538, 3538, 3530, 3530, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3530, 3538, 3530, 3538, 3538, 3530, 3530, 3538, 3538,
+     3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+
+     3538, 3538, 3538, 3530, 3538, 3538, 3530, 3530, 3538, 3538,
+     3538, 3538, 3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3538, 3538, 3530, 3530, 3538, 3538, 3530, 3530,
+     3538, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3538,
+     3538, 3530, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3538,
+     3538, 3538, 3530, 3538, 3530, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3530, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+
+     3530, 3538, 3538, 3538, 3538, 3530, 3538, 3530, 3538, 3530,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3530, 3538, 3530, 3530, 3538, 3538, 3530, 3538,
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3530, 3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3530,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3530, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3530, 3538,
+
+     3538, 3530, 3538, 3538, 3538, 3538, 3538, 3530, 3538, 3538,
+     3538, 3538, 3538, 3538, 3530, 3538, 3538, 3538, 3530, 3538,
+     3530, 3530, 3538, 3538, 3538, 3538, 3538, 3530, 3530,    0,
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530
     } ;
 
-static const flex_int16_t yy_nxt[6916] =
+static yyconst flex_int16_t yy_nxt[6927] =
     {   0,
        18,   19,   20,   21,   22,   23,   22,   18,   18,   18,
        18,   18,   22,   24,   25,   26,   27,   28,   29,   30,
@@ -1967,388 +1976,389 @@ static const flex_int16_t yy_nxt[6916] =
      1853,   86, 1854, 1860, 1851,   86,   86, 1855, 1864, 1861,
        86,   86, 1859, 1862,   86, 1856,   86,   86, 1863, 1870,
        86,   86,   86,   86,   86, 1874, 1865, 1866, 1872,   86,
-     1867, 1868,   86,   86, 1873,   86,   86, 1869,  168,   86,
-       86, 1871,   86,   86, 1875, 1879, 1876, 1881,   86,   86,
-
-     1889,   86, 1882, 1878, 1880, 1883,   86, 1877, 1884, 1888,
-     1890,   86,   86, 1885,   86,   86,   86,   86, 1886, 1893,
-     1894,   86,   86,   86, 1887,   86, 1891, 1897, 1895,   86,
-     1892,   86, 1898,   86,   86,   86, 1896,   86, 1899, 1907,
-     1902, 1901, 1900,   86, 1904,   86, 1906, 1905, 1908,   86,
-     1909,   86,   86, 1903,   86,   86, 1915,   86,   86,   86,
-       86, 1916,   86, 1917,   86, 1911,   86, 1921,   86, 1913,
-       86, 1910, 1912, 1914,   86,   86, 1918, 1923, 1920, 1924,
-       86, 1925,   86,   86, 1919,   86, 1922,   86, 1929,   86,
-       86, 1927, 1933, 1930, 1928, 1926,   86, 1934,   86,   86,
-
-       86, 1939,   86, 1935, 1938, 1932, 1931,   86, 1941,   86,
-     1942, 1936, 1937,   86,   86, 1945,   86,   86, 1940, 1943,
-       86,   86, 1947, 1946, 1949,   86,   86, 1944,   86, 1951,
-       86, 1953,   86,   86, 1948, 1952, 1954,   86, 1950,   86,
-       86,   86,   86,   86,   86,   86, 1959,   86, 1958,   86,
-      166, 1955, 1956, 1960, 1962, 1961, 1963,   86, 1957, 1966,
-       86, 1964, 1968, 1965, 1969,   86, 1971,   86,   86,   86,
-       86,   86, 1975,   86, 1977,   86,   86, 1972, 1970,   86,
-       86, 1967,   86, 1981,   86,   86,   86, 1973, 1976,   86,
-     1974, 1984,   86, 1983,   86, 1979,   86,   86, 1978, 1986,
-
-     1980, 1987,   86,   86,   86, 1982, 1988,   86,  170,   86,
-     1992,   86, 1985, 1991, 1990, 1995,   86,   86,   86,   86,
-     1993, 1999,   86,   86, 1994, 1989,   86,   86,   86, 1997,
-     1996,   86,   86, 2000, 2001, 2002, 2006, 1998, 2003,   86,
-       86,   86,   86,   86, 2007, 2057, 2009, 2004, 2010,   86,
-       86, 2005, 2014, 2011, 2012,   86,   86, 2008, 2015, 2016,
-       86, 2013,   86,   86,   86, 2018,   86,   86,   86, 2019,
-       86,   86,   86,   86, 2017,   86,   86, 2024, 2025,   86,
-       86, 2029,   86,   86, 2026,   86,  165, 2020, 2022, 2023,
-     2021, 2027, 2030,   86,   86, 2028, 2037,   86, 2035, 2033,
-
-     2036, 2038, 2032,   86,   86, 2031, 2034,   86,   86,   86,
-       86,   86,   86, 2044,   86, 2047, 2048,   86, 2049,   86,
-       86, 2051,   86, 2040, 2039, 2042, 2045, 2041, 2046,   86,
-     2043,   86, 2052,   86,   86, 2056,   86, 2058,   86, 2060,
-     2050, 2059,   86,   86,   86,   86, 2062,   86,   86, 2063,
-     2053, 2065,   86,   86, 2054, 2055, 2066,   86,   86,   86,
-     2061, 2069,   86, 2068,   86,   86,   86,   86, 2074,   86,
-     2072, 2073, 2064, 2067, 2070,   86, 2076,   86,   86,   86,
-     2075,   86,   86,   86,  163, 2071, 2084, 2082, 2086, 2077,
-     2078, 2079,   86, 2087,   86,   86, 2080, 2088, 2081, 2083,
-
-       86, 2085, 2090,   86,   86, 2093,   86,   86,   86,   86,
-     2089,   86, 2097,   86, 2091, 2094,   86, 2099,   86, 2092,
-       86,   86, 2102, 2103,   86,   86,   86, 2095,   86, 2096,
-     2105,   86,   86,   86, 2110, 2098,   86, 2107, 2100,   86,
-       86, 2108, 2101, 2112,   86, 2104,   86,   86,   86,   86,
-       86, 2106, 2111,   86, 2109, 2115, 2116,   86, 2118, 2121,
-     2113, 2114,   86,   86, 2123,   86,   86, 2122, 2126, 2120,
-       86,   86, 2129, 2125,   86, 2117, 2119,   86,   86, 2127,
-     2130,   86,   86, 2124,   86,   86,   86, 2131,   86,   86,
-     2128,   86, 2136, 2132,   86,   86, 2139, 2140, 2135,   86,
-
-     2141,   86,   86,   86,   86, 2133,   86, 2134, 2144, 2137,
-       86,   86,   86, 2149,   86,   86, 2143, 2148,   86, 2142,
-     2138,   86, 2146,   86, 2145, 2153,   86, 2154,   86, 2155,
-     2150,   86, 2147, 2151, 2152, 2157,   86, 2156,   86,   86,
-     2161,   86, 2158,   86,   86,   86,   86,   86,   86,   86,
-     2159, 2165, 2162, 2169,   86, 2160,   86, 2163,   86,   86,
-       86, 2172,   86, 2164, 2171, 2166, 2176, 2167, 2168, 2174,
-       86, 2173, 2170,   86, 2175,   86,   86, 2181,   86, 2185,
-     2180, 2182,   86, 2183, 2177,   86,   86, 2178, 2184,   86,
-     2186,   86, 2179,   86, 2190,   86,   86,   86, 2188,   86,
-
-       86, 2192,   86, 2189,   86, 2194,   86, 2191, 2196, 2198,
-       86, 2193, 2187,   86,   86,   86, 2199,   86,  170,   86,
-       86,   86,   86, 2202,   86,   86, 2234, 2195, 2197, 2200,
-     2206, 2203, 2204, 2201,   86,   86, 2208, 2207, 2209,   86,
-     2205, 2210,   86, 2212, 2211,   86,   86,   86,   86,   86,
-       86, 2213, 2214,   86, 2215, 2216,   86,   86, 2217, 2218,
-       86, 2220, 2219,   86,   86,   86, 2224,   86,   86, 2221,
-     2223,   86,   86, 2225,   86, 2222, 2226, 2227,   86, 2229,
-       86, 2228,   86, 2231,   86,   86, 2236,   86, 2230,   86,
-     2235,   86,   86,   86,   86, 2241,   86,   86, 2238,   86,
-
-     2232,   86, 2246, 2233,   86, 2237, 2242, 2240, 2244, 2239,
-       86,   86,   86, 2247, 2243,   86,   86, 2245, 2252,   86,
-     2250,   86, 2248,   86, 2253, 2251,   86,   86, 2259,   86,
-       86, 2257, 2249,   86,   86,   86, 2261,   86,   86, 2254,
-     2262,   86, 2255, 2256, 2258, 2265, 2260, 2264,   86, 2266,
-       86, 2263,   86, 2267,   86, 2270,   86,   86,   86,   86,
-     2269,   86,   86,   86, 2268, 2272,   86, 2275, 2276,   86,
-     2271,   86,   86,   86,   86,   86,   86,   86,   86, 2273,
-       86, 2278, 2274, 2279, 2277, 2281, 2284, 2280,   86, 2288,
-     2283, 2289,   86,   86,   86,   86, 2286, 2292,   86, 2285,
-
-     2282, 2287,   86, 2293,   86,   86, 2290, 2295,   86,   86,
-     2296,   86, 2299, 2291, 2298, 2294,   86,   86,   86,   86,
-     2300, 2304, 2297,   86,   86, 2306, 2302,   86,   86, 2307,
-     2303,   86, 2309,   86, 2301,   86,   86,   86, 2308, 2312,
-     2311, 2313, 2305,   86,   86,   86,   86, 2318, 2314,   86,
-       86,   86, 2322,   86, 2310, 2319,   86, 2323,   86,   86,
-       86, 2321, 2315, 2316, 2320,   86, 2317, 2324, 2327,   86,
-       86, 2328,   86, 2331, 2326, 2325,   86,   86,   86,   86,
-     2329, 2332,   86,  161, 2333,   86, 2335, 2337,   86,   86,
-     2339,   86, 2330,   86, 2336, 2334,   86, 2338,   86, 2340,
-
-     2341, 2342,   86,   86, 2346,   86,   86,   86, 2348,   86,
-       86, 2343, 2344, 2349,   86, 2345, 2351,   86, 2350,   86,
-       86, 2352, 2353,   86, 2354, 2355, 2347,   86, 2359,   86,
-     2356,   86,   86,   86,   86,   86, 2358,   86,   86,   86,
-     2367,   86,   86, 2357,   86,   86,   86, 2371,   86, 2360,
-     2361, 2362, 2365, 2363, 2366,   86, 2368, 2369,   86, 2364,
-     2372, 2370,   86,   86,   86,   86,   86, 2373, 2374, 2376,
-       86, 2377,  170,   86, 2382,   86,   86, 2384,   86, 2378,
-       86, 2375, 2381, 2379,   86, 2383,   86,   86, 2385, 2388,
-     2387, 2380,   86,   86, 2392, 2391, 2397, 2393, 2395, 2386,
-
-     2389,   86, 2394,   86,   86,   86, 2396,   86, 2400,   86,
-       86, 2390,   86, 2398,   86, 2401, 2405,   86,   86, 2404,
-       86, 2406, 2409,   86,   86, 2411,   86, 2399,   86, 2402,
-     2407, 2410, 2412,   86,   86,   86, 2414,   86,   86, 2413,
-     2403, 2408,   86,   86,   86,   86,   86, 2415, 2417,   86,
-     2420,   86,   86,   86,   86, 2416, 2423, 2418,   86, 2427,
-       86, 2429,   86, 2419, 2422,   86,   86,   86,   86, 2421,
-     2424, 2430,   86, 2426, 2425,   86,   86, 2432,   86,   86,
-     2431,   86, 2428, 2437, 2440,   86, 2434, 2435,   86,   86,
-       86,   86, 2433,   86, 2438, 2436, 2441, 2439,   86,   86,
-
-       86,   86,   86,   86,   86, 2451,   86,   86, 2442, 2443,
-     2444,   86, 2455, 2449,   86, 3523, 2445, 2454, 2447, 2452,
-     2453, 2448, 2446, 2450,   86,   86, 2456, 2458,   86,   86,
-     2459,   86, 2460,   86, 2457,   86,   86, 2464, 2465,   86,
-       86,   86, 2466,   86, 2461, 2467,   86, 2462, 2463,   86,
-       86, 2470, 2471, 2473,   86, 2472, 2468, 2474,   86,   86,
-       86,   86, 2469,   86, 2475, 2476,   86, 2480,   86, 2481,
-       86,   86, 2483,   86,   86, 2485,   86,   86, 2479,   86,
-       86, 2477, 2487, 2478, 2488,   86, 2489,   86,   86, 2491,
-     2482,   86, 2484,   86, 2486,   86,   86, 2496,   86,   86,
-
-     3523, 2495, 2490, 2498,   86,   86,   86, 2493, 2492,   86,
-       86, 2500,   86, 2502, 2494, 2501,   86, 2503, 2497, 2505,
-       86,   86,   86, 2499, 2508,   86,   86, 2511,   86,   86,
-       86, 2506, 2504,   86,   86,   86, 2507,   86, 2515,   86,
-     2509, 2516,   86,   86, 2518, 2510, 2521,   86, 2514, 2512,
-       86,   86, 2519, 2513, 2517,   86,   86,   86, 2520,   86,
-       86, 2528, 2523,   86,   86, 2524, 2530, 2534,   86,   86,
-     2522, 2531, 2529,   86, 2525, 2526,   86,   86,   86,   86,
-       86, 2535, 2536, 2537,   86, 2527, 2532,   86, 2533,   86,
-       86,   86, 2539,   86, 2541, 2543, 2544, 2547, 2545,   86,
-
-       86, 2538, 2546,   86, 2548, 2540, 2542, 2551,   86,   86,
-       86,   86,   86,   86, 2552, 2550, 2553,   86,   86,   86,
-     2549, 2556,   86,   86,   86, 2555, 2557,   86, 2558, 2562,
-     2563, 2559, 2560, 2554,   86,   86,   86,   86, 2561,   86,
-     2569, 2564,   86, 2568,   86, 2570,   86, 2565, 2567,   86,
-       86, 2573,  170, 2571, 2566,   86,   86, 2574, 2572,   86,
-       86, 2579,   86,   86,   86,   86,   86,   86,   86,   86,
-     2586,   86, 2577, 2581, 2580, 2575, 2578, 2576, 2582, 2583,
-     2584, 2585,   86, 2589, 2590,   86,   86, 2587, 2588,   86,
-     2591, 2592,   86,   86,   86, 2595, 2593, 2596,   86, 2594,
-
-     2599,   86,   86,   86, 2598,   86,   86, 2597,   86, 2600,
-       86,   86, 2604, 2605, 2601,   86,   86,   86, 2609,   86,
-     2602,   86, 2607, 2610,   86, 2608,   86,   86,   86, 2603,
-     2606, 2611,   86,   86,   86,   86, 2612, 2613, 2615, 2616,
-       86,   86,   86,   86,   86,   86, 2617, 2618,   86, 2623,
-       86,   86, 2614, 2626,   86, 2619, 2625,   86, 2622,   86,
-     2627, 2620,   86, 2621,   86, 2628,   86,   86, 2624, 2630,
-       86, 2632, 2634,   86,   86, 2629,   86,   86,   86, 2638,
-       86, 2631, 2635, 2637, 2639,   86, 2641,   86, 2633, 2640,
-     2636,   86, 2643,   86, 2642,   86, 2644,   86, 2646,   86,
-
-     2648,   86,   86, 2647, 2650,   86,   86, 2652,   86,   86,
-       86, 2651,   86, 2649,   86,   86,   86,   86,   86, 2656,
-       86, 2645, 2659, 2660, 2654, 2661,   86, 2653, 2655, 2662,
-       86,   86, 2663,   86, 2665,   86,   86, 2658,   86,   86,
-     2664, 2657,   86,   86, 2668, 2670,   86, 2666,   86, 2673,
-       86,   86, 2674, 2675,   86, 2669,   86, 2667, 2671,   86,
-     2672, 2678,   86,   86,   86,   86, 2679,   86, 2682, 2676,
-     2684, 2677,   86, 2680, 2683,   86,   86,   86,   86, 2688,
-       86,   86, 2681, 2687,   86, 2686,   86,   86,   86, 3523,
-     2685, 2692,   86,   86, 2689, 2690, 2691, 2695, 2696,   86,
-
-     2697,   86, 2698,   86, 2699,   86,   86, 2693, 2694,   86,
-       86, 2701,   86, 2703, 2702,   86, 2704,   86, 2700,   86,
-     2705,   86, 2706,   86,   86,   86, 2712,   86,   86, 2714,
-       86, 2715,   86, 2708,   86,   86,   86, 2707,   86,   86,
-       86, 2711,   86, 2709, 2721, 2710, 2716, 2713, 2717, 2718,
-     2719,   86, 2724,   86, 2720,   86, 2726,   86,   86,   86,
-     2722,   86,   86,   86, 2725,   86,   86,   86, 2733,  170,
-       86, 2723,   86, 2735, 2729,   86, 2736, 2731,   86, 2728,
-       86, 2734,   86,   86, 2727, 2737, 2730, 2732,   86,   86,
-     2738, 2742, 3523,   86, 2744,   86, 2739, 2743, 2745, 2746,
-
-       86,   86, 2740, 2747,   86, 2741,   86, 2748,   86, 2749,
-       86, 2750, 2752, 2751,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86, 2761,   86,   86,   86,   86, 2759,
-     2754,   86, 2765, 2753, 3523, 2756, 2755, 2766,   86, 2758,
-     2757, 2760, 2767, 2762, 2763, 2764,   86, 2768, 2770,   86,
-       86, 2772,   86,   86,   86, 2769,   86,   86,   86, 2771,
-       86,   86,   86,   86, 2776,   86, 2783,   86,   86, 2782,
-     3523, 2773, 2774, 2777, 2775, 2784,   86,   86, 2778, 2779,
-       86, 2780, 2781, 2788,   86, 2790, 2787,   86, 2785, 2789,
-       86,   86,   86,   86,   86, 2786,   86,   86,   86,   86,
-
-       86, 2795, 2799,   86, 2798, 2791,   86, 2792, 2794, 2800,
-       86,   86, 2793, 2801, 2802,   86,   86, 2796, 2797,   86,
-       86,   86, 2803,   86,   86, 2804, 2807,   86, 2808, 2809,
-       86,   86, 2806,   86, 2815,   86, 2814,   86, 2805,   86,
-       86, 2810, 2818,   86,   86,   86, 2811, 2824,   86, 2813,
-     2812, 2819, 2816,   86,   86,   86,   86, 2817, 2821, 2820,
-     2822,   86,   86, 2829,   86, 2823, 2825,   86,   86,   86,
-     2826, 2833,   86, 2832,   86,   86, 2827, 2831,   86, 2830,
-     2835,   86, 2828, 2836, 2837,   86,   86,   86, 2841,   86,
-       86, 2842,   86, 2834, 2844,   86,   86,   86, 2839,   86,
-
-       86, 2838,   86,   86,   86,   86,   86, 2840, 2885, 2845,
-     2846, 2848, 2847, 2849, 2843, 2850, 2851,   86, 2853,   86,
-     2852, 2854,   86,   86, 2855,   86,   86,   86, 2856,   86,
-       86, 2858,   86,   86,   86, 2859,   86,   86, 2862, 2857,
-       86, 2861, 2864, 2867,   86, 2865, 2868,   86, 2860, 2863,
-       86, 2866, 2870, 2871,  170, 2869,   86,   86,   86,   86,
-     2876, 3523, 2873, 2872,   86,   86,   86,   86, 2878, 2877,
-       86, 2881,   86, 2882,   86, 2880, 2874, 2875,   86, 2886,
-     2879, 2884,   86,   86, 2887,   86,   86,   86, 2888, 2891,
-       86, 2883, 2889,   86, 2892,   86,   86,   86, 2893,   86,
-
-     2890,   86, 2898, 2899,   86, 2894,   86, 2896,   86,   86,
-       86, 2900, 2895,   86,   86,   86, 2901, 2902, 2903,   86,
-       86,   86, 2897, 2904, 2906,   86, 2905,   86,   86,   86,
-     2907,   86, 2908, 2909, 2910,   86, 2913, 2911, 2912,   86,
-     2914,   86, 2917,   86, 2915,   86,   86,   86,   86, 2918,
-       86, 2922,   86,   86, 2923,   86,   86, 2927,   86, 2916,
-       86,   86,   86,   86, 2919, 2925, 2920, 2931,   86, 2921,
-     2926, 2934, 2924, 2932,   86, 2935, 2929,   86,   86, 2928,
-     2937,   86, 2930, 2938,   86,   86,   86,   86,   86,   86,
-       86,   86, 2944, 2933, 2941, 2939, 2936, 2942,   86,   86,
-
-       86,   86, 2945, 2943, 2946, 2947,   86, 2949,   86,   86,
-     2940, 2951,   86, 2952,   86,   86, 2948, 2953,   86, 2954,
-       86, 2956,   86,   86,   86, 2955, 2950, 2960, 2958, 2957,
-       86,   86, 2961,   86,   86, 2964, 2959, 2965,   86, 2966,
-       86,   86, 2962, 2967,   86,   86,   86,   86, 2968, 2971,
-       86, 2963,   86,   86, 2969, 2974,   86,   86, 2975, 2970,
-     2976,   86, 2978,   86,   86, 2972,   86,   86, 2977, 2982,
-     2983,   86, 2973, 2985,   86,   86,   86, 2979, 2984,   86,
-       86, 2981, 2987,   86, 2980, 2986,   86, 2988,   86,   86,
-     2993,   86,   86,   86,   86, 2992,   86, 2995, 3054, 2989,
-
-     2996,   86,   86, 2990,   86,   86, 2991, 2997, 2999,   86,
-       86,   86, 2998, 3001,   86, 3002, 2994, 3000,   86,   86,
-       86, 3009,   86, 3005,   86,   86, 3003, 3004, 3011, 3006,
-       86,   86,   86,   86, 3008,   86, 3012, 3016, 3010, 3007,
-     3015, 3018, 3017,   86, 3013,   86, 3019,   86, 3021,   86,
-     3014, 3027, 3020,   86, 3022,   86, 3023,   86, 3024,   86,
-     3025,   86, 3026,   86,   86, 3029,   86,   86, 3028,   86,
-       86,   86, 3032,   86,   86, 3034, 3038,   86, 3039,   86,
-     3031,   86, 3035,   86, 3040, 3042,   86,   86, 3033,   86,
-     3030, 3036, 3044,   86, 3037,   86, 3043, 3046,   86,   86,
-
-     3045, 3041,   86,   86,   86, 3051, 3052,   86, 3047, 3053,
-       86, 3048, 3049, 3050,   86,   86,   86,   86,   86, 3059,
-       86,   86,   86, 3055, 3060,   86, 3063, 3057,   86, 3062,
-       86, 3061, 3058, 3064, 3056, 3065,   86, 3066,   86,   86,
-     3070,   86,   86,   86, 3067,   86, 3068,   86,   86,   86,
-     3077, 3071, 3074,   86,   86, 3072,   86, 3069, 3075,   86,
-       86,   86,   86, 3082, 3080, 3078, 3081,   86, 3076, 3083,
-     3073,   86, 3084,   86,   86, 3079,   86, 3087, 3089,   86,
-     3088, 3090,   86, 3092, 3085, 3091,   86, 3086,   86,   86,
-       86, 3096,   86,   86, 3095,   86,   86,   86, 3097,   86,
-
-     3098, 3099,   86,   86,   86, 3107,   86,   86, 3093, 3094,
-     3100, 3101, 3103, 3105,   86,   86,   86, 3102, 3108,   86,
-     3109, 3104,   86,   86, 3111,   86,   86, 3110,   86, 3106,
-     3116,   86,   86,   86,   86, 3112,   86,   86,   86,   86,
-     3113, 3114, 3120,   86, 3125, 3117, 3118, 3119, 3115,   86,
-       86,   86, 3121, 3122,   86, 3123,   86, 3124,   86, 3127,
-     3128, 3131,   86,   86,   86, 3133,   86, 3134,   86,   86,
-     3126,   86, 3129, 3136,   86,   86,   86, 3142,   86,   86,
-     3139,   86, 3130, 3132, 3135, 3137, 3141, 3138,   86, 3145,
-       86,   86, 3140,   86, 3148,   86,   86, 3144,   86, 3143,
-
-     3151,   86,   86, 3153,   86,   86,   86, 3156,   86,   86,
-     3147, 3154, 3149, 3146,   86, 3150, 3157,   86, 3160,   86,
-     3158,   86, 3152,   86,   86, 3165, 3155,   86,   86,   86,
-       86,   86, 3162, 3163, 3159, 3169,   86,   86, 3161,   86,
-     3167,   86, 3171, 3164, 3172, 3170, 3166,   86, 3173, 3168,
-       86,   86, 3176, 3177,   86, 3179,   86, 3175,   86, 3178,
-       86,   86, 3174, 3182,   86, 3181,   86,   86, 3185, 3180,
-       86, 3183, 3188,   86,   86,   86,   86,   86,   86, 3193,
-       86,   86,   86,   86, 3197,   86, 3184, 3186, 3187, 3189,
-     3523, 3192, 3196, 3190, 3198,   86, 3199,   86, 3195,   86,
-
-     3194, 3191,   86,   86, 3200, 3203,   86,   86, 3202, 3204,
-       86, 3205,   86, 3206,   86,   86, 3201, 3209,   86,   86,
-     3207, 3211,   86,   86, 3210,   86,   86,   86,   86,   86,
-     3217, 3218,   86,   86,   86,   86,   86, 3212, 3224,   86,
-       86, 3208,   86, 3225,   86,   86, 3215, 3213, 3214, 3221,
-     3216, 3223, 3226, 3220,   86, 3235, 3222,   86,   86, 3219,
-     3227,   86, 3229,   86, 3228, 3231,   86, 3232,   86,   86,
-       86,   86, 3238,   86, 3233, 3230,   86, 3234,   86, 3237,
-       86, 3239, 3236, 3241, 3240,   86,   86,   86,   86,   86,
-       86,   86, 3244,   86,   86, 3246,   86,   86, 3247,   86,
-
-     3245,   86,   86,   86,   86, 3242, 3243, 3256, 3257,   86,
-     3248, 3523, 3252, 3249, 3250, 3251, 3253, 3254,   86, 3259,
-       86,   86, 3255, 3260, 3258,   86, 3268,   86,   86, 3261,
-     3262, 3264,   86, 3263, 3265,   86,   86, 3267,   86, 3523,
-     3266, 3270,   86, 3271,   86, 3272, 3273, 3269,   86, 3274,
-     3275,   86,   86, 3276,   86, 3277, 3278,   86,   86,   86,
-     3281, 3279, 3282,   86, 3280,   86,   86,   86,   86,   86,
-     3288,   86,   86,   86, 3287,   86,   86,   86,   86,   86,
-     3284, 3292, 3291, 3283,   86, 3293,   86, 3285, 3286, 3296,
-     3297,   86, 3289, 3294,   86, 3298,   86, 3295, 3290,   86,
-
-     3299, 3300,   86, 3301,   86,   86,   86, 3306, 3308, 3302,
-     3303,   86, 3307,   86,   86, 3304,   86,   86, 3305,   86,
-       86, 3309, 3312, 3316, 3313,   86, 3310, 3315,   86,   86,
-       86, 3317, 3318,   86, 3319,   86,   86, 3311, 3523, 3314,
-       86, 3321, 3322,   86,   86, 3320, 3323,   86, 3523, 3324,
-     3325,   86, 3326,   86, 3327,   86, 3328,   86, 3329,   86,
-     3330,   86, 3331,   86, 3332,   86,   86, 3335,   86,   86,
-     3333,   86,   86, 3339,   86, 3334,   86,   86, 3336, 3341,
-       86,   86,   86, 3337,   86, 3345, 3346,   86,   86,   86,
-     3343,   86, 3338,   86, 3344, 3340, 3342, 3348,   86,   86,
-
-       86, 3352, 3350, 3347, 3355,   86,   86, 3349, 3354,   86,
-       86, 3353,   86,   86, 3357,   86,   86, 3351,   86,   86,
-     3356,   86, 3361, 3363,   86,   86,   86, 3362,   86, 3360,
-     3366, 3358,   86, 3359,   86, 3367, 3364, 3369,   86, 3368,
-     3370,   86, 3371,   86,   86,   86,   86,   86,   86, 3374,
-     3365, 3372,   86, 3373, 3375,   86,   86, 3379, 3380, 3378,
-     3376,   86,   86, 3382,   86,   86,   86,   86, 3383,   86,
-     3377,   86,   86,   86,   86,   86, 3381, 3391, 3389,   86,
-     3393, 3386,   86, 3384, 3385, 3390, 3388, 3394,   86,   86,
-       86,   86, 3387,   86, 3396, 3392, 3397, 3399,   86, 3395,
-
-     3400, 3401,   86,   86, 3402, 3403,   86, 3404,   86,   86,
-     3398,   86, 3405,   86, 3407,   86,   86,   86, 3408, 3412,
-     3409,   86,   86,   86,   86,   86, 3416,   86, 3415, 3406,
-     3418,   86, 3411,   86, 3414, 3413, 3419,   86,   86, 3422,
-       86, 3410,   86,   86, 3417, 3425,   86,   86, 3420,   86,
-     3426,   86,   86, 3429,   86, 3427, 3430, 3421, 3423,   86,
-     3424,   86,   86,   86, 3435,   86, 3431, 3432, 3434,   86,
-     3428, 3436,   86,   86,   86,   86,   86,   86,   86, 3440,
-     3433,   86, 3442,   86,   86,   86,   86,   86, 3439, 3447,
-     3437, 3448,   86, 3438, 3444,   86, 3441, 3443, 3445, 3449,
-
-       86,   86, 3446, 3453,   86, 3455, 3454, 3450,   86, 3456,
-     3451,   86,   86,   86, 3452,   86,   86, 3457, 3458, 3461,
-     3459, 3462,   86,   86,   86,   86, 3464,   86, 3463,   86,
-       86,   86,   86, 3465, 3470, 3460,   86, 3467,   86,   86,
-       86,   86, 3473, 3466, 3474,   86,   86,   86,   86,   86,
-     3468, 3469, 3472, 3477,   86, 3471, 3475, 3478,   86, 3476,
-       86, 3481, 3480, 3482,   86, 3479,   86, 3483,   86, 3485,
-       86, 3487,   86, 3488,   86,   86,   86, 3492,   86, 3489,
-     3523,   86, 3490, 3495,   86, 3486, 3493,   86,   86, 3494,
-     3484,   86,   86,   86,   86, 3491,   86,   86, 3496, 3497,
-
-       86, 3499, 3501,   86,   86, 3503,   86, 3498,   86, 3504,
-       86, 3507, 3500, 3502, 3508,   86, 3505,   86,   86, 3511,
-     3512,   86,   86, 3514,   86, 3506,   86, 3509,   86, 3513,
-     3515,   86,   86, 3516,   86,   86, 3510, 3517, 3523, 3518,
-     3521,   86, 3522,   86, 3523, 3523, 3523, 3519, 3523, 3523,
-     3523, 3523, 3523, 3523, 3520,   47,   47,   47,   47,   47,
-       47,   47,   52,   52,   52,   52,   52,   52,   52,   57,
-       57,   57,   57,   57,   57,   57,   63,   63,   63,   63,
-       63,   63,   63,   68,   68,   68,   68,   68,   68,   68,
-       74,   74,   74,   74,   74,   74,   74,   80,   80,   80,
-
-       80,   80,   80,   80,   89,   89, 3523,   89,   89,   89,
-       89,  160,  160, 3523, 3523, 3523,  160,  160,  162,  162,
-     3523, 3523,  162, 3523,  162,  164, 3523, 3523, 3523, 3523,
-     3523,  164,  167,  167, 3523, 3523, 3523,  167,  167,  169,
-     3523, 3523, 3523, 3523, 3523,  169,  171,  171, 3523,  171,
-      171,  171,  171,  174, 3523, 3523, 3523, 3523, 3523,  174,
-      177,  177, 3523, 3523, 3523,  177,  177,   90,   90, 3523,
-       90,   90,   90,   90,   17, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523
+     1867, 1868,   86,   86, 1873,   86,   86, 1869,   86,   86,
+       86, 1871,   86,   86, 1875, 1879, 1876, 1881,   86, 1890,
+
+       86, 1889, 1882, 1878, 1880, 1883,   86, 1877, 1884,   86,
+     1885, 1891,   86, 1888,   86,   86,   86, 1895,   86, 1894,
+       86, 1886, 1896,   86,   86,   86, 1887, 1892, 1898, 1900,
+       86,   86, 1893, 1899,   86,   86,   86,   86,   86, 1897,
+     1909,   86,   86, 1903, 1901, 1905, 1907, 1902, 1906, 1908,
+       86,   86,   86,   86, 1904,   86, 1916, 1910, 1911,   86,
+     1913, 1917,   86,   86, 1912,   86, 1914,   86, 1918, 1915,
+       86, 1919,   86, 1922,   86,   86,   86, 1926,   86,   86,
+     1925,   86,   86, 1924,   86, 1921, 1923, 1930,   86, 1934,
+     1920, 1927,   86, 1928, 1935,   86, 1929, 1931,   86, 1932,
+
+       86,   86, 1940, 1938,   86, 1939, 1933, 1937,   86, 1942,
+       86, 1943, 1936,   86,   86, 1946,   86,   86, 1944, 1941,
+       86,   86, 1947, 1950, 1948,   86, 1954,   86, 1945,   86,
+     1952,   86,   86,   86, 1949,   86, 1953,   86, 1951, 1955,
+       86,   86,   86,  168,   86,   86, 1960,   86, 1959,   86,
+       86, 1961, 1956,   86, 1957,   86, 1958, 1962, 1963, 1965,
+     1964, 1967,   86, 1969, 1966, 1970, 1971, 1972,   86,   86,
+       86,   86,   86, 1976,   86, 1973,   86,   86, 1978,   86,
+       86, 1982,   86, 1968,   86,   86,   86,   86, 1974, 1977,
+     1984, 1975, 1985,   86,   86, 1980,   86,   86, 1981, 1979,
+
+       86, 1987, 1988, 1989,   86, 1983,   86,   86,  170, 1993,
+       86, 1996,   86, 1986,   86, 1991, 1992,   86,   86,   86,
+     1994, 2000,   86, 1990,   86, 1995, 2002,   86,   86, 1998,
+       86,   86,   86, 1997,   86, 2007,   86, 1999, 2001, 2003,
+     2004,   86, 2010,   86, 2008, 2011,   86,   86, 2014, 2005,
+     2012, 2006, 2009, 2013,   86,   86, 2016, 2017,   86,   86,
+       86,   86,   86, 2019, 2015,   86,   86,   86, 2020,   86,
+       86, 2018,   86,   86,   86, 2025,   86, 2026,   86,   86,
+     2021,   86, 2027, 2030,   86, 2023, 2028, 2024, 2022, 2034,
+     2031, 2029,   86,   86, 2038,   86, 2035, 2036, 2039, 2033,
+
+       86,   86,   86, 2032,   86,   86,   86,   86, 2037, 2045,
+       86,   86,   86, 2048, 2049,   86, 2050,   86, 2043,   86,
+     2041, 2040, 2052,   86, 2042, 2046, 2044, 2047,   86, 2053,
+     2051,   86,   86, 2057,   86,   86, 2059, 2061,   86, 2058,
+     2054, 2060,   86,   86,   86, 2063,   86,   86,   86,   86,
+     2066,   86, 2055, 2056, 2064, 2067,   86,   86,   86, 2070,
+       86,   86, 2062, 2069,   86,   86,   86, 2075, 2068, 2073,
+     2074, 2065, 2071,   86, 2077,   86,   86,   86, 2076,   86,
+       86,   86, 2072,   86, 2085,   86, 2087, 2078, 2079, 2080,
+       86, 2088,   86,   86, 2081, 2083, 2082, 2089,   86, 2084,
+
+     2090, 2086,   86,   86, 2091, 2094,   86,   86, 2093, 2092,
+       86,   86, 2095, 2098,   86,   86, 2100,   86,   86,   86,
+       86, 2104, 2105,   86,   86,   86, 2096,   86, 2097, 2107,
+       86,   86, 2112, 2102,   86,   86, 2099, 2101,   86,   86,
+     2109, 2103,   86, 2110, 2106, 2114,   86,   86, 2111,   86,
+     2108, 2113,   86,   86, 2117,   86, 2120, 2116, 2118,   86,
+     2115, 2123,   86,   86, 2125,   86,   86,   86, 2124,   86,
+       86, 2128, 2127,   86,   86, 2122, 2129,   86, 2119, 2121,
+     2131,   86, 2126, 2132,   86, 2130,   86,   86,   86, 2135,
+     2134,   86, 2133,   86,   86, 2142, 2138,   86, 2141, 2140,
+
+     2143,   86,   86, 2137,   86,   86,   86, 2136,   86, 2146,
+       86,   86, 2139, 2151,   86,   86, 2150,   86,   86, 2145,
+       86,   86, 2144,   86, 2155, 2147,   86, 2156, 2148, 2157,
+     2158,   86, 2149, 2153, 2152, 2160, 2154, 2159,   86,   86,
+     2163,   86,   86,   86,   86,   86,   86,   86,   86, 2167,
+     2161,   86, 2171,  166,   86, 2162,   86, 2165,   86, 2174,
+       86, 2176,   86, 2164, 2166,   86, 2168, 2169, 2170, 2172,
+       86, 2173,   86, 2175,   86, 2177, 2178,   86,   86, 2179,
+     2183,   86, 2184,   86, 2185, 2182, 2187,   86, 2180, 2186,
+       86, 2188,   86, 2181,   86,   86, 2192,   86,   86, 2190,
+
+       86,   86,   86,   86, 2189, 2194, 2202, 2191,   86, 2196,
+     2193, 2198, 2195,   86, 2200, 2201,   86,   86,   86,  170,
+       86,   86,   86,   86, 2204,   86,   86,   86, 2197, 2209,
+     2208,   86, 2210, 2205, 2206, 2199, 2211,   86, 2203, 2212,
+       86,   86, 2207, 2214,   86,   86, 2216, 2213,   86,   86,
+     2215, 2217,   86,   86,   86, 2220,   86, 2218, 2219,   86,
+     2222,   86,   86, 2226,   86,   86, 2221, 2225, 2223,   86,
+       86,   86, 2230, 2224, 2227, 2228, 2229, 2231,   86,   86,
+       86,   86,   86,   86, 2238, 2236,   86,   86,   86, 2233,
+       86, 2237,   86,   86,   86, 2243,   86, 2240,   86, 2232,
+
+     2234,   86, 2235,   86,   86, 2239, 2244, 2242,   86, 2248,
+     2241,   86, 2246, 2249, 2245,   86,   86,   86, 2247,   86,
+     2252,   86, 2251, 2250, 2254,   86,   86,   86,   86, 2253,
+     2255,   86, 2261, 2256,   86, 2257, 2264, 2258,   86,   86,
+     2263, 2259, 2260,   86, 2266,   86,   86,   86, 2262, 2268,
+       86,   86, 2269,   86, 2267,   86, 2272,   86,   86, 2271,
+       86, 2265,   86,   86, 2274,   86, 2277,   86,   86, 2273,
+     2270,   86,   86,   86,   86,   86, 2278,   86,   86,   86,
+     2275, 2279,   86, 2276, 2280, 2281, 2282, 2283, 2286, 2285,
+     2290, 2291,   86,   86, 2284,   86,   86, 2288,   86, 2294,
+
+       86, 2287, 2289, 2295,   86,   86,   86, 2298, 2300, 2297,
+       86, 2292,   86,   86,   86, 2293,   86, 2301,   86, 2303,
+     2296,   86,   86, 2302, 2299,   86,   86, 2305, 2307, 2309,
+       86, 2304, 2310, 2306,   86,   86, 2312,   86,   86, 2311,
+       86, 2308, 2315, 2314,   86,   86,   86,   86,   86, 2316,
+     2317, 2321,  165,   86,   86,   86, 2325,   86, 2322,   86,
+     2313, 2326,   86, 2327, 2318, 2319,   86, 2323, 2320,   86,
+       86, 2324, 2330,   86,   86, 2331,   86,   86, 2334,   86,
+       86, 2336, 2335, 2329,   86, 2328,   86, 2340,   86,   86,
+     2333, 2332,   86, 2342, 2338,   86, 2343,   86, 2337,   86,
+
+       86, 2341, 2339,   86, 2345,   86, 2344, 2349,   86,   86,
+       86, 2351, 2347,   86,   86, 2348, 2352,   86, 2346, 2354,
+       86, 2353,   86,   86,   86, 2355, 2356, 2357, 2358, 2350,
+       86, 2362,   86, 2359,   86,   86,   86,   86,   86, 2361,
+       86,   86,   86, 2370, 2360,   86,   86,   86,   86,   86,
+      163,   86, 2363, 2364, 2365, 2368, 2366, 2369, 2371, 2372,
+     2376,   86, 2367,   86,   86, 2373, 2374,   86, 2375,   86,
+     2377, 2380,   86, 2379, 2383,   86,   86, 2385,   86,   86,
+     2387,   86,   86, 2378, 2381, 2384,   86,   86, 2386,   86,
+     2382, 2390,   86, 2388, 2391,  170, 2394,  161, 2396, 2392,
+
+     2398, 2389,   86, 2397,   86,   86,   86, 2399, 2400,   86,
+       86, 2393,   86,   86, 2403,   86,   86, 2395, 2401,   86,
+     2404, 2407, 2408,   86,   86, 2409,   86, 2412, 2410, 2402,
+       86,   86, 2414,   86, 2405, 2413, 2415,   86,   86,   86,
+     2417,   86,   86, 2416, 2411, 2406,   86,   86,   86,   86,
+       86, 2418, 2420,   86, 2423,   86,   86,   86,   86, 2419,
+     2426, 2421,   86, 2430,   86, 2432,   86, 2422, 2425,   86,
+       86,   86,   86, 2424, 2427, 2433,   86, 2429, 2428,   86,
+       86, 2435,   86,   86, 2434,   86, 2431, 2440, 2443,   86,
+     2437, 2438,   86,   86,   86,   86, 2436,   86, 2441, 2439,
+
+     2444, 2442,   86,   86,   86,   86,   86,   86,   86, 2454,
+       86,   86, 2445, 2446, 2447,   86, 2458, 2452,   86,   86,
+     2448, 2457, 2450, 2455, 2456, 2451, 2449, 2453,   86,   86,
+     2459, 2461,   86,   86, 2462,   86, 2463,   86, 2460,   86,
+       86, 2467, 2468,   86,   86,   86, 2469,   86, 2464, 2470,
+       86, 2465, 2466,   86,   86, 2473, 2474, 2476,   86, 2475,
+     2471, 2477,   86,   86,   86,   86, 2472,   86, 2478, 2479,
+       86, 2483,   86, 2484,   86,   86, 2486,   86,   86,   86,
+     2489,   86, 2482, 2487,   86, 2480,   86, 2481, 2492,   86,
+       86, 2491, 2493,   86, 2485,   86,   86, 2488,   86, 2490,
+
+       86,   86, 2500,   86, 2494, 2495, 2499,   86, 2502,   86,
+       86,   86, 2496,   86, 2497,   86, 2504, 2498, 2506, 2505,
+       86, 2507, 2509,   86,   86,   86, 2501,   86, 2503, 2512,
+       86,   86, 2515,   86,   86,   86, 2508,   86,   86,   86,
+     2511,   86, 2519, 2510, 2522, 2513, 2520,   86,   86,   86,
+     2514,   86, 2518,   86, 2516, 2525,   86,   86, 2517,   86,
+     2521,   86,   86, 2523, 2524,   86, 2527, 2528,   86, 2532,
+       86, 2526, 2534,   86, 2533, 2529, 2535, 2538,   86, 2530,
+       86,   86,   86,   86,   86, 2540, 2541,   86, 2531,   86,
+     2539, 2536,   86, 2537, 2545,   86,   86, 2543,   86,   86,
+
+     2547, 2548,   86, 2549, 2551, 2552,   86, 2542, 2544, 2555,
+       86,   86,   86,   86, 2550,   86,   86, 2556, 2546,   86,
+       86, 2554,   86, 2553, 2557, 2560,   86,   86,   86, 2559,
+       86,   86,   86,   86, 2565, 2561, 2562, 2563, 2558, 2564,
+     2566, 2567, 2571,   86,   86, 2644,   86,   86, 2568,   86,
+     2572, 2569, 2570, 2573,   86, 2574,   86,   86, 2577,   86,
+       86,  170,   86, 2575,   86, 2576, 2578,   86, 2583,   86,
+       86,   86,   86,   86,   86,   86, 2591,   86, 2581, 2584,
+     2579, 2585, 2580, 2582,   86, 2586, 2587, 2589,   86, 2588,
+     3530, 2590, 2594,   86,   86, 2595, 2593, 2592, 2596,   86,
+
+       86,   86, 2599, 2597, 2600,   86, 2598,   86,   86,   86,
+       86, 2602,   86,   86, 2601,   86, 2604,   86,   86, 2608,
+     2609, 2603,   86, 2606,   86, 2605,   86, 2611,   86,   86,
+       86,   86, 2612, 2613, 2614,   86, 2607,   86, 2610,   86,
+     2616,   86, 2615, 2620,   86, 2619,   86,   86, 2617, 2618,
+       86,   86, 2622,   86,   86,   86,   86,   86, 2630, 2621,
+     2627,   86, 2629,   86,   86,   86, 2632, 2631, 2626,   86,
+     2623, 2624,   86, 2625,   86, 2628,   86, 2638,   86, 2636,
+       86, 2633,   86, 3530,   86,   86,   86, 2642, 2634, 2641,
+       86, 2635, 2639,   86, 2643,   86,   86, 2637, 2640, 2645,
+
+       86, 2647,   86,   86, 2650, 2648,   86, 2652, 2653, 2646,
+     2651, 2649,   86,   86, 2654,   86, 2656,   86,   86,   86,
+       86, 2655, 2657,   86,   86,   86,   86,   86,   86, 2661,
+     2666,   86, 2664, 2665, 2659, 2667,   86, 2658, 2668, 2660,
+       86,   86, 2670,   86,   86,   86,   86, 2663,   86,   86,
+       86, 2662, 2675, 2673,   86, 2678,   86, 2680,   86, 2671,
+     2669,   86, 2676,   86,   86, 2674, 2677, 2672, 2683,   86,
+     2679,   86,   86,   86, 2684,   86, 2681,   86, 2687, 2682,
+     2688,   86,   86,   86,   86,   86,   86, 2689, 2693, 2692,
+       86, 2685,   86, 2686, 2691,   86,   86,   86,   86, 2732,
+
+       86, 2690, 2697,   86, 2694, 2700, 2695, 2696, 2701,   86,
+     2702,   86, 2703,   86, 2704,   86, 2698,   86, 2699,   86,
+       86, 2706,   86, 2708, 2707,   86, 2709,   86, 2710, 2705,
+       86,   86, 2711,   86,   86,   86, 2717,   86,   86, 2719,
+       86, 2720,   86, 2713,   86,   86,   86,   86,   86,   86,
+     2712, 2716,   86, 2714, 2723, 2715, 2721, 2718, 2722,   86,
+     2724,   86, 2729,   86, 2725,   86, 2726,   86, 2730, 2727,
+     2731,   86, 2728,   86,   86,   86,   86, 2738,  170,   86,
+     2734,   86, 2740,   86,   86, 2733,   86,   86, 2736,   86,
+     2739,   86, 2741,   86, 2742,   86, 2747, 2735, 2737, 2743,
+
+     2749,   86, 2751,   86, 2744, 2748, 2750, 2752,   86, 2745,
+       86, 2753, 2746,   86, 2754,   86, 2755,   86,   86,   86,
+       86,   86,   86,   86,   86,   86,   86,   86,   86, 2757,
+     2766,   86,   86, 2764,   86, 2756, 2759,   86, 2758, 3530,
+     2760, 2761,   86, 2770, 2762, 2763, 2765, 2767, 2772, 2768,
+     2769, 2771,   86,   86, 2775,   86,   86, 2777,   86, 2773,
+       86,   86, 2774,   86,   86, 2776,   86,   86,   86,   86,
+       86, 2781,   86,   86, 2788,   86, 2789,   86, 2778, 2779,
+     2787, 2780, 2782,   86, 2783, 2785, 2784,   86,   86, 2786,
+     2793,   86, 2790, 2792, 2794,   86, 2795,   86,   86,   86,
+
+       86, 2791,   86,   86,   86, 2800, 2796,   86,   86,   86,
+     2804,   86, 2797, 2799, 2803, 2805,   86, 2798,   86,   86,
+     2806, 2807,   86, 2801, 2802,   86, 2808,   86, 2810,   86,
+     2809, 2813,   86,   86,   86,   86,   86, 2814, 2815,   86,
+       86, 2812,   86, 2820, 2821,   86, 2811,   86, 2824,   86,
+       86,   86,   86, 2819, 2816, 2817, 2827, 2822,   86, 2818,
+       86, 2825, 2830,   86, 2829, 2823, 2826,   86,   86,   86,
+       86, 2835,   86, 2828,   86,   86,   86,   86, 2839,   86,
+     2831, 2838,   86, 2832, 2837,   86, 2836, 2841,   86, 2833,
+     2834,   86,   86,   86, 2843, 2840, 2842,   86, 2844, 2847,
+
+       86,   86, 2848,   86, 2845, 2850,   86,   86,   86,   86,
+     2857,   86,   86, 2846,   86,   86, 2851,   86, 2854, 2849,
+     2852, 2853,   86, 2855, 2856, 2860,   86,   86,   86,   86,
+       86, 2863, 2858, 2861, 2862, 2864,   86, 2859,   86,   86,
+       86, 3530,   86,   86, 2865,   86, 2866, 2867, 2868,   86,
+     2870,   86, 2873,   86, 2869,   86, 2871, 2872, 2874,   86,
+     2875,   86, 2876, 2877,  170,   86,   86, 2880, 2878, 2882,
+     2879,   86,   86, 2884,   86,   86, 2883,   86, 2887,   86,
+     2888,   86, 2886,   86, 2881, 2890,   86,   86, 2892, 2885,
+     2891,   86,   86, 2893,   86,   86, 2889, 2894, 2897,   86,
+
+     2895,   86,   86, 2898,   86, 2896, 2899,   86,   86,   86,
+       86, 2900, 2904, 2905,   86, 2906, 2902,   86,   86,   86,
+       86,   86, 2901,   86, 2908, 2909, 2907,   86,   86,   86,
+     2903, 2910, 2912, 2911, 2913,   86,   86,   86,   86,   86,
+     2914, 2915,   86, 2919,   86,   86, 2917, 2918, 2920, 2916,
+     2921, 2923,   86,   86,   86,   86,   86,   86, 2924, 2928,
+       86,   86, 2922,   86, 2931,   86, 2933,   86, 2929,   86,
+       86,   86, 2925,   86, 2926, 2927, 2937,   86, 2941,   86,
+     2932,   86, 2930, 2938,   86, 2935, 2939,   86, 2934, 2942,
+     2944, 2936, 2945,   86,   86,   86,   86,   86, 2940, 2943,
+
+       86,   86, 2946,   86,   86, 2948, 2951, 2952,   86,   86,
+     2949,   86,   86, 2953,   86, 2956, 2950,   86, 2958,   86,
+     2959,   86, 2947, 2955,   86, 2954, 2960,   86, 2961,   86,
+     2963,   86,   86,   86, 2962, 2957,   86, 2967, 2965,   86,
+       86,   86, 2968,   86,   86, 2971, 2972,   86, 2966, 2973,
+       86, 2969, 2964, 2974,   86,   86,   86,   86, 2975, 2979,
+     2970, 2978,   86,   86, 2981,   86,   86, 2982,   86, 2976,
+     2977, 2983,   86,   86, 2985,   86,   86,   86, 2989, 2990,
+       86, 2986,   86, 2980,   86,   86, 2991, 2992, 2984,   86,
+     2993, 2988, 2994,   86, 2987,   86,   86, 2995,   86,   86,
+
+     3000,   86,   86,   86,   86, 2999,   86, 3002, 3003,   86,
+     3005,   86, 2996,   86, 3006, 2997, 2998,   86, 3004,   86,
+     3008,   86, 3009,   86,   86,   86, 3001,   86, 3012, 3007,
+     3016,   86,   86,   86,   86,   86, 3010, 3011,   86,   86,
+       86, 3015, 3013, 3018,   86, 3014, 3017, 3020, 3042, 3023,
+     3065, 3019, 3022, 3021, 3024,   86, 3025, 3027, 3028,   86,
+       86, 3026,   86,   86, 3029,   86, 3030,   86, 3031,   86,
+     3032,   86, 3033,   86,   86,   86, 3034,   86, 3035,   86,
+       86,   86,   86,   86, 3039, 3530, 3041, 3045,   86, 3046,
+       86, 3038,   86,   86, 3036, 3047, 3049,   86,   86, 3040,
+
+       86, 3037, 3043, 3044,   86, 3050, 3051,   86,   86, 3052,
+       86, 3048, 3053,   86,   86,   86,   86, 3054, 3058, 3055,
+     3059,   86,   86, 3056, 3057, 3060,   86,   86,   86,   86,
+       86, 3061,   86, 3064, 3066, 3063,   86, 3062,   86, 3067,
+       86, 3069, 3068,   86,   86, 3072,   86, 3070,   86, 3071,
+     3073,   86, 3074,   86, 3076, 3075, 3077,   86,   86,   86,
+     3079,   86, 3078, 3084, 3081,   86,   86,   86,   86,   86,
+     3082,   86,   86, 3087,   86, 3089, 3088,   86, 3085,   86,
+       86, 3090, 3091, 3080,   86, 3083,   86, 3094, 3086,   86,
+     3095,   86, 3092, 3099, 3093, 3096,   86, 3097,   86, 3098,
+
+       86,   86, 3103, 3106,   86,   86, 3102,   86,   86, 3100,
+     3101,   86, 3104,   86,   86,   86, 3105,   86,   86,   86,
+     3110, 3112,   86, 3107, 3116, 3108, 3115,   86, 3114,   86,
+       86, 3118,   86,   86,   86, 3109, 3111, 3117,   86,   86,
+     3123,   86, 3113,   86,   86,   86,   86,   86,   86, 3120,
+     3127,   86, 3119, 3121,   86,   86, 3124, 3125, 3126, 3122,
+     3128,   86, 3131, 3129,   86, 3134, 3132, 3130,   86,   86,
+       86, 3138,   86,   86,   86, 3133, 3530, 3135, 3140,   86,
+     3141,   86, 3143,   86,   86,   86,   86, 3136,   86,   86,
+       86, 3146, 3139,   86, 3148, 3142, 3137, 3149,   86, 3152,
+
+     3144, 3145, 3151,   86, 3147,   86,   86,   86, 3155,   86,
+     3150,   86, 3158,   86,   86, 3160,   86,   86, 3163,   86,
+       86,   86, 3161, 3156,   86, 3154, 3153, 3164,   86,   86,
+     3157, 3167,   86,   86, 3159, 3165,   86, 3172, 3162,   86,
+     3169,   86, 3170,   86, 3166,   86, 3176,   86,   86,   86,
+       86, 3168, 3178, 3174,   86,   86, 3171, 3179, 3173,   86,
+     3180, 3183, 3181, 3177,   86, 3175, 3186,   86, 3184,   86,
+       86,   86,   86, 3185,   86, 3182, 3188, 3189,   86, 3190,
+       86, 3192, 3187,   86, 3195,   86,   86,   86,   86,   86,
+       86, 3200,   86,   86,   86,   86, 3204,   86, 3196, 3191,
+
+     3193, 3194,   86, 3199, 3203,   86, 3197, 3205,   86,   86,
+     3202, 3230, 3201,   86, 3198, 3206,   86,   86, 3207, 3208,
+     3210,   86, 3209, 3211,   86, 3212,   86, 3213,   86,   86,
+     3216,   86,   86, 3218,   86, 3215,   86, 3217,   86,   86,
+       86,   86, 3214,   86, 3224, 3225,   86,   86,   86,   86,
+     3219,   86, 3231,   86, 3232,   86, 3233,   86,   86, 3222,
+     3220, 3221,   86, 3223,   86, 3228,   86, 3227, 3530, 3229,
+       86, 3236, 3242, 3226, 3238,   86,   86, 3234,   86, 3237,
+     3239,   86,   86, 3235, 3241,   86,   86, 3240, 3243, 3245,
+       86, 3246,   86, 3244,   86,   86, 3247,   86,   86, 3248,
+
+       86,   86,   86, 3251,   86,   86,   86, 3253,   86,   86,
+     3254,   86, 3252,   86,   86, 3249,   86, 3250,   86, 3263,
+       86, 3264,   86, 3255, 3259, 3256, 3257, 3258, 3260, 3261,
+     3266, 3530,   86,   86, 3262, 3270,   86, 3267, 3265,   86,
+     3268, 3530, 3269, 3271,   86, 3272,   86,   86, 3274,   86,
+       86, 3273, 3276, 3277,   86, 3275, 3278,   86, 3279, 3280,
+       86,   86, 3281, 3282, 3286,   86, 3283,   86, 3284, 3285,
+       86,   86,   86, 3289,   86, 3287,   86,   86,   86,   86,
+       86, 3288, 3295,   86,   86, 3294,   86,   86,   86,   86,
+       86, 3291,   86, 3299, 3290, 3298, 3300,   86, 3292, 3293,
+
+     3304,   86, 3303,   86, 3296, 3301,   86, 3306, 3307,   86,
+     3302, 3297, 3305, 3308,   86,   86,   86,   86, 3313, 3315,
+       86, 3310,   86, 3314,   86,   86, 3311,   86,   86, 3312,
+     3309,   86,   86, 3319, 3322,   86, 3320, 3317, 3323,   86,
+       86, 3325,   86, 3530,   86, 3316, 3324,   86, 3318, 3326,
+       86, 3321, 3328,   86, 3327, 3329,   86, 3330,   86, 3332,
+       86,   86, 3331, 3333,   86, 3334,   86, 3335,   86, 3336,
+       86, 3337,   86, 3338,   86, 3339,   86,   86, 3342,   86,
+       86,   86,   86, 3346,   86,   86, 3341, 3340,   86, 3343,
+     3348,   86,   86, 3344,   86,   86, 3352, 3353,   86,   86,
+
+     3355,   86, 3345, 3349, 3347, 3350, 3351,   86,   86,   86,
+       86, 3357,   86, 3359, 3354,   86, 3362,   86, 3361,   86,
+       86,   86,   86,   86, 3364, 3356,   86,   86, 3360,   86,
+       86, 3363, 3368, 3370,   86, 3358, 3369, 3367,   86, 3365,
+       86, 3366,   86, 3373,   86, 3371,   86, 3374, 3376,   86,
+     3377,   86,   86, 3375, 3378,   86,   86,   86,   86,   86,
+     3372, 3380, 3381,   86, 3386, 3379, 3382,   86,   86, 3387,
+     3383,   86, 3389,   86, 3385,   86,   86,   86,   86,   86,
+     3384,   86,   86, 3388,   86,   86, 3390, 3398, 3396, 3401,
+       86,   86, 3393,   86, 3391, 3392, 3395, 3397, 3400,   86,
+
+       86,   86,   86, 3394, 3403, 3399, 3406,   86,   86, 3408,
+       86, 3402,   86, 3409, 3404, 3410,   86, 3407, 3411,   86,
+       86, 3405, 3413,   86,   86,   86, 3414,   86,   86, 3415,
+     3416, 3419,   86,   86,   86,   86,   86,   86,   86, 3412,
+     3422, 3423,   86, 3418,   86, 3421, 3420, 3425,   86, 3426,
+       86, 3427, 3417,   86, 3424, 3429,   86, 3428,   86, 3430,
+     3432,   86,   86, 3433,   86,   86, 3434, 3436, 3437,   86,
+       86, 3431,   86,   86,   86, 3442,   86, 3441,   86, 3438,
+     3443,   86, 3439, 3435,   86,   86,   86,   86,   86, 3440,
+       86, 3447,   86, 3449,   86,   86,   86,   86,   86, 3444,
+
+     3446, 3454, 3455,   86, 3445, 3448,   86, 3451, 3452, 3450,
+     3462, 3453, 3456,   86, 3460,   86,   86,   86, 3457,   86,
+     3463, 3458, 3461,   86,   86, 3459,   86,   86, 3464, 3465,
+     3468, 3466, 3469,   86,   86,   86,   86, 3471,   86, 3470,
+       86,   86,   86,   86, 3472, 3477, 3467,   86, 3474,   86,
+       86,   86,   86, 3480, 3473, 3481,   86,   86,   86,   86,
+       86, 3475, 3476, 3479, 3484,   86, 3478, 3482, 3485,   86,
+     3483,   86, 3488, 3487, 3489,   86, 3486,   86, 3490,   86,
+     3492,   86, 3494,   86, 3495,   86,   86,   86, 3499,   86,
+     3496, 3530,   86, 3497, 3502,   86, 3493, 3500,   86,   86,
+
+     3501, 3491,   86,   86,   86,   86, 3498,   86,   86, 3503,
+     3504,   86, 3506, 3508,   86,   86, 3510,   86, 3505,   86,
+     3511,   86, 3514, 3507, 3509, 3515,   86, 3512,   86,   86,
+     3518, 3519,   86,   86, 3521,   86, 3513,   86, 3516,   86,
+     3520, 3522,   86,   86, 3523,   86,   86, 3517, 3524, 3530,
+     3525, 3528,   86, 3529,   86, 3530, 3530, 3530, 3526, 3530,
+     3530, 3530, 3530, 3530, 3530, 3527,   47,   47,   47,   47,
+       47,   47,   47,   52,   52,   52,   52,   52,   52,   52,
+       57,   57,   57,   57,   57,   57,   57,   63,   63,   63,
+       63,   63,   63,   63,   68,   68,   68,   68,   68,   68,
+
+       68,   74,   74,   74,   74,   74,   74,   74,   80,   80,
+       80,   80,   80,   80,   80,   89,   89, 3530,   89,   89,
+       89,   89,  160,  160, 3530, 3530, 3530,  160,  160,  162,
+      162, 3530, 3530,  162, 3530,  162,  164, 3530, 3530, 3530,
+     3530, 3530,  164,  167,  167, 3530, 3530, 3530,  167,  167,
+      169, 3530, 3530, 3530, 3530, 3530,  169,  171,  171, 3530,
+      171,  171,  171,  171,  174, 3530, 3530, 3530, 3530, 3530,
+      174,  177,  177, 3530, 3530, 3530,  177,  177,   90,   90,
+     3530,   90,   90,   90,   90,   17, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530
     } ;
 
-static const flex_int16_t yy_chk[6916] =
+static yyconst flex_int16_t yy_chk[6927] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -2358,14 +2368,14 @@ static const flex_int16_t yy_chk[6916] =
         5,    3,    6,   24,    4,   24,   24,    5,   24,    6,
         7,    7,    7,    7,   24,    7,    8,    8,    8,    8,
        33,    8,    7,    9,    9,    9,   26,   26,    8,   10,
-       10,   10,   19,   29,    9,   33,   19,   29, 3531,   35,
+       10,   10,   19,   29,    9,   33,   19,   29, 3538,   35,
        10,   11,   11,   11,   11,   11,   11,   13,   13,   13,
 
        13,   34,   13,   11,   35,   99,   34,   29,   38,   13,
        51,   51,   11,   12,   12,   12,   12,   12,   12,   14,
        14,   14,   14,   99,   14,   12,   15,   15,   15,   38,
        23,   14,   23,   23,   12,   23,   46,   15,   16,   16,
-       16,   23,   23,   25,   27,   27,   25,   25, 2871,   16,
+       16,   23,   23,   25,   27,   27,   25,   25, 2877,   16,
        25,   46,   27,   30,   30,   25,   27,   56,   40,   27,
        56,   73,   31,   31,   25,   28,   67,   67,   30,   32,
        28,   31,   40,   32,   28,   73,   32,   28,   92,   28,
@@ -2732,385 +2742,386 @@ static const flex_int16_t yy_chk[6916] =
      1636, 1646, 1637, 1643, 1634, 1647, 1649, 1638, 1648, 1645,
      1651, 1650, 1642, 1646, 1648, 1639, 1653, 1652, 1647, 1655,
      1655, 1656, 1658, 1657, 1659, 1659, 1649, 1650, 1657, 1660,
-     1651, 1652, 1661, 1662, 1658, 1663, 1664, 1653,   63, 1665,
-     1666, 1656, 1668, 1667, 1660, 1664, 1661, 1666, 1670, 1672,
-
-     1674, 1674, 1667, 1663, 1665, 1667, 1673, 1662, 1668, 1673,
-     1675, 1675, 1677, 1670, 1676, 1680, 1678, 1681, 1670, 1678,
-     1679, 1679, 1682, 1685, 1672, 1686, 1676, 1682, 1680, 1683,
-     1677, 1687, 1683, 1684, 1688, 1689, 1681, 1690, 1684, 1691,
-     1687, 1686, 1685, 1693, 1689, 1691, 1690, 1689, 1692, 1692,
-     1693, 1694, 1695, 1688, 1696, 1697, 1699, 1698, 1700, 1704,
-     1705, 1699, 1699, 1700, 1701, 1695, 1706, 1706, 1708, 1697,
-     1707, 1694, 1696, 1698, 1709, 1713, 1701, 1708, 1705, 1709,
-     1710, 1710, 1711, 1712, 1704, 1714, 1707, 1715, 1712, 1718,
-     1720, 1711, 1716, 1713, 1711, 1710, 1719, 1716, 1716, 1721,
-
-     1723, 1722, 1731, 1718, 1721, 1715, 1714, 1722, 1724, 1724,
-     1725, 1719, 1720, 1727, 1726, 1728, 1725, 1729, 1723, 1726,
-     1732, 1728, 1731, 1729, 1733, 1734, 1735, 1727, 1738, 1735,
-     1733, 1736, 1740, 1741, 1732, 1735, 1738, 1736, 1734, 1742,
-     1743, 1744, 1746, 1748, 1745, 1747, 1744, 1749, 1743, 1750,
-       58, 1740, 1741, 1745, 1747, 1746, 1748, 1756, 1742, 1751,
-     1751, 1749, 1752, 1750, 1753, 1754, 1755, 1755, 1752, 1757,
-     1753, 1758, 1759, 1759, 1761, 1760, 1762, 1756, 1754, 1763,
-     1761, 1751, 1764, 1766, 1766, 1767, 1769, 1757, 1760, 1768,
-     1758, 1769, 1770, 1768, 1771, 1763, 1772, 1773, 1762, 1771,
-
-     1764, 1772, 1774, 1776, 1777, 1767, 1773, 1778, 1779, 1780,
-     1778, 1782, 1770, 1777, 1776, 1781, 1781, 1783, 1784, 1786,
-     1779, 1785, 1785, 1788, 1780, 1774, 1789, 1787, 1791, 1783,
-     1782, 1792, 1794, 1786, 1787, 1788, 1793, 1784, 1789, 1795,
-     1796, 1843, 1793, 1802, 1794, 1843, 1796, 1791, 1797, 1797,
-     1798, 1792, 1802, 1798, 1799, 1799, 1801, 1795, 1803, 1804,
-     1804, 1801, 1805, 1806, 1803, 1806, 1807, 1808, 1809, 1807,
-     1810, 1811, 1812, 1813, 1805, 1814, 1817, 1812, 1813, 1815,
-     1816, 1817, 1819, 1818, 1814, 1822,   57, 1808, 1810, 1811,
-     1809, 1815, 1818, 1821, 1820, 1816, 1823, 1823, 1821, 1820,
-
-     1822, 1824, 1819, 1825, 1827, 1818, 1820, 1824, 1828, 1829,
-     1830, 1831, 1832, 1831, 1833, 1833, 1834, 1834, 1835, 1835,
-     1836, 1837, 1837, 1827, 1825, 1829, 1832, 1828, 1832, 1839,
-     1830, 1838, 1838, 1840, 1841, 1842, 1842, 1844, 1845, 1847,
-     1836, 1845, 1848, 1844, 1850, 1847, 1849, 1851, 1852, 1850,
-     1839, 1852, 1849, 1854, 1840, 1841, 1853, 1853, 1855, 1857,
-     1848, 1856, 1856, 1855, 1858, 1859, 1860, 1861, 1861, 1866,
-     1859, 1860, 1851, 1854, 1857, 1862, 1863, 1864, 1865, 1867,
-     1862, 1869, 1863, 1872,   52, 1858, 1868, 1866, 1871, 1864,
-     1864, 1864, 1868, 1871, 1871, 1873, 1864, 1872, 1865, 1867,
-
-     1874, 1869, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1882,
-     1873, 1877, 1881, 1881, 1875, 1878, 1883, 1883, 1884, 1876,
-     1885, 1886, 1886, 1887, 1887, 1888, 1892, 1879, 1893, 1880,
-     1891, 1891, 1895, 1896, 1897, 1882, 1898, 1893, 1884, 1900,
-     1897, 1895, 1885, 1899, 1899, 1888, 1901, 1903, 1902, 1904,
-     1906, 1892, 1898, 1907, 1896, 1902, 1903, 1905, 1905, 1909,
-     1900, 1901, 1910, 1912, 1911, 1909, 1913, 1910, 1914, 1907,
-     1911, 1917, 1918, 1913, 1914, 1904, 1906, 1915, 1918, 1915,
-     1919, 1919, 1920, 1912, 1921, 1922, 1924, 1920, 1923, 1925,
-     1917, 1926, 1925, 1921, 1927, 1928, 1928, 1929, 1924, 1931,
-
-     1930, 1932, 1935, 1929, 1933, 1922, 1930, 1923, 1933, 1926,
-     1936, 1939, 1937, 1938, 1938, 1942, 1932, 1937, 1940, 1931,
-     1927, 1943, 1935, 1945, 1933, 1943, 1944, 1944, 1946, 1945,
-     1939, 1951, 1936, 1940, 1942, 1947, 1947, 1946, 1948, 1949,
-     1950, 1950, 1948, 1952, 1953, 1955, 1954, 1956, 1957, 1960,
-     1949, 1954, 1951, 1958, 1959, 1949, 1961, 1952, 1962, 1958,
-     1969, 1961, 1965, 1953, 1960, 1955, 1965, 1956, 1957, 1963,
-     1963, 1962, 1959, 1964, 1964, 1967, 1968, 1970, 1970, 1974,
-     1969, 1972, 1972, 1973, 1967, 1974, 1977, 1968, 1973, 1973,
-     1976, 1979, 1968, 1978, 1980, 1982, 1976, 1983, 1978, 1984,
-
-     1980, 1983, 1986, 1979, 1985, 1985, 1988, 1982, 1987, 1989,
-     1991, 1984, 1977, 1992, 1987, 1989, 1990, 1990, 1993, 1994,
-     1996, 1997, 2030, 1993, 2004, 1998, 2030, 1986, 1988, 1991,
-     1998, 1994, 1996, 1992, 2000, 2001, 2001, 2000, 2002, 2002,
-     1997, 2003, 2003, 2005, 2004, 2006, 2009, 2007, 2008, 2005,
-     2014, 2006, 2007, 2011, 2008, 2009, 2013, 2017, 2011, 2013,
-     2015, 2015, 2014, 2018, 2021, 2019, 2020, 2020, 2026, 2017,
-     2019, 2022, 2023, 2021, 2027, 2018, 2022, 2023, 2024, 2025,
-     2025, 2024, 2028, 2027, 2029, 2031, 2032, 2033, 2026, 2034,
-     2031, 2035, 2032, 2036, 2038, 2038, 2039, 2041, 2034, 2040,
-
-     2028, 2042, 2042, 2029, 2043, 2033, 2038, 2036, 2040, 2035,
-     2044, 2045, 2047, 2043, 2039, 2046, 2057, 2041, 2050, 2050,
-     2046, 2052, 2044, 2053, 2052, 2047, 2054, 2055, 2059, 2060,
-     2058, 2057, 2045, 2063, 2059, 2061, 2061, 2065, 2062, 2053,
-     2062, 2070, 2054, 2055, 2058, 2065, 2060, 2064, 2064, 2067,
-     2067, 2063, 2068, 2068, 2071, 2072, 2073, 2075, 2074, 2078,
-     2071, 2072, 2076, 2079, 2070, 2074, 2077, 2077, 2078, 2080,
-     2073, 2081, 2082, 2083, 2084, 2085, 2088, 2090, 2089, 2075,
-     2086, 2080, 2076, 2081, 2079, 2083, 2086, 2082, 2092, 2090,
-     2085, 2091, 2091, 2093, 2094, 2096, 2088, 2094, 2095, 2086,
-
-     2084, 2089, 2098, 2095, 2100, 2102, 2092, 2098, 2099, 2101,
-     2099, 2104, 2102, 2093, 2101, 2096, 2106, 2107, 2108, 2109,
-     2104, 2109, 2100, 2110, 2114, 2111, 2107, 2113, 2116, 2113,
-     2108, 2111, 2115, 2115, 2106, 2117, 2119, 2118, 2114, 2118,
-     2117, 2119, 2110, 2120, 2121, 2122, 2123, 2124, 2120, 2127,
-     2125, 2126, 2128, 2124, 2116, 2125, 2131, 2128, 2128, 2129,
-     2132, 2127, 2121, 2122, 2126, 2135, 2123, 2129, 2133, 2133,
-     2134, 2134, 2136, 2137, 2132, 2131, 2138, 2140, 2141, 2137,
-     2135, 2138, 2139,   47, 2139, 2143, 2141, 2142, 2142, 2144,
-     2144, 2146, 2136, 2148, 2141, 2140, 2147, 2143, 2145, 2145,
-
-     2146, 2147, 2151, 2150, 2151, 2152, 2154, 2155, 2153, 2156,
-     2158, 2148, 2150, 2153, 2153, 2150, 2155, 2162, 2154, 2159,
-     2160, 2156, 2158, 2163, 2159, 2160, 2152, 2164, 2165, 2165,
-     2162, 2166, 2167, 2168, 2170, 2173, 2164, 2169, 2171, 2172,
-     2173, 2177, 2178, 2163, 2175, 2176,   18, 2178, 2186, 2166,
-     2167, 2168, 2171, 2169, 2172, 2179, 2175, 2176, 2180, 2170,
-     2179, 2177, 2183, 2185, 2187, 2188, 2189, 2180, 2183, 2185,
-     2194, 2186, 2202, 2190, 2191, 2191, 2192, 2193, 2193, 2187,
-     2195, 2183, 2190, 2188, 2197, 2192, 2196, 2198, 2194, 2197,
-     2196, 2189, 2200, 2206, 2202, 2201, 2206, 2203, 2204, 2195,
-
-     2198, 2201, 2203, 2203, 2204, 2207, 2205, 2208, 2211, 2211,
-     2213, 2200, 2205, 2207, 2212, 2212, 2214, 2214, 2216, 2213,
-     2215, 2215, 2218, 2217, 2220, 2220, 2219, 2208, 2218, 2212,
-     2216, 2219, 2221, 2221, 2222, 2226, 2223, 2228, 2230, 2222,
-     2212, 2217, 2223, 2225, 2227, 2231, 2232, 2225, 2227, 2233,
-     2231, 2234, 2235, 2237, 2238, 2226, 2234, 2228, 2236, 2238,
-     2239, 2240, 2240, 2230, 2233, 2242, 2244, 2241, 2245, 2232,
-     2235, 2241, 2243, 2237, 2236, 2246, 2247, 2243, 2248, 2250,
-     2242, 2249, 2239, 2248, 2251, 2251, 2245, 2246, 2253, 2254,
-     2255, 2256, 2244, 2257, 2249, 2247, 2253, 2250, 2258, 2259,
-
-     2260, 2261, 2262, 2268, 2265, 2263, 2269, 2267, 2254, 2255,
-     2256, 2263, 2269, 2261, 2271,   17, 2257, 2268, 2259, 2265,
-     2267, 2260, 2258, 2262, 2270, 2273, 2270, 2272, 2272, 2274,
-     2273, 2275, 2274, 2276, 2271, 2277, 2278, 2278, 2279, 2279,
-     2280, 2282, 2280, 2285, 2275, 2281, 2281, 2276, 2277, 2283,
-     2284, 2284, 2285, 2286, 2286, 2285, 2282, 2287, 2287, 2288,
-     2290, 2291, 2283, 2292, 2288, 2290, 2293, 2294, 2294, 2295,
-     2295, 2296, 2297, 2297, 2298, 2299, 2299, 2301, 2293, 2300,
-     2305, 2291, 2301, 2292, 2302, 2302, 2303, 2303, 2304, 2305,
-     2296, 2306, 2298, 2307, 2300, 2308, 2310, 2311, 2311, 2312,
-
-        0, 2310, 2304, 2313, 2313, 2314, 2315, 2307, 2306, 2316,
-     2317, 2315, 2320, 2317, 2308, 2316, 2318, 2318, 2312, 2319,
-     2319, 2321, 2322, 2314, 2322, 2324, 2325, 2326, 2326, 2328,
-     2329, 2320, 2318, 2330, 2331, 2333, 2321, 2335, 2331, 2334,
-     2324, 2332, 2332, 2336, 2334, 2325, 2338, 2338, 2330, 2328,
-     2339, 2341, 2335, 2329, 2333, 2340, 2342, 2343, 2336, 2344,
-     2345, 2345, 2340, 2346, 2347, 2341, 2347, 2350, 2348, 2351,
-     2339, 2348, 2346, 2350, 2342, 2343, 2354, 2352, 2353, 2355,
-     2358, 2351, 2352, 2353, 2356, 2344, 2348, 2363, 2348, 2357,
-     2360, 2361, 2355, 2362, 2357, 2360, 2361, 2364, 2362, 2366,
-
-     2367, 2354, 2363, 2364, 2365, 2356, 2358, 2368, 2371, 2369,
-     2365, 2370, 2372, 2368, 2369, 2367, 2370, 2374, 2373, 2375,
-     2366, 2373, 2376, 2377, 2378, 2372, 2374, 2383, 2375, 2379,
-     2380, 2376, 2377, 2371, 2385, 2379, 2380, 2381, 2378, 2386,
-     2388, 2381, 2387, 2387, 2389, 2389, 2388, 2383, 2386, 2390,
-     2391, 2391, 2392, 2389, 2385, 2393, 2395, 2392, 2390, 2398,
-     2396, 2397, 2397, 2402, 2399, 2403, 2401, 2406, 2408, 2404,
-     2406, 2409, 2395, 2399, 2398, 2393, 2396, 2393, 2401, 2402,
-     2403, 2404, 2407, 2409, 2410, 2410, 2420, 2407, 2408, 2411,
-     2411, 2413, 2413, 2414, 2415, 2416, 2414, 2417, 2418, 2415,
-
-     2420, 2416, 2422, 2417, 2419, 2419, 2423, 2418, 2421, 2421,
-     2424, 2425, 2425, 2426, 2422, 2431, 2427, 2428, 2431, 2426,
-     2423, 2430, 2428, 2432, 2432, 2430, 2433, 2434, 2435, 2424,
-     2427, 2433, 2436, 2439, 2437, 2442, 2434, 2435, 2437, 2438,
-     2438, 2443, 2441, 2444, 2445, 2446, 2439, 2441, 2447, 2446,
-     2453, 2448, 2436, 2449, 2450, 2442, 2448, 2452, 2445, 2449,
-     2450, 2443, 2454, 2444, 2451, 2451, 2455, 2456, 2447, 2453,
-     2459, 2455, 2457, 2457, 2460, 2452, 2463, 2466, 2461, 2462,
-     2468, 2454, 2459, 2461, 2463, 2462, 2466, 2464, 2456, 2464,
-     2460, 2469, 2469, 2470, 2468, 2471, 2470, 2472, 2472, 2475,
-
-     2476, 2477, 2479, 2475, 2478, 2478, 2476, 2482, 2482, 2484,
-     2486, 2479, 2487, 2477, 2490, 2491, 2492, 2493, 2494, 2490,
-     2500, 2471, 2493, 2494, 2486, 2495, 2495, 2484, 2487, 2497,
-     2497, 2502, 2499, 2501, 2501, 2503, 2506, 2492, 2499, 2504,
-     2500, 2491, 2507, 2512, 2504, 2507, 2508, 2502, 2509, 2510,
-     2510, 2514, 2512, 2513, 2519, 2506, 2515, 2503, 2508, 2513,
-     2509, 2517, 2517, 2518, 2520, 2524, 2518, 2522, 2522, 2514,
-     2524, 2515, 2525, 2519, 2523, 2523, 2526, 2528, 2527, 2528,
-     2529, 2530, 2520, 2527, 2531, 2526, 2532, 2533, 2534,    0,
-     2525, 2532, 2535, 2541, 2529, 2530, 2531, 2535, 2536, 2536,
-
-     2537, 2537, 2538, 2538, 2539, 2539, 2540, 2533, 2534, 2542,
-     2546, 2541, 2543, 2543, 2542, 2544, 2544, 2547, 2540, 2545,
-     2545, 2548, 2546, 2549, 2550, 2551, 2552, 2552, 2553, 2554,
-     2554, 2555, 2555, 2548, 2560, 2556, 2557, 2547, 2559, 2561,
-     2562, 2551, 2558, 2549, 2561, 2550, 2556, 2553, 2557, 2558,
-     2559, 2563, 2564, 2564, 2560, 2565, 2566, 2566, 2567, 2568,
-     2562, 2569, 2570, 2571, 2565, 2572, 2573, 2576, 2573, 2574,
-     2577, 2563, 2575, 2575, 2569, 2578, 2576, 2571, 2580, 2568,
-     2581, 2574, 2582, 2584, 2567, 2577, 2570, 2572, 2583, 2585,
-     2578, 2583,    0, 2586, 2585, 2594, 2580, 2584, 2586, 2587,
-
-     2587, 2595, 2581, 2588, 2588, 2582, 2589, 2589, 2591, 2591,
-     2593, 2593, 2595, 2594, 2596, 2597, 2599, 2600, 2601, 2602,
-     2603, 2604, 2605, 2606, 2605, 2613, 2607, 2608, 2612, 2603,
-     2597, 2609, 2609, 2596,    0, 2600, 2599, 2611, 2611, 2602,
-     2601, 2604, 2612, 2606, 2607, 2608, 2614, 2613, 2615, 2615,
-     2617, 2618, 2618, 2619, 2620, 2614, 2621, 2622, 2623, 2617,
-     2624, 2625, 2628, 2627, 2622, 2626, 2629, 2629, 2631, 2628,
-        0, 2619, 2620, 2623, 2621, 2630, 2630, 2632, 2624, 2625,
-     2633, 2626, 2627, 2635, 2635, 2637, 2633, 2638, 2631, 2636,
-     2636, 2637, 2639, 2640, 2641, 2632, 2642, 2643, 2644, 2645,
-
-     2646, 2642, 2646, 2651, 2645, 2638, 2656, 2639, 2641, 2647,
-     2647, 2648, 2640, 2648, 2649, 2649, 2653, 2643, 2644, 2654,
-     2655, 2659, 2651, 2657, 2658, 2653, 2656, 2660, 2657, 2658,
-     2663, 2664, 2655, 2665, 2666, 2666, 2665, 2667, 2654, 2668,
-     2670, 2659, 2669, 2669, 2671, 2674, 2660, 2676, 2676, 2664,
-     2663, 2670, 2667, 2677, 2672, 2679, 2680, 2668, 2672, 2671,
-     2674, 2675, 2681, 2682, 2682, 2675, 2677, 2684, 2685, 2686,
-     2679, 2687, 2687, 2686, 2688, 2691, 2680, 2685, 2690, 2684,
-     2689, 2689, 2681, 2690, 2691, 2692, 2693, 2694, 2695, 2695,
-     2700, 2700, 2701, 2688, 2702, 2702, 2703, 2704, 2693, 2705,
-
-     2710, 2692, 2706, 2711, 2707, 2750, 2708, 2694, 2750, 2703,
-     2704, 2706, 2705, 2707, 2701, 2708, 2709, 2709, 2711, 2716,
-     2710, 2713, 2713, 2717, 2716, 2718, 2719, 2720, 2717, 2721,
-     2723, 2719, 2722, 2733, 2725, 2720, 2729, 2727, 2723, 2718,
-     2728, 2722, 2727, 2730, 2730, 2728, 2731, 2731, 2721, 2725,
-     2732, 2729, 2733, 2734, 2734, 2732, 2735, 2736, 2737, 2738,
-     2739,    0, 2736, 2735, 2740, 2742, 2739, 2741, 2741, 2740,
-     2743, 2744, 2744, 2745, 2745, 2743, 2737, 2738, 2748, 2751,
-     2742, 2749, 2749, 2752, 2751, 2751, 2754, 2753, 2752, 2755,
-     2756, 2748, 2753, 2757, 2756, 2755, 2758, 2759, 2757, 2760,
-
-     2754, 2761, 2762, 2763, 2765, 2758, 2764, 2760, 2762, 2763,
-     2767, 2764, 2759, 2768, 2771, 2776, 2765, 2767, 2768, 2773,
-     2769, 2777, 2761, 2769, 2773, 2774, 2771, 2775, 2778, 2779,
-     2774, 2781, 2775, 2776, 2777, 2780, 2780, 2778, 2779, 2782,
-     2781, 2785, 2786, 2787, 2782, 2790, 2791, 2794, 2786, 2787,
-     2792, 2793, 2793, 2795, 2794, 2797, 2796, 2798, 2798, 2785,
-     2799, 2801, 2803, 2804, 2790, 2796, 2791, 2804, 2806, 2792,
-     2797, 2807, 2795, 2805, 2805, 2808, 2801, 2807, 2809, 2799,
-     2810, 2808, 2803, 2811, 2811, 2813, 2810, 2812, 2816, 2814,
-     2817, 2822, 2819, 2806, 2814, 2812, 2809, 2816, 2819, 2820,
-
-     2821, 2823, 2820, 2817, 2821, 2822, 2825, 2825, 2826, 2836,
-     2813, 2827, 2827, 2828, 2828, 2831, 2823, 2830, 2830, 2831,
-     2832, 2834, 2834, 2837, 2838, 2832, 2826, 2839, 2837, 2836,
-     2840, 2842, 2839, 2839, 2843, 2843, 2838, 2845, 2845, 2846,
-     2846, 2849, 2840, 2847, 2847, 2848, 2850, 2853, 2848, 2852,
-     2852, 2842, 2855, 2859, 2849, 2856, 2856, 2857, 2857, 2850,
-     2858, 2858, 2860, 2860, 2861, 2853, 2862, 2863, 2859, 2864,
-     2865, 2865, 2855, 2869, 2866, 2864, 2873, 2861, 2866, 2869,
-     2870, 2863, 2872, 2874, 2862, 2870, 2875, 2872, 2872, 2876,
-     2877, 2878, 2888, 2879, 2942, 2876, 2877, 2879, 2942, 2873,
-
-     2880, 2880, 2883, 2874, 2885, 2886, 2875, 2883, 2886, 2891,
-     2889, 2893, 2885, 2889, 2890, 2890, 2878, 2888, 2892, 2894,
-     2895, 2896, 2896, 2892, 2897, 2898, 2891, 2891, 2898, 2893,
-     2899, 2900, 2901, 2904, 2895, 2911, 2898, 2902, 2897, 2894,
-     2901, 2903, 2902, 2902, 2899, 2913, 2903, 2903, 2905, 2905,
-     2900, 2911, 2904, 2906, 2906, 2907, 2907, 2908, 2908, 2909,
-     2909, 2910, 2910, 2912, 2914, 2913, 2915, 2916, 2912, 2917,
-     2918, 2920, 2916, 2919, 2921, 2918, 2923, 2923, 2924, 2924,
-     2915, 2925, 2919, 2926, 2925, 2928, 2928, 2939, 2917, 2929,
-     2914, 2920, 2930, 2930, 2921, 2931, 2929, 2933, 2933, 2934,
-
-     2931, 2926, 2935, 2936, 2937, 2939, 2940, 2940, 2934, 2941,
-     2941, 2935, 2936, 2937, 2943, 2944, 2945, 2946, 2948, 2947,
-     2949, 2959, 2950, 2943, 2947, 2947, 2950, 2945, 2954, 2949,
-     2958, 2948, 2946, 2954, 2944, 2955, 2955, 2957, 2957, 2960,
-     2962, 2962, 2963, 2964, 2958, 2968, 2959, 2969, 2972, 2970,
-     2973, 2963, 2969, 2975, 2977, 2964, 2973, 2960, 2970, 2979,
-     2982, 2980, 2981, 2981, 2979, 2975, 2980, 2984, 2972, 2982,
-     2968, 2985, 2984, 2986, 2992, 2977, 2987, 2987, 2989, 2989,
-     2987, 2990, 2990, 2992, 2985, 2991, 2991, 2986, 2993, 2995,
-     2994, 2997, 3001, 2998, 2995, 2999, 3003, 2997, 2998, 3002,
-
-     2999, 3000, 3000, 3005, 3007, 3008, 3008, 3004, 2993, 2994,
-     3001, 3002, 3004, 3006, 3010, 3011, 3014, 3003, 3010, 3006,
-     3011, 3005, 3012, 3013, 3013, 3015, 3016, 3012, 3018, 3007,
-     3020, 3020, 3022, 3023, 3024, 3014, 3028, 3027, 3025, 3030,
-     3015, 3016, 3025, 3026, 3030, 3022, 3023, 3024, 3018, 3029,
-     3031, 3033, 3026, 3027, 3034, 3028, 3035, 3029, 3032, 3032,
-     3033, 3036, 3036, 3043, 3037, 3040, 3040, 3041, 3041, 3047,
-     3031, 3048, 3034, 3045, 3045, 3049, 3050, 3054, 3054, 3055,
-     3049, 3051, 3035, 3037, 3043, 3047, 3051, 3048, 3056, 3057,
-     3058, 3059, 3050, 3061, 3061, 3057, 3063, 3056, 3062, 3055,
-
-     3064, 3064, 3067, 3068, 3071, 3074, 3069, 3072, 3072, 3068,
-     3059, 3069, 3062, 3058, 3075, 3063, 3073, 3073, 3076, 3076,
-     3074, 3077, 3067, 3079, 3078, 3080, 3071, 3081, 3082, 3083,
-     3085, 3080, 3077, 3078, 3075, 3084, 3084, 3093, 3076, 3086,
-     3082, 3087, 3086, 3079, 3087, 3085, 3081, 3088, 3088, 3083,
-     3092, 3098, 3094, 3095, 3095, 3097, 3096, 3093, 3094, 3096,
-     3100, 3097, 3092, 3101, 3101, 3100, 3102, 3103, 3104, 3098,
-     3105, 3102, 3106, 3106, 3104, 3109, 3110, 3108, 3111, 3112,
-     3112, 3113, 3114, 3115, 3117, 3117, 3103, 3105, 3105, 3108,
-        0, 3111, 3115, 3109, 3118, 3118, 3119, 3119, 3114, 3120,
-
-     3113, 3110, 3121, 3122, 3120, 3123, 3123, 3127, 3122, 3124,
-     3124, 3125, 3125, 3126, 3126, 3128, 3121, 3129, 3135, 3130,
-     3127, 3132, 3132, 3129, 3130, 3137, 3138, 3139, 3140, 3141,
-     3141, 3143, 3143, 3144, 3145, 3146, 3147, 3135, 3149, 3149,
-     3153, 3128, 3148, 3150, 3150, 3154, 3139, 3137, 3138, 3146,
-     3140, 3148, 3152, 3145, 3158, 3164, 3147, 3155, 3152, 3144,
-     3153, 3164, 3155, 3163, 3154, 3159, 3159, 3161, 3161, 3162,
-     3165, 3166, 3167, 3167, 3162, 3158, 3168, 3163, 3171, 3166,
-     3170, 3168, 3165, 3171, 3170, 3172, 3173, 3174, 3175, 3176,
-     3178, 3179, 3174, 3180, 3181, 3176, 3184, 3183, 3178, 3185,
-
-     3175, 3186, 3187, 3189, 3190, 3172, 3173, 3187, 3189, 3194,
-     3179,    0, 3184, 3180, 3181, 3183, 3185, 3185, 3192, 3191,
-     3196, 3208, 3186, 3192, 3190, 3191, 3208, 3195, 3209, 3194,
-     3195, 3200, 3200, 3196, 3201, 3201, 3202, 3207, 3207,    0,
-     3202, 3210, 3210, 3212, 3212, 3213, 3213, 3209, 3213, 3214,
-     3214, 3220, 3214, 3215, 3215, 3216, 3216, 3217, 3216, 3219,
-     3220, 3217, 3221, 3221, 3219, 3222, 3223, 3226, 3227, 3228,
-     3229, 3229, 3230, 3233, 3228, 3234, 3236, 3235, 3237, 3239,
-     3223, 3235, 3234, 3222, 3240, 3236, 3242, 3226, 3227, 3240,
-     3241, 3241, 3230, 3237, 3246, 3242, 3251, 3239, 3233, 3243,
-
-     3243, 3244, 3244, 3245, 3245, 3247, 3248, 3249, 3250, 3246,
-     3247, 3252, 3249, 3249, 3250, 3248, 3253, 3254, 3248, 3255,
-     3256, 3251, 3254, 3258, 3255, 3259, 3252, 3257, 3257, 3258,
-     3262, 3259, 3260, 3260, 3261, 3261, 3263, 3253,    0, 3256,
-     3269, 3263, 3266, 3266, 3281, 3262, 3268, 3268,    0, 3269,
-     3272, 3272, 3273, 3273, 3274, 3274, 3275, 3275, 3277, 3277,
-     3278, 3278, 3279, 3279, 3280, 3280, 3283, 3284, 3284, 3285,
-     3281, 3286, 3287, 3289, 3289, 3283, 3290, 3293, 3285, 3291,
-     3291, 3292, 3294, 3286, 3295, 3295, 3296, 3296, 3298, 3302,
-     3293, 3304, 3287, 3306, 3294, 3290, 3292, 3299, 3299, 3303,
-
-     3305, 3305, 3303, 3298, 3309, 3308, 3310, 3302, 3308, 3311,
-     3309, 3306, 3312, 3314, 3311, 3313, 3316, 3304, 3317, 3320,
-     3310, 3321, 3316, 3320, 3324, 3333, 3336, 3317, 3342, 3314,
-     3333, 3312, 3334, 3313, 3345, 3334, 3321, 3337, 3337, 3336,
-     3338, 3338, 3340, 3340, 3343, 3344, 3347, 3349, 3350, 3344,
-     3324, 3342, 3351, 3343, 3345, 3355, 3352, 3351, 3352, 3350,
-     3347, 3353, 3354, 3354, 3356, 3358, 3357, 3359, 3355, 3361,
-     3349, 3360, 3363, 3362, 3364, 3365, 3353, 3363, 3361, 3367,
-     3365, 3358, 3372, 3356, 3357, 3362, 3360, 3366, 3366, 3368,
-     3373, 3375, 3359, 3380, 3368, 3364, 3372, 3374, 3374, 3367,
-
-     3375, 3376, 3376, 3377, 3377, 3378, 3378, 3379, 3379, 3381,
-     3373, 3382, 3380, 3383, 3382, 3384, 3385, 3386, 3383, 3387,
-     3384, 3388, 3389, 3390, 3392, 3387, 3391, 3391, 3390, 3381,
-     3393, 3393, 3386, 3396, 3389, 3388, 3395, 3395, 3397, 3398,
-     3398, 3385, 3402, 3400, 3392, 3405, 3405, 3407, 3396, 3406,
-     3406, 3408, 3411, 3409, 3412, 3407, 3410, 3397, 3400, 3409,
-     3402, 3413, 3410, 3414, 3415, 3415, 3411, 3412, 3414, 3420,
-     3408, 3417, 3417, 3421, 3423, 3424, 3426, 3427, 3428, 3424,
-     3413, 3429, 3427, 3431, 3432, 3430, 3433, 3437, 3423, 3432,
-     3420, 3433, 3438, 3421, 3429, 3439, 3426, 3428, 3430, 3434,
-
-     3434, 3441, 3431, 3440, 3440, 3442, 3441, 3437, 3443, 3443,
-     3438, 3442, 3444, 3445, 3439, 3446, 3447, 3444, 3445, 3448,
-     3446, 3450, 3450, 3451, 3455, 3448, 3452, 3452, 3451, 3454,
-     3456, 3457, 3458, 3454, 3459, 3447, 3460, 3456, 3468, 3461,
-     3459, 3463, 3463, 3455, 3465, 3465, 3469, 3466, 3467, 3470,
-     3457, 3458, 3461, 3467, 3473, 3460, 3466, 3468, 3472, 3466,
-     3471, 3471, 3470, 3472, 3475, 3469, 3477, 3473, 3476, 3476,
-     3478, 3478, 3479, 3479, 3480, 3481, 3482, 3483, 3483, 3480,
-        0, 3484, 3481, 3486, 3486, 3477, 3484, 3485, 3489, 3485,
-     3475, 3487, 3488, 3491, 3494, 3482, 3490, 3498, 3487, 3488,
-
-     3496, 3490, 3493, 3493, 3497, 3496, 3499, 3489, 3503, 3497,
-     3500, 3500, 3491, 3494, 3502, 3502, 3498, 3504, 3505, 3505,
-     3506, 3506, 3507, 3509, 3509, 3499, 3511, 3503, 3517, 3507,
-     3510, 3510, 3513, 3511, 3516, 3518, 3504, 3513,    0, 3516,
-     3519, 3519, 3520, 3520,    0,    0,    0, 3517,    0,    0,
-        0,    0,    0,    0, 3518, 3524, 3524, 3524, 3524, 3524,
-     3524, 3524, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526,
-     3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527, 3527,
-     3527, 3527, 3527, 3528, 3528, 3528, 3528, 3528, 3528, 3528,
-     3529, 3529, 3529, 3529, 3529, 3529, 3529, 3530, 3530, 3530,
-
-     3530, 3530, 3530, 3530, 3532, 3532,    0, 3532, 3532, 3532,
-     3532, 3533, 3533,    0,    0,    0, 3533, 3533, 3534, 3534,
-        0,    0, 3534,    0, 3534, 3535,    0,    0,    0,    0,
-        0, 3535, 3536, 3536,    0,    0,    0, 3536, 3536, 3537,
-        0,    0,    0,    0,    0, 3537, 3538, 3538,    0, 3538,
-     3538, 3538, 3538, 3539,    0,    0,    0,    0,    0, 3539,
-     3540, 3540,    0,    0,    0, 3540, 3540, 3541, 3541,    0,
-     3541, 3541, 3541, 3541, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-
-     3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3523, 3523, 3523, 3523
+     1651, 1652, 1661, 1662, 1658, 1663, 1664, 1653, 1672, 1665,
+     1666, 1656, 1668, 1667, 1660, 1664, 1661, 1666, 1673, 1674,
+
+     1674, 1673, 1667, 1663, 1665, 1667, 1670, 1662, 1668, 1680,
+     1670, 1675, 1675, 1672, 1677, 1676, 1678, 1679, 1679, 1678,
+     1681, 1670, 1680, 1682, 1684, 1685, 1670, 1676, 1682, 1684,
+     1683, 1686, 1677, 1683, 1687, 1688, 1689, 1690, 1694, 1681,
+     1692, 1692, 1696, 1687, 1685, 1689, 1690, 1686, 1689, 1691,
+     1693, 1695, 1697, 1698, 1688, 1691, 1699, 1693, 1694, 1701,
+     1696, 1699, 1699, 1700, 1695, 1704, 1697, 1705, 1700, 1698,
+     1707, 1701, 1706, 1706, 1708, 1709, 1710, 1710, 1714, 1713,
+     1709, 1720, 1712, 1708, 1711, 1705, 1707, 1712, 1715, 1716,
+     1704, 1710, 1719, 1711, 1716, 1716, 1711, 1713, 1718, 1714,
+
+     1721, 1723, 1722, 1720, 1731, 1721, 1715, 1719, 1722, 1724,
+     1724, 1725, 1718, 1726, 1727, 1728, 1729, 1725, 1726, 1723,
+     1732, 1728, 1729, 1733, 1731, 1734, 1736, 1735, 1727, 1733,
+     1735, 1738, 1736, 1740, 1732, 1741, 1735, 1742, 1734, 1738,
+     1743, 1744, 1745,   63, 1746, 1749, 1744, 1748, 1743, 1747,
+     1750, 1745, 1740, 1754, 1741, 1756, 1742, 1746, 1747, 1749,
+     1748, 1751, 1751, 1752, 1750, 1753, 1754, 1755, 1755, 1752,
+     1757, 1753, 1758, 1759, 1759, 1756, 1760, 1762, 1761, 1763,
+     1764, 1766, 1766, 1751, 1761, 1767, 1768, 1769, 1757, 1760,
+     1768, 1758, 1769, 1770, 1773, 1763, 1771, 1772, 1764, 1762,
+
+     1774, 1771, 1772, 1773, 1776, 1767, 1778, 1777, 1779, 1778,
+     1780, 1781, 1781, 1770, 1782, 1776, 1777, 1783, 1784, 1787,
+     1779, 1785, 1785, 1774, 1786, 1780, 1787, 1788, 1789, 1783,
+     1791, 1792, 1794, 1782, 1795, 1793, 1796, 1784, 1786, 1788,
+     1789, 1793, 1796, 1801, 1794, 1797, 1797, 1798, 1801, 1791,
+     1798, 1792, 1795, 1799, 1799, 1802, 1803, 1804, 1804, 1805,
+     1808, 1806, 1803, 1806, 1802, 1807, 1809, 1810, 1807, 1811,
+     1812, 1805, 1813, 1814, 1815, 1812, 1816, 1813, 1817, 1819,
+     1808, 1818, 1814, 1817, 1820, 1810, 1815, 1811, 1809, 1820,
+     1818, 1816, 1821, 1822, 1823, 1823, 1820, 1821, 1824, 1819,
+
+     1825, 1827, 1829, 1818, 1824, 1828, 1830, 1831, 1822, 1831,
+     1836, 1832, 1833, 1833, 1834, 1834, 1835, 1835, 1829, 1839,
+     1827, 1825, 1837, 1837, 1828, 1832, 1830, 1832, 1838, 1838,
+     1836, 1840, 1841, 1842, 1842, 1843, 1844, 1847, 1845, 1843,
+     1839, 1845, 1844, 1847, 1848, 1849, 1851, 1852, 1854, 1850,
+     1852, 1849, 1840, 1841, 1850, 1853, 1853, 1857, 1855, 1856,
+     1856, 1858, 1848, 1855, 1859, 1860, 1861, 1861, 1854, 1859,
+     1860, 1851, 1857, 1862, 1863, 1864, 1865, 1866, 1862, 1867,
+     1863, 1869, 1858, 1872, 1868, 1873, 1871, 1864, 1864, 1864,
+     1868, 1871, 1871, 1876, 1864, 1866, 1865, 1872, 1875, 1867,
+
+     1873, 1869, 1874, 1878, 1874, 1877, 1879, 1880, 1876, 1875,
+     1882, 1877, 1878, 1881, 1881, 1883, 1883, 1884, 1885, 1886,
+     1887, 1887, 1888, 1888, 1889, 1893, 1879, 1897, 1880, 1892,
+     1892, 1894, 1898, 1885, 1896, 1899, 1882, 1884, 1898, 1901,
+     1894, 1886, 1902, 1896, 1889, 1900, 1900, 1903, 1897, 1904,
+     1893, 1899, 1905, 1907, 1903, 1906, 1906, 1902, 1904, 1908,
+     1901, 1910, 1913, 1911, 1912, 1914, 1918, 1910, 1911, 1923,
+     1912, 1915, 1914, 1928, 1916, 1908, 1916, 1915, 1905, 1907,
+     1919, 1922, 1913, 1920, 1920, 1918, 1919, 1921, 1924, 1923,
+     1922, 1925, 1921, 1926, 1927, 1930, 1926, 1929, 1929, 1928,
+
+     1931, 1930, 1932, 1925, 1933, 1934, 1931, 1924, 1936, 1934,
+     1937, 1938, 1927, 1939, 1939, 1940, 1938, 1943, 1941, 1933,
+     1944, 1947, 1932, 1946, 1944, 1934, 1945, 1945, 1936, 1946,
+     1947, 1949, 1937, 1941, 1940, 1949, 1943, 1948, 1948, 1950,
+     1951, 1951, 1952, 1953, 1955, 1954, 1956, 1957, 1958, 1955,
+     1950, 1960, 1959,   58, 1962, 1950, 1961, 1953, 1959, 1962,
+     1963, 1964, 1964, 1952, 1954, 1970, 1956, 1957, 1958, 1960,
+     1968, 1961, 1966, 1963, 1965, 1965, 1966, 1969, 1978, 1968,
+     1971, 1971, 1973, 1973, 1974, 1970, 1975, 1992, 1969, 1974,
+     1974, 1977, 1975, 1969, 1979, 1980, 1981, 1977, 1983, 1979,
+
+     1985, 1984, 1981, 1987, 1978, 1984, 1992, 1980, 1986, 1986,
+     1983, 1988, 1985, 1989, 1990, 1991, 1991, 1988, 1993, 1994,
+     1990, 1995, 1997, 1998, 1994, 1999, 2001, 2005, 1987, 2001,
+     1999, 2002, 2002, 1995, 1997, 1989, 2003, 2003, 1993, 2004,
+     2004, 2008, 1998, 2006, 2007, 2009, 2008, 2005, 2010, 2006,
+     2007, 2009, 2014, 2012, 2015, 2014, 2018, 2010, 2012, 2016,
+     2016, 2019, 2020, 2021, 2021, 2022, 2015, 2020, 2018, 2025,
+     2023, 2024, 2025, 2019, 2022, 2023, 2024, 2026, 2026, 2027,
+     2028, 2031, 2029, 2030, 2033, 2031, 2032, 2034, 2035, 2028,
+     2033, 2032, 2036, 2037, 2039, 2039, 2040, 2035, 2042, 2027,
+
+     2029, 2046, 2030, 2041, 2044, 2034, 2039, 2037, 2043, 2043,
+     2036, 2045, 2041, 2044, 2040, 2047, 2048, 2054, 2042, 2055,
+     2047, 2056, 2046, 2045, 2051, 2051, 2058, 2053, 2059, 2048,
+     2053, 2061, 2060, 2054, 2063, 2055, 2063, 2056, 2060, 2062,
+     2062, 2058, 2059, 2064, 2065, 2065, 2066, 2071, 2061, 2068,
+     2068, 2069, 2069, 2072, 2066, 2074, 2073, 2075, 2076, 2072,
+     2080, 2064, 2073, 2077, 2075, 2078, 2078, 2079, 2085, 2074,
+     2071, 2083, 2081, 2082, 2086, 2084, 2079, 2089, 2091, 2090,
+     2076, 2080, 2087, 2077, 2081, 2082, 2083, 2084, 2087, 2086,
+     2091, 2092, 2092, 2093, 2085, 2094, 2095, 2089, 2096, 2095,
+
+     2097, 2087, 2090, 2096, 2099, 2100, 2101, 2100, 2102, 2099,
+     2106, 2093, 2103, 2108, 2102, 2094, 2104, 2103, 2109, 2106,
+     2097, 2110, 2112, 2104, 2101, 2116, 2111, 2109, 2111, 2113,
+     2115, 2108, 2115, 2110, 2118, 2113, 2117, 2117, 2119, 2116,
+     2120, 2112, 2120, 2119, 2121, 2122, 2123, 2124, 2125, 2121,
+     2122, 2126,   57, 2127, 2128, 2131, 2130, 2126, 2127, 2129,
+     2118, 2130, 2130, 2131, 2123, 2124, 2133, 2128, 2125, 2134,
+     2138, 2129, 2135, 2135, 2136, 2136, 2137, 2140, 2139, 2141,
+     2142, 2141, 2140, 2134, 2139, 2133, 2143, 2144, 2144, 2145,
+     2138, 2137, 2146, 2146, 2143, 2147, 2147, 2148, 2142, 2149,
+
+     2150, 2145, 2143, 2152, 2149, 2153, 2148, 2153, 2154, 2156,
+     2157, 2155, 2152, 2158, 2160, 2152, 2155, 2155, 2150, 2157,
+     2164, 2156, 2161, 2162, 2165, 2158, 2160, 2161, 2162, 2154,
+     2166, 2167, 2167, 2164, 2168, 2169, 2170, 2172, 2175, 2166,
+     2171, 2173, 2174, 2175, 2165, 2179, 2177, 2178, 2188, 2191,
+       52, 2182, 2168, 2169, 2170, 2173, 2171, 2174, 2177, 2178,
+     2182, 2180, 2172, 2181, 2185, 2179, 2180, 2187, 2181, 2189,
+     2185, 2188, 2190, 2187, 2191, 2196, 2192, 2193, 2193, 2194,
+     2195, 2195, 2197, 2185, 2189, 2192, 2200, 2198, 2194, 2199,
+     2190, 2198, 2202, 2196, 2199, 2204, 2203,   47, 2205, 2200,
+
+     2206, 2197, 2203, 2205, 2205, 2208, 2206, 2207, 2208, 2210,
+     2209, 2202, 2215, 2207, 2213, 2213, 2218, 2204, 2209, 2214,
+     2214, 2215, 2216, 2216, 2217, 2217, 2219, 2220, 2218, 2210,
+     2221, 2222, 2222, 2220, 2214, 2221, 2223, 2223, 2224, 2228,
+     2225, 2230, 2232, 2224, 2219, 2214, 2225, 2227, 2229, 2233,
+     2234, 2227, 2229, 2235, 2233, 2236, 2237, 2239, 2240, 2228,
+     2236, 2230, 2238, 2240, 2241, 2242, 2242, 2232, 2235, 2244,
+     2246, 2243, 2247, 2234, 2237, 2243, 2245, 2239, 2238, 2248,
+     2249, 2245, 2250, 2252, 2244, 2251, 2241, 2250, 2253, 2253,
+     2247, 2248, 2255, 2256, 2257, 2258, 2246, 2259, 2251, 2249,
+
+     2255, 2252, 2260, 2261, 2262, 2263, 2264, 2270, 2267, 2265,
+     2271, 2269, 2256, 2257, 2258, 2265, 2271, 2263, 2273,   18,
+     2259, 2270, 2261, 2267, 2269, 2262, 2260, 2264, 2272, 2275,
+     2272, 2274, 2274, 2276, 2275, 2277, 2276, 2278, 2273, 2279,
+     2280, 2280, 2281, 2281, 2282, 2284, 2282, 2287, 2277, 2283,
+     2283, 2278, 2279, 2285, 2286, 2286, 2287, 2288, 2288, 2287,
+     2284, 2289, 2289, 2290, 2292, 2293, 2285, 2294, 2290, 2292,
+     2295, 2296, 2296, 2297, 2297, 2298, 2299, 2299, 2300, 2301,
+     2302, 2302, 2295, 2300, 2303, 2293, 2304, 2294, 2305, 2305,
+     2307, 2304, 2306, 2306, 2298, 2309, 2308, 2301, 2311, 2303,
+
+     2310, 2313, 2314, 2314, 2307, 2308, 2313, 2315, 2316, 2316,
+     2317, 2318, 2309, 2319, 2310, 2320, 2318, 2311, 2320, 2319,
+     2321, 2321, 2322, 2322, 2323, 2324, 2315, 2325, 2317, 2325,
+     2327, 2328, 2329, 2329, 2331, 2332, 2321, 2333, 2334, 2337,
+     2324, 2336, 2334, 2323, 2337, 2327, 2335, 2335, 2338, 2339,
+     2328, 2342, 2333, 2344, 2331, 2341, 2341, 2345, 2332, 2343,
+     2336, 2346, 2347, 2338, 2339, 2349, 2343, 2344, 2348, 2348,
+     2350, 2342, 2350, 2351, 2349, 2345, 2351, 2353, 2354, 2346,
+     2355, 2356, 2357, 2353, 2358, 2355, 2356, 2359, 2347, 2360,
+     2354, 2351, 2361, 2351, 2360, 2363, 2364, 2358, 2365, 2366,
+
+     2363, 2364, 2369, 2365, 2367, 2368, 2370, 2357, 2359, 2371,
+     2367, 2368, 2372, 2374, 2366, 2371, 2375, 2372, 2361, 2373,
+     2381, 2370, 2376, 2369, 2373, 2376, 2377, 2378, 2379, 2375,
+     2380, 2386, 2388, 2389, 2381, 2377, 2378, 2379, 2374, 2380,
+     2382, 2383, 2389, 2467, 2384, 2467, 2382, 2383, 2384, 2390,
+     2390, 2386, 2388, 2391, 2392, 2392, 2393, 2394, 2394, 2391,
+     2396, 2395, 2398, 2392, 2401, 2393, 2395, 2399, 2400, 2400,
+     2405, 2410, 2402, 2404, 2406, 2407, 2410, 2411, 2398, 2401,
+     2396, 2402, 2396, 2399, 2412, 2404, 2405, 2407, 2409, 2406,
+       17, 2409, 2413, 2413, 2414, 2414, 2412, 2411, 2416, 2416,
+
+     2417, 2418, 2419, 2417, 2420, 2421, 2418, 2423, 2419, 2426,
+     2420, 2422, 2422, 2425, 2421, 2424, 2424, 2427, 2428, 2428,
+     2429, 2423, 2431, 2426, 2430, 2425, 2429, 2431, 2433, 2439,
+     2434, 2437, 2433, 2434, 2435, 2435, 2427, 2436, 2430, 2438,
+     2437, 2440, 2436, 2441, 2441, 2440, 2442, 2444, 2438, 2439,
+     2445, 2446, 2444, 2447, 2448, 2450, 2449, 2451, 2452, 2442,
+     2449, 2453, 2451, 2455, 2452, 2454, 2454, 2453, 2448, 2456,
+     2445, 2446, 2457, 2447, 2458, 2450, 2459, 2460, 2460, 2458,
+     2462, 2455, 2463,    0, 2464, 2474, 2466, 2465, 2456, 2464,
+     2469, 2457, 2462, 2465, 2466, 2471, 2480, 2459, 2463, 2469,
+
+     2472, 2472, 2473, 2475, 2475, 2473, 2478, 2479, 2480, 2471,
+     2478, 2474, 2482, 2479, 2481, 2481, 2485, 2485, 2487, 2488,
+     2490, 2482, 2487, 2491, 2494, 2495, 2496, 2497, 2498, 2494,
+     2499, 2499, 2497, 2498, 2490, 2501, 2501, 2488, 2503, 2491,
+     2504, 2505, 2505, 2506, 2503, 2507, 2510, 2496, 2508, 2511,
+     2512, 2495, 2511, 2508, 2513, 2514, 2514, 2517, 2518, 2506,
+     2504, 2516, 2512, 2517, 2519, 2510, 2513, 2507, 2521, 2521,
+     2516, 2522, 2523, 2571, 2522, 2524, 2518, 2526, 2526, 2519,
+     2527, 2527, 2528, 2529, 2531, 2530, 2532, 2528, 2532, 2531,
+     2533, 2523, 2534, 2524, 2530, 2535, 2537, 2536, 2538, 2571,
+
+     2539, 2529, 2536, 2545, 2533, 2539, 2534, 2535, 2540, 2540,
+     2541, 2541, 2542, 2542, 2543, 2543, 2537, 2544, 2538, 2546,
+     2550, 2545, 2547, 2547, 2546, 2548, 2548, 2549, 2549, 2544,
+     2551, 2552, 2550, 2553, 2554, 2555, 2556, 2556, 2557, 2558,
+     2558, 2559, 2559, 2552, 2564, 2560, 2561, 2562, 2563, 2566,
+     2551, 2555, 2567, 2553, 2562, 2554, 2560, 2557, 2561, 2569,
+     2563, 2565, 2568, 2568, 2564, 2572, 2565, 2573, 2569, 2566,
+     2570, 2570, 2567, 2574, 2575, 2577, 2576, 2577, 2578, 2581,
+     2573, 2579, 2579, 2580, 2582, 2572, 2584, 2585, 2575, 2586,
+     2578, 2588, 2580, 2587, 2581, 2589, 2587, 2574, 2576, 2582,
+
+     2589, 2590, 2591, 2591, 2584, 2588, 2590, 2592, 2592, 2585,
+     2593, 2593, 2586, 2595, 2595, 2597, 2597, 2598, 2599, 2600,
+     2603, 2601, 2605, 2604, 2607, 2606, 2608, 2610, 2609, 2599,
+     2609, 2611, 2612, 2607, 2616, 2598, 2601, 2617, 2600,    0,
+     2603, 2604, 2613, 2613, 2605, 2606, 2608, 2610, 2616, 2611,
+     2612, 2615, 2615, 2618, 2619, 2619, 2621, 2622, 2622, 2617,
+     2623, 2624, 2618, 2625, 2626, 2621, 2628, 2627, 2629, 2630,
+     2631, 2626, 2635, 2632, 2633, 2633, 2634, 2634, 2623, 2624,
+     2632, 2625, 2627, 2636, 2628, 2630, 2629, 2637, 2642, 2631,
+     2639, 2639, 2635, 2637, 2640, 2640, 2641, 2643, 2644, 2645,
+
+     2646, 2636, 2641, 2647, 2648, 2646, 2642, 2655, 2650, 2649,
+     2650, 2661, 2643, 2645, 2649, 2651, 2651, 2644, 2652, 2658,
+     2652, 2653, 2653, 2647, 2648, 2657, 2655, 2659, 2658, 2660,
+     2657, 2661, 2662, 2663, 2664, 2669, 2665, 2662, 2663, 2668,
+     2670, 2660, 2672, 2670, 2671, 2671, 2659, 2673, 2674, 2674,
+     2675, 2676, 2677, 2669, 2664, 2665, 2677, 2672, 2679, 2668,
+     2680, 2675, 2681, 2681, 2680, 2673, 2676, 2682, 2684, 2685,
+     2686, 2687, 2687, 2679, 2689, 2690, 2693, 2691, 2692, 2692,
+     2682, 2691, 2697, 2684, 2690, 2696, 2689, 2694, 2694, 2685,
+     2686, 2695, 2698, 2699, 2696, 2693, 2695, 2706, 2697, 2700,
+
+     2700, 2705, 2705, 2708, 2698, 2707, 2707, 2709, 2710, 2711,
+     2714, 2714, 2715, 2699, 2712, 2713, 2708, 2723, 2711, 2706,
+     2709, 2710, 2716, 2712, 2713, 2718, 2718, 2726, 2721, 2722,
+     2724, 2723, 2715, 2721, 2722, 2724, 2725, 2716, 2727, 2730,
+     2728,    0, 2734, 2738, 2725, 2732, 2726, 2727, 2728, 2742,
+     2732, 2733, 2735, 2735, 2730, 2737, 2733, 2734, 2736, 2736,
+     2737, 2740, 2738, 2739, 2739, 2741, 2743, 2742, 2740, 2744,
+     2741, 2745, 2746, 2746, 2747, 2744, 2745, 2748, 2749, 2749,
+     2750, 2750, 2748, 2753, 2743, 2754, 2754, 2755, 2756, 2747,
+     2755, 2759, 2757, 2756, 2756, 2758, 2753, 2757, 2760, 2761,
+
+     2758, 2762, 2763, 2761, 2760, 2759, 2762, 2764, 2765, 2766,
+     2769, 2763, 2767, 2768, 2770, 2769, 2765, 2772, 2767, 2768,
+     2773, 2776, 2764, 2781, 2772, 2773, 2770, 2778, 2774, 2779,
+     2766, 2774, 2778, 2776, 2779, 2780, 2782, 2783, 2784, 2786,
+     2780, 2781, 2785, 2785, 2790, 2787, 2783, 2784, 2786, 2782,
+     2787, 2791, 2792, 2795, 2796, 2801, 2797, 2791, 2792, 2798,
+     2798, 2799, 2790, 2800, 2801, 2802, 2803, 2803, 2799, 2804,
+     2806, 2808, 2795, 2812, 2796, 2797, 2809, 2809, 2813, 2810,
+     2802, 2815, 2800, 2810, 2813, 2806, 2811, 2811, 2804, 2814,
+     2816, 2808, 2817, 2817, 2818, 2814, 2816, 2819, 2812, 2815,
+
+     2820, 2822, 2818, 2823, 2826, 2820, 2825, 2826, 2829, 2827,
+     2822, 2828, 2825, 2827, 2831, 2831, 2823, 2832, 2833, 2833,
+     2834, 2834, 2819, 2829, 2837, 2828, 2836, 2836, 2837, 2838,
+     2840, 2840, 2842, 2843, 2838, 2832, 2844, 2845, 2843, 2846,
+     2848, 2859, 2845, 2845, 2849, 2849, 2851, 2851, 2844, 2852,
+     2852, 2846, 2842, 2853, 2853, 2854, 2855, 2856, 2854, 2859,
+     2848, 2858, 2858, 2861, 2862, 2862, 2863, 2863, 2867, 2855,
+     2856, 2864, 2864, 2865, 2866, 2866, 2868, 2869, 2870, 2871,
+     2871, 2867, 2872, 2861, 2870, 2876, 2872, 2875, 2865, 2879,
+     2876, 2869, 2878, 2875, 2868, 2880, 2881, 2878, 2878, 2882,
+
+     2883, 2884, 2891, 2885, 2894, 2882, 2883, 2885, 2886, 2886,
+     2891, 2892, 2879, 2889, 2892, 2880, 2881, 2895, 2889, 2897,
+     2895, 2896, 2896, 2898, 2899, 2900, 2884, 2901, 2898, 2894,
+     2902, 2902, 2903, 2905, 2906, 2953, 2897, 2897, 2910, 2925,
+     2904, 2901, 2899, 2904, 2907, 2900, 2903, 2905, 2925, 2908,
+     2953, 2904, 2907, 2906, 2908, 2908, 2909, 2910, 2911, 2911,
+     2917, 2909, 2909, 2912, 2912, 2913, 2913, 2914, 2914, 2915,
+     2915, 2916, 2916, 2918, 2919, 2920, 2917, 2921, 2918, 2922,
+     2923, 2924, 2926, 2927, 2922,    0, 2924, 2929, 2929, 2930,
+     2930, 2921, 2931, 2932, 2919, 2931, 2934, 2934, 2935, 2923,
+
+     2946, 2920, 2926, 2927, 2938, 2935, 2936, 2936, 2941, 2938,
+     2942, 2932, 2940, 2940, 2943, 2944, 2951, 2941, 2946, 2942,
+     2947, 2947, 2952, 2943, 2944, 2948, 2948, 2949, 2950, 2955,
+     2966, 2949, 2956, 2952, 2954, 2951, 2967, 2950, 2965, 2954,
+     2954, 2956, 2955, 2957, 2961, 2962, 2962, 2957, 2971, 2961,
+     2964, 2964, 2965, 2970, 2967, 2966, 2969, 2969, 2975, 2976,
+     2971, 2977, 2970, 2980, 2976, 2979, 2982, 2984, 2986, 2980,
+     2977, 2987, 2989, 2986, 2988, 2988, 2987, 2991, 2982, 2992,
+     2993, 2989, 2991, 2975, 2999, 2979, 2994, 2994, 2984, 3000,
+     2994, 3001, 2992, 2999, 2993, 2996, 2996, 2997, 2997, 2998,
+
+     2998, 3002, 3004, 3007, 3007, 3008, 3002, 3005, 3004, 3000,
+     3001, 3006, 3005, 3009, 3010, 3011, 3006, 3014, 3012, 3018,
+     3011, 3013, 3017, 3008, 3018, 3009, 3017, 3013, 3015, 3015,
+     3020, 3020, 3019, 3021, 3022, 3010, 3012, 3019, 3023, 3025,
+     3027, 3027, 3014, 3029, 3030, 3031, 3032, 3034, 3035, 3022,
+     3032, 3033, 3021, 3023, 3036, 3038, 3029, 3030, 3031, 3025,
+     3033, 3037, 3036, 3034, 3039, 3039, 3037, 3035, 3040, 3041,
+     3042, 3043, 3043, 3044, 3050, 3038,    0, 3040, 3047, 3047,
+     3048, 3048, 3052, 3052, 3054, 3055, 3056, 3041, 3057, 3058,
+     3062, 3056, 3044, 3063, 3058, 3050, 3042, 3061, 3061, 3064,
+
+     3054, 3055, 3063, 3065, 3057, 3064, 3066, 3068, 3068, 3069,
+     3062, 3070, 3071, 3071, 3074, 3075, 3078, 3076, 3079, 3079,
+     3081, 3075, 3076, 3069, 3082, 3066, 3065, 3080, 3080, 3084,
+     3070, 3083, 3083, 3085, 3074, 3081, 3086, 3087, 3078, 3088,
+     3084, 3089, 3085, 3087, 3082, 3090, 3091, 3091, 3092, 3093,
+     3099, 3083, 3093, 3089, 3094, 3100, 3086, 3094, 3088, 3095,
+     3095, 3101, 3099, 3092, 3105, 3090, 3104, 3101, 3102, 3102,
+     3103, 3107, 3104, 3103, 3109, 3100, 3107, 3108, 3108, 3109,
+     3110, 3111, 3105, 3112, 3113, 3113, 3115, 3111, 3116, 3117,
+     3118, 3119, 3119, 3120, 3121, 3122, 3124, 3124, 3115, 3110,
+
+     3112, 3112, 3155, 3118, 3122, 3128, 3116, 3125, 3125, 3135,
+     3121, 3155, 3120, 3127, 3117, 3126, 3126, 3129, 3127, 3128,
+     3130, 3130, 3129, 3131, 3131, 3132, 3132, 3133, 3133, 3134,
+     3136, 3142, 3137, 3139, 3139, 3135, 3136, 3137, 3144, 3145,
+     3146, 3147, 3134, 3148, 3148, 3150, 3150, 3151, 3152, 3154,
+     3142, 3153, 3156, 3156, 3157, 3157, 3159, 3160, 3165, 3146,
+     3144, 3145, 3159, 3147, 3161, 3153, 3162, 3152,    0, 3154,
+     3170, 3162, 3171, 3151, 3166, 3166, 3172, 3160, 3171, 3165,
+     3168, 3168, 3169, 3161, 3170, 3173, 3175, 3169, 3172, 3174,
+     3174, 3175, 3177, 3173, 3178, 3179, 3177, 3180, 3181, 3178,
+
+     3182, 3183, 3185, 3181, 3186, 3187, 3188, 3183, 3191, 3190,
+     3185, 3192, 3182, 3193, 3194, 3179, 3196, 3180, 3197, 3194,
+     3201, 3196, 3203, 3186, 3191, 3187, 3188, 3190, 3192, 3192,
+     3198,    0, 3199, 3216, 3193, 3203, 3198, 3199, 3197, 3202,
+     3201,    0, 3202, 3207, 3207, 3208, 3208, 3209, 3214, 3214,
+     3215, 3209, 3216, 3217, 3217, 3215, 3219, 3219, 3220, 3220,
+     3224, 3220, 3221, 3221, 3224, 3221, 3222, 3222, 3223, 3223,
+     3226, 3223, 3227, 3228, 3228, 3226, 3229, 3230, 3233, 3234,
+     3235, 3227, 3236, 3236, 3237, 3235, 3240, 3243, 3241, 3242,
+     3244, 3230, 3246, 3242, 3229, 3241, 3243, 3247, 3233, 3234,
+
+     3248, 3248, 3247, 3249, 3237, 3244, 3250, 3250, 3251, 3251,
+     3246, 3240, 3249, 3252, 3252, 3253, 3254, 3255, 3256, 3257,
+     3258, 3254, 3259, 3256, 3256, 3257, 3255, 3260, 3261, 3255,
+     3253, 3262, 3263, 3261, 3264, 3264, 3262, 3259, 3265, 3269,
+     3266, 3267, 3267,    0, 3265, 3258, 3266, 3270, 3260, 3268,
+     3268, 3263, 3270, 3276, 3269, 3273, 3273, 3275, 3275, 3279,
+     3279, 3288, 3276, 3280, 3280, 3281, 3281, 3282, 3282, 3284,
+     3284, 3285, 3285, 3286, 3286, 3287, 3287, 3290, 3291, 3291,
+     3292, 3293, 3294, 3296, 3296, 3297, 3290, 3288, 3299, 3292,
+     3298, 3298, 3300, 3293, 3301, 3302, 3302, 3303, 3303, 3305,
+
+     3306, 3306, 3294, 3299, 3297, 3300, 3301, 3309, 3310, 3311,
+     3313, 3310, 3312, 3312, 3305, 3315, 3316, 3317, 3315, 3318,
+     3319, 3321, 3316, 3320, 3318, 3309, 3323, 3324, 3313, 3327,
+     3328, 3317, 3323, 3327, 3331, 3311, 3324, 3321, 3340, 3319,
+     3343, 3320, 3349, 3340, 3341, 3328, 3352, 3341, 3344, 3344,
+     3345, 3345, 3350, 3343, 3347, 3347, 3354, 3356, 3351, 3358,
+     3331, 3350, 3351, 3357, 3358, 3349, 3352, 3359, 3360, 3359,
+     3354, 3361, 3361, 3362, 3357, 3363, 3365, 3364, 3366, 3368,
+     3356, 3367, 3370, 3360, 3371, 3369, 3362, 3370, 3368, 3373,
+     3373, 3374, 3365, 3372, 3363, 3364, 3367, 3369, 3372, 3375,
+
+     3379, 3380, 3388, 3366, 3375, 3371, 3381, 3381, 3382, 3383,
+     3383, 3374, 3384, 3384, 3379, 3385, 3385, 3382, 3386, 3386,
+     3387, 3380, 3388, 3389, 3390, 3391, 3389, 3392, 3393, 3390,
+     3391, 3394, 3395, 3396, 3399, 3397, 3403, 3394, 3404, 3387,
+     3397, 3398, 3398, 3393, 3407, 3396, 3395, 3400, 3400, 3402,
+     3402, 3403, 3392, 3409, 3399, 3405, 3405, 3404, 3414, 3407,
+     3412, 3412, 3413, 3413, 3415, 3418, 3414, 3416, 3417, 3419,
+     3420, 3409, 3421, 3416, 3417, 3422, 3422, 3421, 3427, 3418,
+     3424, 3424, 3419, 3415, 3428, 3433, 3430, 3431, 3434, 3420,
+     3435, 3431, 3438, 3434, 3436, 3437, 3439, 3440, 3444, 3427,
+
+     3430, 3439, 3440, 3445, 3428, 3433, 3446, 3436, 3437, 3435,
+     3449, 3438, 3441, 3441, 3447, 3447, 3449, 3448, 3444, 3450,
+     3450, 3445, 3448, 3451, 3452, 3446, 3453, 3454, 3451, 3452,
+     3455, 3453, 3457, 3457, 3458, 3462, 3455, 3459, 3459, 3458,
+     3461, 3463, 3464, 3465, 3461, 3466, 3454, 3467, 3463, 3475,
+     3468, 3466, 3470, 3470, 3462, 3472, 3472, 3476, 3473, 3474,
+     3477, 3464, 3465, 3468, 3474, 3480, 3467, 3473, 3475, 3479,
+     3473, 3478, 3478, 3477, 3479, 3482, 3476, 3484, 3480, 3483,
+     3483, 3485, 3485, 3486, 3486, 3487, 3488, 3489, 3490, 3490,
+     3487,    0, 3491, 3488, 3493, 3493, 3484, 3491, 3492, 3496,
+
+     3492, 3482, 3494, 3495, 3498, 3501, 3489, 3497, 3505, 3494,
+     3495, 3503, 3497, 3500, 3500, 3504, 3503, 3506, 3496, 3510,
+     3504, 3507, 3507, 3498, 3501, 3509, 3509, 3505, 3511, 3512,
+     3512, 3513, 3513, 3514, 3516, 3516, 3506, 3518, 3510, 3524,
+     3514, 3517, 3517, 3520, 3518, 3523, 3525, 3511, 3520,    0,
+     3523, 3526, 3526, 3527, 3527,    0,    0,    0, 3524,    0,
+        0,    0,    0,    0,    0, 3525, 3531, 3531, 3531, 3531,
+     3531, 3531, 3531, 3532, 3532, 3532, 3532, 3532, 3532, 3532,
+     3533, 3533, 3533, 3533, 3533, 3533, 3533, 3534, 3534, 3534,
+     3534, 3534, 3534, 3534, 3535, 3535, 3535, 3535, 3535, 3535,
+
+     3535, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3537, 3537,
+     3537, 3537, 3537, 3537, 3537, 3539, 3539,    0, 3539, 3539,
+     3539, 3539, 3540, 3540,    0,    0,    0, 3540, 3540, 3541,
+     3541,    0,    0, 3541,    0, 3541, 3542,    0,    0,    0,
+        0,    0, 3542, 3543, 3543,    0,    0,    0, 3543, 3543,
+     3544,    0,    0,    0,    0,    0, 3544, 3545, 3545,    0,
+     3545, 3545, 3545, 3545, 3546,    0,    0,    0,    0,    0,
+     3546, 3547, 3547,    0,    0,    0, 3547, 3547, 3548, 3548,
+        0, 3548, 3548, 3548, 3548, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3530, 3530, 3530
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -3241,7 +3252,7 @@ static void config_start_include(const char* filename, int toplevel)
        cfg_parser->filename = nm;
        cfg_parser->line = 1;
        inc_toplevel = toplevel;
-       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, int toplevel)
@@ -3311,12 +3322,11 @@ 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 3317 "<stdout>"
 #define YY_NO_INPUT 1
 #line 191 "./util/configlexer.lex"
 #ifndef YY_NO_UNPUT
@@ -3325,9 +3335,8 @@ static void config_end_include(void)
 #ifndef YY_NO_INPUT
 #define YY_NO_INPUT 1
 #endif
-#line 3326 "<stdout>"
 
-#line 3328 "<stdout>"
+#line 3338 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -3350,36 +3359,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 );
+yy_size_t 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.
@@ -3387,41 +3396,33 @@ 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 );
-#endif
+extern int yywrap (void );
 #endif
-
-#ifndef YY_NO_UNPUT
-    
 #endif
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int );
+static void yy_flex_strncpy (char *,yyconst char *,int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * );
+static int yy_flex_strlen (yyconst 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
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
 #define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -3429,7 +3430,7 @@ static int input ( void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -3440,7 +3441,7 @@ static int input ( void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               int n; \
+               yy_size_t n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
@@ -3453,7 +3454,7 @@ static int input ( void );
        else \
                { \
                errno=0; \
-               while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
+               while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
                        { \
                        if( errno != EINTR) \
                                { \
@@ -3508,7 +3509,7 @@ extern int yylex (void);
 
 /* Code executed at the end of each rule. */
 #ifndef YY_BREAK
-#define YY_BREAK /*LINTED*/break;
+#define YY_BREAK break;
 #endif
 
 #define YY_RULE_SETUP \
@@ -3518,10 +3519,14 @@ extern int yylex (void);
  */
 YY_DECL
 {
-       yy_state_type yy_current_state;
-       char *yy_cp, *yy_bp;
-       int yy_act;
+       register yy_state_type yy_current_state;
+       register char *yy_cp, *yy_bp;
+       register int yy_act;
     
+#line 211 "./util/configlexer.lex"
+
+#line 3527 "<stdout>"
+
        if ( !(yy_init) )
                {
                (yy_init) = 1;
@@ -3542,23 +3547,18 @@ 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 211 "./util/configlexer.lex"
-
-#line 3552 "<stdout>"
-
-       while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
+       while ( 1 )             /* loops until end-of-file is reached */
                {
                (yy_more_len) = 0;
                if ( (yy_more_flag) )
                        {
-                       (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr));
+                       (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
                        (yy_more_flag) = 0;
                        }
                yy_cp = (yy_c_buf_p);
@@ -3575,7 +3575,7 @@ YY_DECL
 yy_match:
                do
                        {
-                       YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
                        if ( yy_accept[yy_current_state] )
                                {
                                (yy_last_accepting_state) = yy_current_state;
@@ -3584,13 +3584,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 >= 3524 )
-                                       yy_c = yy_meta[yy_c];
+                               if ( yy_current_state >= 3531 )
+                                       yy_c = yy_meta[(unsigned int) yy_c];
                                }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 6875 );
+               while ( yy_base[yy_current_state] != 6886 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -5259,40 +5259,45 @@ YY_RULE_SETUP
 { YDVAR(1, VAR_NSID ) }
        YY_BREAK
 case 327:
-/* rule 327 can match eol */
 YY_RULE_SETUP
 #line 552 "./util/configlexer.lex"
+{ YDVAR(2, VAR_LOCAL_DATA_DO_EDE) }
+       YY_BREAK
+case 328:
+/* rule 328 can match eol */
+YY_RULE_SETUP
+#line 553 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 328:
+case 329:
 YY_RULE_SETUP
-#line 555 "./util/configlexer.lex"
+#line 556 "./util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 556 "./util/configlexer.lex"
+#line 557 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 329:
+case 330:
 YY_RULE_SETUP
-#line 561 "./util/configlexer.lex"
+#line 562 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 330:
-/* rule 330 can match eol */
+case 331:
+/* rule 331 can match eol */
 YY_RULE_SETUP
-#line 562 "./util/configlexer.lex"
+#line 563 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end \""); 
                          cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 331:
+case 332:
 YY_RULE_SETUP
-#line 564 "./util/configlexer.lex"
+#line 565 "./util/configlexer.lex"
 {
         LEXOUT(("QE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -5305,34 +5310,34 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 332:
+case 333:
 YY_RULE_SETUP
-#line 576 "./util/configlexer.lex"
+#line 577 "./util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 577 "./util/configlexer.lex"
+#line 578 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 333:
+case 334:
 YY_RULE_SETUP
-#line 582 "./util/configlexer.lex"
+#line 583 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 334:
-/* rule 334 can match eol */
+case 335:
+/* rule 335 can match eol */
 YY_RULE_SETUP
-#line 583 "./util/configlexer.lex"
+#line 584 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end '"); 
                             cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 335:
+case 336:
 YY_RULE_SETUP
-#line 585 "./util/configlexer.lex"
+#line 586 "./util/configlexer.lex"
 {
         LEXOUT(("SQE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -5345,38 +5350,38 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 336:
+case 337:
 YY_RULE_SETUP
-#line 597 "./util/configlexer.lex"
+#line 598 "./util/configlexer.lex"
 { 
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 599 "./util/configlexer.lex"
+#line 600 "./util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 337:
-YY_RULE_SETUP
-#line 603 "./util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
-       YY_BREAK
 case 338:
-/* rule 338 can match eol */
 YY_RULE_SETUP
 #line 604 "./util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
 case 339:
+/* rule 339 can match eol */
 YY_RULE_SETUP
 #line 605 "./util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 case 340:
 YY_RULE_SETUP
 #line 606 "./util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+       YY_BREAK
+case 341:
+YY_RULE_SETUP
+#line 607 "./util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext, 0);
@@ -5384,27 +5389,27 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 611 "./util/configlexer.lex"
+#line 612 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 341:
+case 342:
 YY_RULE_SETUP
-#line 615 "./util/configlexer.lex"
+#line 616 "./util/configlexer.lex"
 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 342:
-/* rule 342 can match eol */
+case 343:
+/* rule 343 can match eol */
 YY_RULE_SETUP
-#line 616 "./util/configlexer.lex"
+#line 617 "./util/configlexer.lex"
 { yyerror("newline before \" in include name"); 
                                  cfg_parser->line++; BEGIN(inc_prev); }
        YY_BREAK
-case 343:
+case 344:
 YY_RULE_SETUP
-#line 618 "./util/configlexer.lex"
+#line 619 "./util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -5414,7 +5419,7 @@ YY_RULE_SETUP
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(val):
-#line 624 "./util/configlexer.lex"
+#line 625 "./util/configlexer.lex"
 {
        LEXOUT(("LEXEOF "));
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
@@ -5429,39 +5434,39 @@ case YY_STATE_EOF(val):
 }
        YY_BREAK
 /* include-toplevel: directive */
-case 344:
+case 345:
 YY_RULE_SETUP
-#line 638 "./util/configlexer.lex"
+#line 639 "./util/configlexer.lex"
 {
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel);
 }
        YY_BREAK
 case YY_STATE_EOF(include_toplevel):
-#line 641 "./util/configlexer.lex"
+#line 642 "./util/configlexer.lex"
 {
        yyerror("EOF inside include_toplevel directive");
        BEGIN(inc_prev);
 }
        YY_BREAK
-case 345:
-YY_RULE_SETUP
-#line 645 "./util/configlexer.lex"
-{ LEXOUT(("ITSP ")); /* ignore */ }
-       YY_BREAK
 case 346:
-/* rule 346 can match eol */
 YY_RULE_SETUP
 #line 646 "./util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++; }
+{ LEXOUT(("ITSP ")); /* ignore */ }
        YY_BREAK
 case 347:
+/* rule 347 can match eol */
 YY_RULE_SETUP
 #line 647 "./util/configlexer.lex"
-{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 case 348:
 YY_RULE_SETUP
 #line 648 "./util/configlexer.lex"
+{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
+       YY_BREAK
+case 349:
+YY_RULE_SETUP
+#line 649 "./util/configlexer.lex"
 {
        LEXOUT(("ITunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext, 1);
@@ -5470,29 +5475,29 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_toplevel_quoted):
-#line 654 "./util/configlexer.lex"
+#line 655 "./util/configlexer.lex"
 {
        yyerror("EOF inside quoted string");
        BEGIN(inc_prev);
 }
        YY_BREAK
-case 349:
+case 350:
 YY_RULE_SETUP
-#line 658 "./util/configlexer.lex"
+#line 659 "./util/configlexer.lex"
 { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 350:
-/* rule 350 can match eol */
+case 351:
+/* rule 351 can match eol */
 YY_RULE_SETUP
-#line 659 "./util/configlexer.lex"
+#line 660 "./util/configlexer.lex"
 {
        yyerror("newline before \" in include name");
        cfg_parser->line++; BEGIN(inc_prev);
 }
        YY_BREAK
-case 351:
+case 352:
 YY_RULE_SETUP
-#line 663 "./util/configlexer.lex"
+#line 664 "./util/configlexer.lex"
 {
        LEXOUT(("ITQE "));
        yytext[yyleng - 1] = '\0';
@@ -5501,33 +5506,33 @@ YY_RULE_SETUP
        return (VAR_FORCE_TOPLEVEL);
 }
        YY_BREAK
-case 352:
+case 353:
 YY_RULE_SETUP
-#line 671 "./util/configlexer.lex"
+#line 672 "./util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        if(--num_args == 0) { BEGIN(INITIAL); }
                        yylval.str = strdup(yytext); return STRING_ARG; }
        YY_BREAK
-case 353:
+case 354:
 YY_RULE_SETUP
-#line 675 "./util/configlexer.lex"
+#line 676 "./util/configlexer.lex"
 {
        ub_c_error_msg("unknown keyword '%s'", yytext);
        }
        YY_BREAK
-case 354:
+case 355:
 YY_RULE_SETUP
-#line 679 "./util/configlexer.lex"
+#line 680 "./util/configlexer.lex"
 {
        ub_c_error_msg("stray '%s'", yytext);
        }
        YY_BREAK
-case 355:
+case 356:
 YY_RULE_SETUP
-#line 683 "./util/configlexer.lex"
+#line 684 "./util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 5528 "<stdout>"
+#line 5534 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -5603,7 +5608,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
@@ -5656,7 +5661,6 @@ ECHO;
                        "fatal flex scanner internal error--no action found" );
        } /* end of action switch */
                } /* end of scanning one token */
-       } /* end of user's declarations */
 } /* end of yylex */
 
 /* yy_get_next_buffer - try to read in a new buffer
@@ -5668,9 +5672,9 @@ ECHO;
  */
 static int yy_get_next_buffer (void)
 {
-       char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       char *source = (yytext_ptr);
-       int number_to_move, i;
+       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+       register char *source = (yytext_ptr);
+       register int number_to_move, i;
        int ret_val;
 
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
@@ -5699,7 +5703,7 @@ static int yy_get_next_buffer (void)
        /* Try to read more data. */
 
        /* First move last chars to start of buffer. */
-       number_to_move = (int) ((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++);
@@ -5712,21 +5716,21 @@ static int yy_get_next_buffer (void)
 
        else
                {
-                       int num_to_read =
+                       yy_size_t num_to_read =
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
                while ( num_to_read <= 0 )
                        { /* Not enough room in the buffer - grow it. */
 
                        /* just a shorter name for the current buffer */
-                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
 
                        int yy_c_buf_p_offset =
                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
 
                        if ( b->yy_is_our_buffer )
                                {
-                               int new_size = b->yy_buf_size * 2;
+                               yy_size_t new_size = b->yy_buf_size * 2;
 
                                if ( new_size <= 0 )
                                        b->yy_buf_size += b->yy_buf_size / 8;
@@ -5735,12 +5739,11 @@ 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,b->yy_buf_size + 2  );
                                }
                        else
                                /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = NULL;
+                               b->yy_ch_buf = 0;
 
                        if ( ! b->yy_ch_buf )
                                YY_FATAL_ERROR(
@@ -5768,7 +5771,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
@@ -5782,15 +5785,12 @@ static int yy_get_next_buffer (void)
        else
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
-       if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+       if ((yy_size_t) ((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_size_t 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,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;
@@ -5806,14 +5806,14 @@ static int yy_get_next_buffer (void)
 
     static yy_state_type yy_get_previous_state (void)
 {
-       yy_state_type yy_current_state;
-       char *yy_cp;
+       register yy_state_type yy_current_state;
+       register char *yy_cp;
     
        yy_current_state = (yy_start);
 
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
                {
-               YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
                if ( yy_accept[yy_current_state] )
                        {
                        (yy_last_accepting_state) = yy_current_state;
@@ -5822,10 +5822,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 >= 3524 )
-                               yy_c = yy_meta[yy_c];
+                       if ( yy_current_state >= 3531 )
+                               yy_c = yy_meta[(unsigned int) yy_c];
                        }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+               yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                }
 
        return yy_current_state;
@@ -5838,10 +5838,10 @@ static int yy_get_next_buffer (void)
  */
     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 {
-       int yy_is_jam;
-       char *yy_cp = (yy_c_buf_p);
+       register int yy_is_jam;
+       register char *yy_cp = (yy_c_buf_p);
 
-       YY_CHAR yy_c = 1;
+       register YY_CHAR yy_c = 1;
        if ( yy_accept[yy_current_state] )
                {
                (yy_last_accepting_state) = yy_current_state;
@@ -5850,19 +5850,15 @@ 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 >= 3524 )
-                       yy_c = yy_meta[yy_c];
+               if ( yy_current_state >= 3531 )
+                       yy_c = yy_meta[(unsigned int) yy_c];
                }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 3523);
+       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+       yy_is_jam = (yy_current_state == 3530);
 
-               return yy_is_jam ? 0 : yy_current_state;
+       return yy_is_jam ? 0 : yy_current_state;
 }
 
-#ifndef YY_NO_UNPUT
-
-#endif
-
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
     static int yyinput (void)
@@ -5887,7 +5883,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
+                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -5904,13 +5900,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) )
@@ -5948,11 +5944,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.
@@ -5980,7 +5976,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
@@ -6008,7 +6004,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()" );
 
@@ -6017,13 +6013,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(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;
 }
@@ -6042,11 +6038,15 @@ 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  );
 }
 
+#ifndef __cplusplus
+extern int isatty (int );
+#endif /* __cplusplus */
+    
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
  * such as during a yyrestart() or at EOF.
@@ -6056,7 +6056,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;
@@ -6099,7 +6099,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
@@ -6130,7 +6130,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;
 }
 
@@ -6149,7 +6149,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;
        }
 }
@@ -6167,15 +6167,15 @@ static void yyensure_buffer_stack (void)
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
                 * immediate realloc on the next call.
          */
-      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+               num_to_alloc = 1;
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                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;
@@ -6184,7 +6184,7 @@ static void yyensure_buffer_stack (void)
        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
 
                /* Increase the buffer to prepare for a possible push. */
-               yy_size_t grow_size = 8 /* arbitrary grow size */;
+               int grow_size = 8 /* arbitrary grow size */;
 
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
@@ -6204,7 +6204,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 )
 {
@@ -6214,23 +6214,23 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
             base[size-1] != YY_END_OF_BUFFER_CHAR )
                /* They forgot to leave room for the EOB's. */
-               return NULL;
+               return 0;
 
-       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()" );
 
-       b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
+       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
        b->yy_buf_pos = b->yy_ch_buf = base;
        b->yy_is_our_buffer = 0;
-       b->yy_input_file = NULL;
+       b->yy_input_file = 0;
        b->yy_n_chars = b->yy_buf_size;
        b->yy_is_interactive = 0;
        b->yy_at_bol = 1;
        b->yy_fill_buffer = 0;
        b->yy_buffer_status = YY_BUFFER_NEW;
 
-       yy_switch_to_buffer( b  );
+       yy_switch_to_buffer(b  );
 
        return b;
 }
@@ -6243,29 +6243,28 @@ 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 (const char * yystr )
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
 {
     
-       return yy_scan_bytes( yystr, (int) strlen(yystr) );
+       return yy_scan_bytes(yystr,strlen(yystr) );
 }
 
 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
-       yy_size_t n;
-       int i;
+       yy_size_t n, i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
-       n = (yy_size_t) (_yybytes_len + 2);
-       buf = (char *) yyalloc( n  );
+       n = _yybytes_len + 2;
+       buf = (char *) yyalloc(n  );
        if ( ! buf )
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
@@ -6274,7 +6273,7 @@ YY_BUFFER_STATE yy_scan_bytes  (const 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()" );
 
@@ -6290,9 +6289,9 @@ YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 #define YY_EXIT_FAILURE 2
 #endif
 
-static void yynoreturn yy_fatal_error (const char* msg )
+static void yy_fatal_error (yyconst char* msg )
 {
-                       fprintf( stderr, "%s\n", msg );
+       (void) fprintf( stderr, "%s\n", msg );
        exit( YY_EXIT_FAILURE );
 }
 
@@ -6320,7 +6319,7 @@ static void yynoreturn yy_fatal_error (const char* msg )
  */
 int yyget_lineno  (void)
 {
-    
+        
     return yylineno;
 }
 
@@ -6343,7 +6342,7 @@ FILE *yyget_out  (void)
 /** Get the length of the current token.
  * 
  */
-int yyget_leng  (void)
+yy_size_t yyget_leng  (void)
 {
         return yyleng;
 }
@@ -6358,29 +6357,29 @@ char *yyget_text  (void)
 }
 
 /** Set the current line number.
- * @param _line_number line number
+ * @param line_number
  * 
  */
-void yyset_lineno (int  _line_number )
+void yyset_lineno (int  line_number )
 {
     
-    yylineno = _line_number;
+    yylineno = line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
- * @param _in_str A readable stream.
+ * @param in_str A readable stream.
  * 
  * @see yy_switch_to_buffer
  */
-void yyset_in (FILE *  _in_str )
+void yyset_in (FILE *  in_str )
 {
-        yyin = _in_str ;
+        yyin = in_str ;
 }
 
-void yyset_out (FILE *  _out_str )
+void yyset_out (FILE *  out_str )
 {
-        yyout = _out_str ;
+        yyout = out_str ;
 }
 
 int yyget_debug  (void)
@@ -6388,9 +6387,9 @@ int yyget_debug  (void)
         return yy_flex_debug;
 }
 
-void yyset_debug (int  _bdebug )
+void yyset_debug (int  bdebug )
 {
-        yy_flex_debug = _bdebug ;
+        yy_flex_debug = bdebug ;
 }
 
 static int yy_init_globals (void)
@@ -6399,10 +6398,10 @@ static int yy_init_globals (void)
      * This function is called from yylex_destroy(), so don't allocate here.
      */
 
-    (yy_buffer_stack) = NULL;
+    (yy_buffer_stack) = 0;
     (yy_buffer_stack_top) = 0;
     (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = NULL;
+    (yy_c_buf_p) = (char *) 0;
     (yy_init) = 0;
     (yy_start) = 0;
 
@@ -6411,8 +6410,8 @@ static int yy_init_globals (void)
     yyin = stdin;
     yyout = stdout;
 #else
-    yyin = NULL;
-    yyout = NULL;
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
@@ -6427,7 +6426,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();
        }
@@ -6448,19 +6447,18 @@ int yylex_destroy  (void)
  */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, const char * s2, int n )
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
-               
-       int i;
+       register int i;
        for ( i = 0; i < n; ++i )
                s1[i] = s2[i];
 }
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (const char * s )
+static int yy_flex_strlen (yyconst char * s )
 {
-       int n;
+       register int n;
        for ( n = 0; s[n]; ++n )
                ;
 
@@ -6470,12 +6468,11 @@ static int yy_flex_strlen (const char * s )
 
 void *yyalloc (yy_size_t  size )
 {
-                       return malloc(size);
+       return (void *) malloc( size );
 }
 
 void *yyrealloc  (void * ptr, yy_size_t  size )
 {
-               
        /* The cast to (char *) in the following accommodates both
         * implementations that use char* generic pointers, and those
         * that use void* generic pointers.  It works with the latter
@@ -6483,16 +6480,17 @@ void *yyrealloc  (void * ptr, yy_size_t  size )
         * any pointer type to void*, and deal with argument conversions
         * as though doing an assignment.
         */
-       return realloc(ptr, size);
+       return (void *) realloc( (char *) ptr, size );
 }
 
 void yyfree (void * ptr )
 {
-                       free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
+       free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
 }
 
 #define YYTABLES_NAME "yytables"
 
-#line 683 "./util/configlexer.lex"
+#line 684 "./util/configlexer.lex"
+
 
 
index 2f1556501cefc9c5361a0a440cb4e3f57dd09fbb..d22ec768555a55b96bf60d1da7e720d8507822f9 100644 (file)
@@ -1,14 +1,14 @@
-/* A Bison parser, made by GNU Bison 3.6.4.  */
+/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Bison implementation for Yacc-like parsers in C
+/* Skeleton implementation for Bison's Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
-   Inc.
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
-   This program is free software: you can redistribute it and/or modify
+   This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,7 +16,9 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
 /* C LALR(1) parser skeleton written by Richard Stallman, by
    simplifying the original so-called "semantic" parser.  */
 
-/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
-   especially those whose name start with YY_ or yy_.  They are
-   private implementation details that can be changed or removed.  */
-
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
    variables, as they might otherwise be expanded by user macros.
@@ -49,7 +47,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.6.4"
+#define YYBISON_VERSION "2.3"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 /* Pure parsers.  */
 #define YYPURE 0
 
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-
-
-
-/* First part of user prologue.  */
-#line 38 "./util/configparser.y"
-
-#include "config.h"
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#include "util/configyyrename.h"
-#include "util/config_file.h"
-#include "util/net_help.h"
-
-int ub_c_lex(void);
-void ub_c_error(const char *message);
-
-static void validate_respip_action(const char* action);
-
-/* these need to be global, otherwise they cannot be used inside yacc */
-extern struct config_parser_state* cfg_parser;
-
-#if 0
-#define OUTYY(s)  printf s /* used ONLY when debugging */
-#else
-#define OUTYY(s)
-#endif
-
+/* Using locations.  */
+#define YYLSP_NEEDED 0
 
-#line 100 "util/configparser.c"
-
-# ifndef YY_CAST
-#  ifdef __cplusplus
-#   define YY_CAST(Type, Val) static_cast<Type> (Val)
-#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
-#  else
-#   define YY_CAST(Type, Val) ((Type) (Val))
-#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
-#  endif
-# endif
-# ifndef YY_NULLPTR
-#  if defined __cplusplus
-#   if 201103L <= __cplusplus
-#    define YY_NULLPTR nullptr
-#   else
-#    define YY_NULLPTR 0
-#   endif
-#  else
-#   define YY_NULLPTR ((void*)0)
-#  endif
-# endif
 
-/* Use api.header.include to #include this header
-   instead of duplicating it here.  */
-#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
-# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
 
-/* Token kinds.  */
+/* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-  enum yytokentype
-  {
-    YYEMPTY = -2,
-    YYEOF = 0,                     /* "end of file"  */
-    YYerror = 256,                 /* error  */
-    YYUNDEF = 257,                 /* "invalid token"  */
-    SPACE = 258,                   /* SPACE  */
-    LETTER = 259,                  /* LETTER  */
-    NEWLINE = 260,                 /* NEWLINE  */
-    COMMENT = 261,                 /* COMMENT  */
-    COLON = 262,                   /* COLON  */
-    ANY = 263,                     /* ANY  */
-    ZONESTR = 264,                 /* ZONESTR  */
-    STRING_ARG = 265,              /* STRING_ARG  */
-    VAR_FORCE_TOPLEVEL = 266,      /* VAR_FORCE_TOPLEVEL  */
-    VAR_SERVER = 267,              /* VAR_SERVER  */
-    VAR_VERBOSITY = 268,           /* VAR_VERBOSITY  */
-    VAR_NUM_THREADS = 269,         /* VAR_NUM_THREADS  */
-    VAR_PORT = 270,                /* VAR_PORT  */
-    VAR_OUTGOING_RANGE = 271,      /* VAR_OUTGOING_RANGE  */
-    VAR_INTERFACE = 272,           /* VAR_INTERFACE  */
-    VAR_PREFER_IP4 = 273,          /* VAR_PREFER_IP4  */
-    VAR_DO_IP4 = 274,              /* VAR_DO_IP4  */
-    VAR_DO_IP6 = 275,              /* VAR_DO_IP6  */
-    VAR_PREFER_IP6 = 276,          /* VAR_PREFER_IP6  */
-    VAR_DO_UDP = 277,              /* VAR_DO_UDP  */
-    VAR_DO_TCP = 278,              /* VAR_DO_TCP  */
-    VAR_TCP_MSS = 279,             /* VAR_TCP_MSS  */
-    VAR_OUTGOING_TCP_MSS = 280,    /* VAR_OUTGOING_TCP_MSS  */
-    VAR_TCP_IDLE_TIMEOUT = 281,    /* VAR_TCP_IDLE_TIMEOUT  */
-    VAR_EDNS_TCP_KEEPALIVE = 282,  /* VAR_EDNS_TCP_KEEPALIVE  */
-    VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT  */
-    VAR_CHROOT = 284,              /* VAR_CHROOT  */
-    VAR_USERNAME = 285,            /* VAR_USERNAME  */
-    VAR_DIRECTORY = 286,           /* VAR_DIRECTORY  */
-    VAR_LOGFILE = 287,             /* VAR_LOGFILE  */
-    VAR_PIDFILE = 288,             /* VAR_PIDFILE  */
-    VAR_MSG_CACHE_SIZE = 289,      /* VAR_MSG_CACHE_SIZE  */
-    VAR_MSG_CACHE_SLABS = 290,     /* VAR_MSG_CACHE_SLABS  */
-    VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD  */
-    VAR_RRSET_CACHE_SIZE = 292,    /* VAR_RRSET_CACHE_SIZE  */
-    VAR_RRSET_CACHE_SLABS = 293,   /* VAR_RRSET_CACHE_SLABS  */
-    VAR_OUTGOING_NUM_TCP = 294,    /* VAR_OUTGOING_NUM_TCP  */
-    VAR_INFRA_HOST_TTL = 295,      /* VAR_INFRA_HOST_TTL  */
-    VAR_INFRA_LAME_TTL = 296,      /* VAR_INFRA_LAME_TTL  */
-    VAR_INFRA_CACHE_SLABS = 297,   /* VAR_INFRA_CACHE_SLABS  */
-    VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS  */
-    VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE  */
-    VAR_NAME = 300,                /* VAR_NAME  */
-    VAR_STUB_ZONE = 301,           /* VAR_STUB_ZONE  */
-    VAR_STUB_HOST = 302,           /* VAR_STUB_HOST  */
-    VAR_STUB_ADDR = 303,           /* VAR_STUB_ADDR  */
-    VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY  */
-    VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE  */
-    VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES  */
-    VAR_FORWARD_ZONE = 307,        /* VAR_FORWARD_ZONE  */
-    VAR_FORWARD_HOST = 308,        /* VAR_FORWARD_HOST  */
-    VAR_FORWARD_ADDR = 309,        /* VAR_FORWARD_ADDR  */
-    VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS  */
-    VAR_HIDE_IDENTITY = 311,       /* VAR_HIDE_IDENTITY  */
-    VAR_HIDE_VERSION = 312,        /* VAR_HIDE_VERSION  */
-    VAR_IDENTITY = 313,            /* VAR_IDENTITY  */
-    VAR_VERSION = 314,             /* VAR_VERSION  */
-    VAR_HARDEN_GLUE = 315,         /* VAR_HARDEN_GLUE  */
-    VAR_MODULE_CONF = 316,         /* VAR_MODULE_CONF  */
-    VAR_TRUST_ANCHOR_FILE = 317,   /* VAR_TRUST_ANCHOR_FILE  */
-    VAR_TRUST_ANCHOR = 318,        /* VAR_TRUST_ANCHOR  */
-    VAR_VAL_OVERRIDE_DATE = 319,   /* VAR_VAL_OVERRIDE_DATE  */
-    VAR_BOGUS_TTL = 320,           /* VAR_BOGUS_TTL  */
-    VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL  */
-    VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE  */
-    VAR_INCOMING_NUM_TCP = 323,    /* VAR_INCOMING_NUM_TCP  */
-    VAR_MSG_BUFFER_SIZE = 324,     /* VAR_MSG_BUFFER_SIZE  */
-    VAR_KEY_CACHE_SIZE = 325,      /* VAR_KEY_CACHE_SIZE  */
-    VAR_KEY_CACHE_SLABS = 326,     /* VAR_KEY_CACHE_SLABS  */
-    VAR_TRUSTED_KEYS_FILE = 327,   /* VAR_TRUSTED_KEYS_FILE  */
-    VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS  */
-    VAR_USE_SYSLOG = 329,          /* VAR_USE_SYSLOG  */
-    VAR_OUTGOING_INTERFACE = 330,  /* VAR_OUTGOING_INTERFACE  */
-    VAR_ROOT_HINTS = 331,          /* VAR_ROOT_HINTS  */
-    VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST  */
-    VAR_CACHE_MAX_TTL = 333,       /* VAR_CACHE_MAX_TTL  */
-    VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED  */
-    VAR_ACCESS_CONTROL = 335,      /* VAR_ACCESS_CONTROL  */
-    VAR_LOCAL_ZONE = 336,          /* VAR_LOCAL_ZONE  */
-    VAR_LOCAL_DATA = 337,          /* VAR_LOCAL_DATA  */
-    VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC  */
-    VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL  */
-    VAR_DO_DAEMONIZE = 340,        /* VAR_DO_DAEMONIZE  */
-    VAR_USE_CAPS_FOR_ID = 341,     /* VAR_USE_CAPS_FOR_ID  */
-    VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE  */
-    VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT  */
-    VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID  */
-    VAR_DLV_ANCHOR_FILE = 345,     /* VAR_DLV_ANCHOR_FILE  */
-    VAR_DLV_ANCHOR = 346,          /* VAR_DLV_ANCHOR  */
-    VAR_NEG_CACHE_SIZE = 347,      /* VAR_NEG_CACHE_SIZE  */
-    VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH  */
-    VAR_PRIVATE_ADDRESS = 349,     /* VAR_PRIVATE_ADDRESS  */
-    VAR_PRIVATE_DOMAIN = 350,      /* VAR_PRIVATE_DOMAIN  */
-    VAR_REMOTE_CONTROL = 351,      /* VAR_REMOTE_CONTROL  */
-    VAR_CONTROL_ENABLE = 352,      /* VAR_CONTROL_ENABLE  */
-    VAR_CONTROL_INTERFACE = 353,   /* VAR_CONTROL_INTERFACE  */
-    VAR_CONTROL_PORT = 354,        /* VAR_CONTROL_PORT  */
-    VAR_SERVER_KEY_FILE = 355,     /* VAR_SERVER_KEY_FILE  */
-    VAR_SERVER_CERT_FILE = 356,    /* VAR_SERVER_CERT_FILE  */
-    VAR_CONTROL_KEY_FILE = 357,    /* VAR_CONTROL_KEY_FILE  */
-    VAR_CONTROL_CERT_FILE = 358,   /* VAR_CONTROL_CERT_FILE  */
-    VAR_CONTROL_USE_CERT = 359,    /* VAR_CONTROL_USE_CERT  */
-    VAR_TCP_REUSE_TIMEOUT = 360,   /* VAR_TCP_REUSE_TIMEOUT  */
-    VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES  */
-    VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS  */
-    VAR_LOCAL_DATA_PTR = 363,      /* VAR_LOCAL_DATA_PTR  */
-    VAR_JOSTLE_TIMEOUT = 364,      /* VAR_JOSTLE_TIMEOUT  */
-    VAR_STUB_PRIME = 365,          /* VAR_STUB_PRIME  */
-    VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD  */
-    VAR_LOG_TIME_ASCII = 367,      /* VAR_LOG_TIME_ASCII  */
-    VAR_DOMAIN_INSECURE = 368,     /* VAR_DOMAIN_INSECURE  */
-    VAR_PYTHON = 369,              /* VAR_PYTHON  */
-    VAR_PYTHON_SCRIPT = 370,       /* VAR_PYTHON_SCRIPT  */
-    VAR_VAL_SIG_SKEW_MIN = 371,    /* VAR_VAL_SIG_SKEW_MIN  */
-    VAR_VAL_SIG_SKEW_MAX = 372,    /* VAR_VAL_SIG_SKEW_MAX  */
-    VAR_VAL_MAX_RESTART = 373,     /* VAR_VAL_MAX_RESTART  */
-    VAR_CACHE_MIN_TTL = 374,       /* VAR_CACHE_MIN_TTL  */
-    VAR_VAL_LOG_LEVEL = 375,       /* VAR_VAL_LOG_LEVEL  */
-    VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE  */
-    VAR_KEEP_MISSING = 377,        /* VAR_KEEP_MISSING  */
-    VAR_ADD_HOLDDOWN = 378,        /* VAR_ADD_HOLDDOWN  */
-    VAR_DEL_HOLDDOWN = 379,        /* VAR_DEL_HOLDDOWN  */
-    VAR_SO_RCVBUF = 380,           /* VAR_SO_RCVBUF  */
-    VAR_EDNS_BUFFER_SIZE = 381,    /* VAR_EDNS_BUFFER_SIZE  */
-    VAR_PREFETCH = 382,            /* VAR_PREFETCH  */
-    VAR_PREFETCH_KEY = 383,        /* VAR_PREFETCH_KEY  */
-    VAR_SO_SNDBUF = 384,           /* VAR_SO_SNDBUF  */
-    VAR_SO_REUSEPORT = 385,        /* VAR_SO_REUSEPORT  */
-    VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN  */
-    VAR_IGNORE_CD_FLAG = 387,      /* VAR_IGNORE_CD_FLAG  */
-    VAR_LOG_QUERIES = 388,         /* VAR_LOG_QUERIES  */
-    VAR_LOG_REPLIES = 389,         /* VAR_LOG_REPLIES  */
-    VAR_LOG_LOCAL_ACTIONS = 390,   /* VAR_LOG_LOCAL_ACTIONS  */
-    VAR_TCP_UPSTREAM = 391,        /* VAR_TCP_UPSTREAM  */
-    VAR_SSL_UPSTREAM = 392,        /* VAR_SSL_UPSTREAM  */
-    VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT  */
-    VAR_SSL_SERVICE_KEY = 394,     /* VAR_SSL_SERVICE_KEY  */
-    VAR_SSL_SERVICE_PEM = 395,     /* VAR_SSL_SERVICE_PEM  */
-    VAR_SSL_PORT = 396,            /* VAR_SSL_PORT  */
-    VAR_FORWARD_FIRST = 397,       /* VAR_FORWARD_FIRST  */
-    VAR_STUB_SSL_UPSTREAM = 398,   /* VAR_STUB_SSL_UPSTREAM  */
-    VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM  */
-    VAR_TLS_CERT_BUNDLE = 400,     /* VAR_TLS_CERT_BUNDLE  */
-    VAR_STUB_TCP_UPSTREAM = 401,   /* VAR_STUB_TCP_UPSTREAM  */
-    VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM  */
-    VAR_HTTPS_PORT = 403,          /* VAR_HTTPS_PORT  */
-    VAR_HTTP_ENDPOINT = 404,       /* VAR_HTTP_ENDPOINT  */
-    VAR_HTTP_MAX_STREAMS = 405,    /* VAR_HTTP_MAX_STREAMS  */
-    VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE  */
-    VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE  */
-    VAR_HTTP_NODELAY = 408,        /* VAR_HTTP_NODELAY  */
-    VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM  */
-    VAR_STUB_FIRST = 410,          /* VAR_STUB_FIRST  */
-    VAR_MINIMAL_RESPONSES = 411,   /* VAR_MINIMAL_RESPONSES  */
-    VAR_RRSET_ROUNDROBIN = 412,    /* VAR_RRSET_ROUNDROBIN  */
-    VAR_MAX_UDP_SIZE = 413,        /* VAR_MAX_UDP_SIZE  */
-    VAR_DELAY_CLOSE = 414,         /* VAR_DELAY_CLOSE  */
-    VAR_UDP_CONNECT = 415,         /* VAR_UDP_CONNECT  */
-    VAR_UNBLOCK_LAN_ZONES = 416,   /* VAR_UNBLOCK_LAN_ZONES  */
-    VAR_INSECURE_LAN_ZONES = 417,  /* VAR_INSECURE_LAN_ZONES  */
-    VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT  */
-    VAR_INFRA_KEEP_PROBING = 419,  /* VAR_INFRA_KEEP_PROBING  */
-    VAR_DNS64_PREFIX = 420,        /* VAR_DNS64_PREFIX  */
-    VAR_DNS64_SYNTHALL = 421,      /* VAR_DNS64_SYNTHALL  */
-    VAR_DNS64_IGNORE_AAAA = 422,   /* VAR_DNS64_IGNORE_AAAA  */
-    VAR_DNSTAP = 423,              /* VAR_DNSTAP  */
-    VAR_DNSTAP_ENABLE = 424,       /* VAR_DNSTAP_ENABLE  */
-    VAR_DNSTAP_SOCKET_PATH = 425,  /* VAR_DNSTAP_SOCKET_PATH  */
-    VAR_DNSTAP_IP = 426,           /* VAR_DNSTAP_IP  */
-    VAR_DNSTAP_TLS = 427,          /* VAR_DNSTAP_TLS  */
-    VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME  */
-    VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE  */
-    VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE  */
-    VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE  */
-    VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY  */
-    VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION  */
-    VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL  */
-    VAR_DNSTAP_IDENTITY = 435,     /* VAR_DNSTAP_IDENTITY  */
-    VAR_DNSTAP_VERSION = 436,      /* VAR_DNSTAP_VERSION  */
-    VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES  */
-    VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES  */
-    VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES  */
-    VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES  */
-    VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES  */
-    VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES  */
-    VAR_RESPONSE_IP_TAG = 443,     /* VAR_RESPONSE_IP_TAG  */
-    VAR_RESPONSE_IP = 444,         /* VAR_RESPONSE_IP  */
-    VAR_RESPONSE_IP_DATA = 445,    /* VAR_RESPONSE_IP_DATA  */
-    VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE  */
-    VAR_IP_TRANSPARENT = 447,      /* VAR_IP_TRANSPARENT  */
-    VAR_IP_DSCP = 448,             /* VAR_IP_DSCP  */
-    VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK  */
-    VAR_IP_RATELIMIT = 450,        /* VAR_IP_RATELIMIT  */
-    VAR_IP_RATELIMIT_SLABS = 451,  /* VAR_IP_RATELIMIT_SLABS  */
-    VAR_IP_RATELIMIT_SIZE = 452,   /* VAR_IP_RATELIMIT_SIZE  */
-    VAR_RATELIMIT = 453,           /* VAR_RATELIMIT  */
-    VAR_RATELIMIT_SLABS = 454,     /* VAR_RATELIMIT_SLABS  */
-    VAR_RATELIMIT_SIZE = 455,      /* VAR_RATELIMIT_SIZE  */
-    VAR_OUTBOUND_MSG_RETRY = 456,  /* VAR_OUTBOUND_MSG_RETRY  */
-    VAR_RATELIMIT_FOR_DOMAIN = 457, /* VAR_RATELIMIT_FOR_DOMAIN  */
-    VAR_RATELIMIT_BELOW_DOMAIN = 458, /* VAR_RATELIMIT_BELOW_DOMAIN  */
-    VAR_IP_RATELIMIT_FACTOR = 459, /* VAR_IP_RATELIMIT_FACTOR  */
-    VAR_RATELIMIT_FACTOR = 460,    /* VAR_RATELIMIT_FACTOR  */
-    VAR_SEND_CLIENT_SUBNET = 461,  /* VAR_SEND_CLIENT_SUBNET  */
-    VAR_CLIENT_SUBNET_ZONE = 462,  /* VAR_CLIENT_SUBNET_ZONE  */
-    VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD  */
-    VAR_CLIENT_SUBNET_OPCODE = 464, /* VAR_CLIENT_SUBNET_OPCODE  */
-    VAR_MAX_CLIENT_SUBNET_IPV4 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV4  */
-    VAR_MAX_CLIENT_SUBNET_IPV6 = 466, /* VAR_MAX_CLIENT_SUBNET_IPV6  */
-    VAR_MIN_CLIENT_SUBNET_IPV4 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV4  */
-    VAR_MIN_CLIENT_SUBNET_IPV6 = 468, /* VAR_MIN_CLIENT_SUBNET_IPV6  */
-    VAR_MAX_ECS_TREE_SIZE_IPV4 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV4  */
-    VAR_MAX_ECS_TREE_SIZE_IPV6 = 470, /* VAR_MAX_ECS_TREE_SIZE_IPV6  */
-    VAR_CAPS_WHITELIST = 471,      /* VAR_CAPS_WHITELIST  */
-    VAR_CACHE_MAX_NEGATIVE_TTL = 472, /* VAR_CACHE_MAX_NEGATIVE_TTL  */
-    VAR_PERMIT_SMALL_HOLDDOWN = 473, /* VAR_PERMIT_SMALL_HOLDDOWN  */
-    VAR_QNAME_MINIMISATION = 474,  /* VAR_QNAME_MINIMISATION  */
-    VAR_QNAME_MINIMISATION_STRICT = 475, /* VAR_QNAME_MINIMISATION_STRICT  */
-    VAR_IP_FREEBIND = 476,         /* VAR_IP_FREEBIND  */
-    VAR_DEFINE_TAG = 477,          /* VAR_DEFINE_TAG  */
-    VAR_LOCAL_ZONE_TAG = 478,      /* VAR_LOCAL_ZONE_TAG  */
-    VAR_ACCESS_CONTROL_TAG = 479,  /* VAR_ACCESS_CONTROL_TAG  */
-    VAR_LOCAL_ZONE_OVERRIDE = 480, /* VAR_LOCAL_ZONE_OVERRIDE  */
-    VAR_ACCESS_CONTROL_TAG_ACTION = 481, /* VAR_ACCESS_CONTROL_TAG_ACTION  */
-    VAR_ACCESS_CONTROL_TAG_DATA = 482, /* VAR_ACCESS_CONTROL_TAG_DATA  */
-    VAR_VIEW = 483,                /* VAR_VIEW  */
-    VAR_ACCESS_CONTROL_VIEW = 484, /* VAR_ACCESS_CONTROL_VIEW  */
-    VAR_VIEW_FIRST = 485,          /* VAR_VIEW_FIRST  */
-    VAR_SERVE_EXPIRED = 486,       /* VAR_SERVE_EXPIRED  */
-    VAR_SERVE_EXPIRED_TTL = 487,   /* VAR_SERVE_EXPIRED_TTL  */
-    VAR_SERVE_EXPIRED_TTL_RESET = 488, /* VAR_SERVE_EXPIRED_TTL_RESET  */
-    VAR_SERVE_EXPIRED_REPLY_TTL = 489, /* VAR_SERVE_EXPIRED_REPLY_TTL  */
-    VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT  */
-    VAR_SERVE_ORIGINAL_TTL = 491,  /* VAR_SERVE_ORIGINAL_TTL  */
-    VAR_FAKE_DSA = 492,            /* VAR_FAKE_DSA  */
-    VAR_FAKE_SHA1 = 493,           /* VAR_FAKE_SHA1  */
-    VAR_LOG_IDENTITY = 494,        /* VAR_LOG_IDENTITY  */
-    VAR_HIDE_TRUSTANCHOR = 495,    /* VAR_HIDE_TRUSTANCHOR  */
-    VAR_HIDE_HTTP_USER_AGENT = 496, /* VAR_HIDE_HTTP_USER_AGENT  */
-    VAR_HTTP_USER_AGENT = 497,     /* VAR_HTTP_USER_AGENT  */
-    VAR_TRUST_ANCHOR_SIGNALING = 498, /* VAR_TRUST_ANCHOR_SIGNALING  */
-    VAR_AGGRESSIVE_NSEC = 499,     /* VAR_AGGRESSIVE_NSEC  */
-    VAR_USE_SYSTEMD = 500,         /* VAR_USE_SYSTEMD  */
-    VAR_SHM_ENABLE = 501,          /* VAR_SHM_ENABLE  */
-    VAR_SHM_KEY = 502,             /* VAR_SHM_KEY  */
-    VAR_ROOT_KEY_SENTINEL = 503,   /* VAR_ROOT_KEY_SENTINEL  */
-    VAR_DNSCRYPT = 504,            /* VAR_DNSCRYPT  */
-    VAR_DNSCRYPT_ENABLE = 505,     /* VAR_DNSCRYPT_ENABLE  */
-    VAR_DNSCRYPT_PORT = 506,       /* VAR_DNSCRYPT_PORT  */
-    VAR_DNSCRYPT_PROVIDER = 507,   /* VAR_DNSCRYPT_PROVIDER  */
-    VAR_DNSCRYPT_SECRET_KEY = 508, /* VAR_DNSCRYPT_SECRET_KEY  */
-    VAR_DNSCRYPT_PROVIDER_CERT = 509, /* VAR_DNSCRYPT_PROVIDER_CERT  */
-    VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED  */
-    VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE  */
-    VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS  */
-    VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE  */
-    VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS  */
-    VAR_PAD_RESPONSES = 515,       /* VAR_PAD_RESPONSES  */
-    VAR_PAD_RESPONSES_BLOCK_SIZE = 516, /* VAR_PAD_RESPONSES_BLOCK_SIZE  */
-    VAR_PAD_QUERIES = 517,         /* VAR_PAD_QUERIES  */
-    VAR_PAD_QUERIES_BLOCK_SIZE = 518, /* VAR_PAD_QUERIES_BLOCK_SIZE  */
-    VAR_IPSECMOD_ENABLED = 519,    /* VAR_IPSECMOD_ENABLED  */
-    VAR_IPSECMOD_HOOK = 520,       /* VAR_IPSECMOD_HOOK  */
-    VAR_IPSECMOD_IGNORE_BOGUS = 521, /* VAR_IPSECMOD_IGNORE_BOGUS  */
-    VAR_IPSECMOD_MAX_TTL = 522,    /* VAR_IPSECMOD_MAX_TTL  */
-    VAR_IPSECMOD_WHITELIST = 523,  /* VAR_IPSECMOD_WHITELIST  */
-    VAR_IPSECMOD_STRICT = 524,     /* VAR_IPSECMOD_STRICT  */
-    VAR_CACHEDB = 525,             /* VAR_CACHEDB  */
-    VAR_CACHEDB_BACKEND = 526,     /* VAR_CACHEDB_BACKEND  */
-    VAR_CACHEDB_SECRETSEED = 527,  /* VAR_CACHEDB_SECRETSEED  */
-    VAR_CACHEDB_REDISHOST = 528,   /* VAR_CACHEDB_REDISHOST  */
-    VAR_CACHEDB_REDISPORT = 529,   /* VAR_CACHEDB_REDISPORT  */
-    VAR_CACHEDB_REDISTIMEOUT = 530, /* VAR_CACHEDB_REDISTIMEOUT  */
-    VAR_CACHEDB_REDISEXPIRERECORDS = 531, /* VAR_CACHEDB_REDISEXPIRERECORDS  */
-    VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM  */
-    VAR_FOR_UPSTREAM = 533,        /* VAR_FOR_UPSTREAM  */
-    VAR_AUTH_ZONE = 534,           /* VAR_AUTH_ZONE  */
-    VAR_ZONEFILE = 535,            /* VAR_ZONEFILE  */
-    VAR_MASTER = 536,              /* VAR_MASTER  */
-    VAR_URL = 537,                 /* VAR_URL  */
-    VAR_FOR_DOWNSTREAM = 538,      /* VAR_FOR_DOWNSTREAM  */
-    VAR_FALLBACK_ENABLED = 539,    /* VAR_FALLBACK_ENABLED  */
-    VAR_TLS_ADDITIONAL_PORT = 540, /* VAR_TLS_ADDITIONAL_PORT  */
-    VAR_LOW_RTT = 541,             /* VAR_LOW_RTT  */
-    VAR_LOW_RTT_PERMIL = 542,      /* VAR_LOW_RTT_PERMIL  */
-    VAR_FAST_SERVER_PERMIL = 543,  /* VAR_FAST_SERVER_PERMIL  */
-    VAR_FAST_SERVER_NUM = 544,     /* VAR_FAST_SERVER_NUM  */
-    VAR_ALLOW_NOTIFY = 545,        /* VAR_ALLOW_NOTIFY  */
-    VAR_TLS_WIN_CERT = 546,        /* VAR_TLS_WIN_CERT  */
-    VAR_TCP_CONNECTION_LIMIT = 547, /* VAR_TCP_CONNECTION_LIMIT  */
-    VAR_FORWARD_NO_CACHE = 548,    /* VAR_FORWARD_NO_CACHE  */
-    VAR_STUB_NO_CACHE = 549,       /* VAR_STUB_NO_CACHE  */
-    VAR_LOG_SERVFAIL = 550,        /* VAR_LOG_SERVFAIL  */
-    VAR_DENY_ANY = 551,            /* VAR_DENY_ANY  */
-    VAR_UNKNOWN_SERVER_TIME_LIMIT = 552, /* VAR_UNKNOWN_SERVER_TIME_LIMIT  */
-    VAR_LOG_TAG_QUERYREPLY = 553,  /* VAR_LOG_TAG_QUERYREPLY  */
-    VAR_STREAM_WAIT_SIZE = 554,    /* VAR_STREAM_WAIT_SIZE  */
-    VAR_TLS_CIPHERS = 555,         /* VAR_TLS_CIPHERS  */
-    VAR_TLS_CIPHERSUITES = 556,    /* VAR_TLS_CIPHERSUITES  */
-    VAR_TLS_USE_SNI = 557,         /* VAR_TLS_USE_SNI  */
-    VAR_IPSET = 558,               /* VAR_IPSET  */
-    VAR_IPSET_NAME_V4 = 559,       /* VAR_IPSET_NAME_V4  */
-    VAR_IPSET_NAME_V6 = 560,       /* VAR_IPSET_NAME_V6  */
-    VAR_TLS_SESSION_TICKET_KEYS = 561, /* VAR_TLS_SESSION_TICKET_KEYS  */
-    VAR_RPZ = 562,                 /* VAR_RPZ  */
-    VAR_TAGS = 563,                /* VAR_TAGS  */
-    VAR_RPZ_ACTION_OVERRIDE = 564, /* VAR_RPZ_ACTION_OVERRIDE  */
-    VAR_RPZ_CNAME_OVERRIDE = 565,  /* VAR_RPZ_CNAME_OVERRIDE  */
-    VAR_RPZ_LOG = 566,             /* VAR_RPZ_LOG  */
-    VAR_RPZ_LOG_NAME = 567,        /* VAR_RPZ_LOG_NAME  */
-    VAR_DYNLIB = 568,              /* VAR_DYNLIB  */
-    VAR_DYNLIB_FILE = 569,         /* VAR_DYNLIB_FILE  */
-    VAR_EDNS_CLIENT_STRING = 570,  /* VAR_EDNS_CLIENT_STRING  */
-    VAR_EDNS_CLIENT_STRING_OPCODE = 571, /* VAR_EDNS_CLIENT_STRING_OPCODE  */
-    VAR_NSID = 572,                /* VAR_NSID  */
-    VAR_ZONEMD_PERMISSIVE_MODE = 573, /* VAR_ZONEMD_PERMISSIVE_MODE  */
-    VAR_ZONEMD_CHECK = 574,        /* VAR_ZONEMD_CHECK  */
-    VAR_ZONEMD_REJECT_ABSENCE = 575 /* VAR_ZONEMD_REJECT_ABSENCE  */
-  };
-  typedef enum yytokentype yytoken_kind_t;
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     SPACE = 258,
+     LETTER = 259,
+     NEWLINE = 260,
+     COMMENT = 261,
+     COLON = 262,
+     ANY = 263,
+     ZONESTR = 264,
+     STRING_ARG = 265,
+     VAR_FORCE_TOPLEVEL = 266,
+     VAR_SERVER = 267,
+     VAR_VERBOSITY = 268,
+     VAR_NUM_THREADS = 269,
+     VAR_PORT = 270,
+     VAR_OUTGOING_RANGE = 271,
+     VAR_INTERFACE = 272,
+     VAR_PREFER_IP4 = 273,
+     VAR_DO_IP4 = 274,
+     VAR_DO_IP6 = 275,
+     VAR_PREFER_IP6 = 276,
+     VAR_DO_UDP = 277,
+     VAR_DO_TCP = 278,
+     VAR_TCP_MSS = 279,
+     VAR_OUTGOING_TCP_MSS = 280,
+     VAR_TCP_IDLE_TIMEOUT = 281,
+     VAR_EDNS_TCP_KEEPALIVE = 282,
+     VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283,
+     VAR_CHROOT = 284,
+     VAR_USERNAME = 285,
+     VAR_DIRECTORY = 286,
+     VAR_LOGFILE = 287,
+     VAR_PIDFILE = 288,
+     VAR_MSG_CACHE_SIZE = 289,
+     VAR_MSG_CACHE_SLABS = 290,
+     VAR_NUM_QUERIES_PER_THREAD = 291,
+     VAR_RRSET_CACHE_SIZE = 292,
+     VAR_RRSET_CACHE_SLABS = 293,
+     VAR_OUTGOING_NUM_TCP = 294,
+     VAR_INFRA_HOST_TTL = 295,
+     VAR_INFRA_LAME_TTL = 296,
+     VAR_INFRA_CACHE_SLABS = 297,
+     VAR_INFRA_CACHE_NUMHOSTS = 298,
+     VAR_INFRA_CACHE_LAME_SIZE = 299,
+     VAR_NAME = 300,
+     VAR_STUB_ZONE = 301,
+     VAR_STUB_HOST = 302,
+     VAR_STUB_ADDR = 303,
+     VAR_TARGET_FETCH_POLICY = 304,
+     VAR_HARDEN_SHORT_BUFSIZE = 305,
+     VAR_HARDEN_LARGE_QUERIES = 306,
+     VAR_FORWARD_ZONE = 307,
+     VAR_FORWARD_HOST = 308,
+     VAR_FORWARD_ADDR = 309,
+     VAR_DO_NOT_QUERY_ADDRESS = 310,
+     VAR_HIDE_IDENTITY = 311,
+     VAR_HIDE_VERSION = 312,
+     VAR_IDENTITY = 313,
+     VAR_VERSION = 314,
+     VAR_HARDEN_GLUE = 315,
+     VAR_MODULE_CONF = 316,
+     VAR_TRUST_ANCHOR_FILE = 317,
+     VAR_TRUST_ANCHOR = 318,
+     VAR_VAL_OVERRIDE_DATE = 319,
+     VAR_BOGUS_TTL = 320,
+     VAR_VAL_CLEAN_ADDITIONAL = 321,
+     VAR_VAL_PERMISSIVE_MODE = 322,
+     VAR_INCOMING_NUM_TCP = 323,
+     VAR_MSG_BUFFER_SIZE = 324,
+     VAR_KEY_CACHE_SIZE = 325,
+     VAR_KEY_CACHE_SLABS = 326,
+     VAR_TRUSTED_KEYS_FILE = 327,
+     VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328,
+     VAR_USE_SYSLOG = 329,
+     VAR_OUTGOING_INTERFACE = 330,
+     VAR_ROOT_HINTS = 331,
+     VAR_DO_NOT_QUERY_LOCALHOST = 332,
+     VAR_CACHE_MAX_TTL = 333,
+     VAR_HARDEN_DNSSEC_STRIPPED = 334,
+     VAR_ACCESS_CONTROL = 335,
+     VAR_LOCAL_ZONE = 336,
+     VAR_LOCAL_DATA = 337,
+     VAR_INTERFACE_AUTOMATIC = 338,
+     VAR_STATISTICS_INTERVAL = 339,
+     VAR_DO_DAEMONIZE = 340,
+     VAR_USE_CAPS_FOR_ID = 341,
+     VAR_STATISTICS_CUMULATIVE = 342,
+     VAR_OUTGOING_PORT_PERMIT = 343,
+     VAR_OUTGOING_PORT_AVOID = 344,
+     VAR_DLV_ANCHOR_FILE = 345,
+     VAR_DLV_ANCHOR = 346,
+     VAR_NEG_CACHE_SIZE = 347,
+     VAR_HARDEN_REFERRAL_PATH = 348,
+     VAR_PRIVATE_ADDRESS = 349,
+     VAR_PRIVATE_DOMAIN = 350,
+     VAR_REMOTE_CONTROL = 351,
+     VAR_CONTROL_ENABLE = 352,
+     VAR_CONTROL_INTERFACE = 353,
+     VAR_CONTROL_PORT = 354,
+     VAR_SERVER_KEY_FILE = 355,
+     VAR_SERVER_CERT_FILE = 356,
+     VAR_CONTROL_KEY_FILE = 357,
+     VAR_CONTROL_CERT_FILE = 358,
+     VAR_CONTROL_USE_CERT = 359,
+     VAR_TCP_REUSE_TIMEOUT = 360,
+     VAR_MAX_REUSE_TCP_QUERIES = 361,
+     VAR_EXTENDED_STATISTICS = 362,
+     VAR_LOCAL_DATA_PTR = 363,
+     VAR_JOSTLE_TIMEOUT = 364,
+     VAR_STUB_PRIME = 365,
+     VAR_UNWANTED_REPLY_THRESHOLD = 366,
+     VAR_LOG_TIME_ASCII = 367,
+     VAR_DOMAIN_INSECURE = 368,
+     VAR_PYTHON = 369,
+     VAR_PYTHON_SCRIPT = 370,
+     VAR_VAL_SIG_SKEW_MIN = 371,
+     VAR_VAL_SIG_SKEW_MAX = 372,
+     VAR_VAL_MAX_RESTART = 373,
+     VAR_CACHE_MIN_TTL = 374,
+     VAR_VAL_LOG_LEVEL = 375,
+     VAR_AUTO_TRUST_ANCHOR_FILE = 376,
+     VAR_KEEP_MISSING = 377,
+     VAR_ADD_HOLDDOWN = 378,
+     VAR_DEL_HOLDDOWN = 379,
+     VAR_SO_RCVBUF = 380,
+     VAR_EDNS_BUFFER_SIZE = 381,
+     VAR_PREFETCH = 382,
+     VAR_PREFETCH_KEY = 383,
+     VAR_SO_SNDBUF = 384,
+     VAR_SO_REUSEPORT = 385,
+     VAR_HARDEN_BELOW_NXDOMAIN = 386,
+     VAR_IGNORE_CD_FLAG = 387,
+     VAR_LOG_QUERIES = 388,
+     VAR_LOG_REPLIES = 389,
+     VAR_LOG_LOCAL_ACTIONS = 390,
+     VAR_TCP_UPSTREAM = 391,
+     VAR_SSL_UPSTREAM = 392,
+     VAR_TCP_AUTH_QUERY_TIMEOUT = 393,
+     VAR_SSL_SERVICE_KEY = 394,
+     VAR_SSL_SERVICE_PEM = 395,
+     VAR_SSL_PORT = 396,
+     VAR_FORWARD_FIRST = 397,
+     VAR_STUB_SSL_UPSTREAM = 398,
+     VAR_FORWARD_SSL_UPSTREAM = 399,
+     VAR_TLS_CERT_BUNDLE = 400,
+     VAR_STUB_TCP_UPSTREAM = 401,
+     VAR_FORWARD_TCP_UPSTREAM = 402,
+     VAR_HTTPS_PORT = 403,
+     VAR_HTTP_ENDPOINT = 404,
+     VAR_HTTP_MAX_STREAMS = 405,
+     VAR_HTTP_QUERY_BUFFER_SIZE = 406,
+     VAR_HTTP_RESPONSE_BUFFER_SIZE = 407,
+     VAR_HTTP_NODELAY = 408,
+     VAR_HTTP_NOTLS_DOWNSTREAM = 409,
+     VAR_STUB_FIRST = 410,
+     VAR_MINIMAL_RESPONSES = 411,
+     VAR_RRSET_ROUNDROBIN = 412,
+     VAR_MAX_UDP_SIZE = 413,
+     VAR_DELAY_CLOSE = 414,
+     VAR_UDP_CONNECT = 415,
+     VAR_UNBLOCK_LAN_ZONES = 416,
+     VAR_INSECURE_LAN_ZONES = 417,
+     VAR_INFRA_CACHE_MIN_RTT = 418,
+     VAR_INFRA_KEEP_PROBING = 419,
+     VAR_DNS64_PREFIX = 420,
+     VAR_DNS64_SYNTHALL = 421,
+     VAR_DNS64_IGNORE_AAAA = 422,
+     VAR_DNSTAP = 423,
+     VAR_DNSTAP_ENABLE = 424,
+     VAR_DNSTAP_SOCKET_PATH = 425,
+     VAR_DNSTAP_IP = 426,
+     VAR_DNSTAP_TLS = 427,
+     VAR_DNSTAP_TLS_SERVER_NAME = 428,
+     VAR_DNSTAP_TLS_CERT_BUNDLE = 429,
+     VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430,
+     VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431,
+     VAR_DNSTAP_SEND_IDENTITY = 432,
+     VAR_DNSTAP_SEND_VERSION = 433,
+     VAR_DNSTAP_BIDIRECTIONAL = 434,
+     VAR_DNSTAP_IDENTITY = 435,
+     VAR_DNSTAP_VERSION = 436,
+     VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437,
+     VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438,
+     VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439,
+     VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440,
+     VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441,
+     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442,
+     VAR_RESPONSE_IP_TAG = 443,
+     VAR_RESPONSE_IP = 444,
+     VAR_RESPONSE_IP_DATA = 445,
+     VAR_HARDEN_ALGO_DOWNGRADE = 446,
+     VAR_IP_TRANSPARENT = 447,
+     VAR_IP_DSCP = 448,
+     VAR_DISABLE_DNSSEC_LAME_CHECK = 449,
+     VAR_IP_RATELIMIT = 450,
+     VAR_IP_RATELIMIT_SLABS = 451,
+     VAR_IP_RATELIMIT_SIZE = 452,
+     VAR_RATELIMIT = 453,
+     VAR_RATELIMIT_SLABS = 454,
+     VAR_RATELIMIT_SIZE = 455,
+     VAR_OUTBOUND_MSG_RETRY = 456,
+     VAR_RATELIMIT_FOR_DOMAIN = 457,
+     VAR_RATELIMIT_BELOW_DOMAIN = 458,
+     VAR_IP_RATELIMIT_FACTOR = 459,
+     VAR_RATELIMIT_FACTOR = 460,
+     VAR_SEND_CLIENT_SUBNET = 461,
+     VAR_CLIENT_SUBNET_ZONE = 462,
+     VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463,
+     VAR_CLIENT_SUBNET_OPCODE = 464,
+     VAR_MAX_CLIENT_SUBNET_IPV4 = 465,
+     VAR_MAX_CLIENT_SUBNET_IPV6 = 466,
+     VAR_MIN_CLIENT_SUBNET_IPV4 = 467,
+     VAR_MIN_CLIENT_SUBNET_IPV6 = 468,
+     VAR_MAX_ECS_TREE_SIZE_IPV4 = 469,
+     VAR_MAX_ECS_TREE_SIZE_IPV6 = 470,
+     VAR_CAPS_WHITELIST = 471,
+     VAR_CACHE_MAX_NEGATIVE_TTL = 472,
+     VAR_PERMIT_SMALL_HOLDDOWN = 473,
+     VAR_QNAME_MINIMISATION = 474,
+     VAR_QNAME_MINIMISATION_STRICT = 475,
+     VAR_IP_FREEBIND = 476,
+     VAR_DEFINE_TAG = 477,
+     VAR_LOCAL_ZONE_TAG = 478,
+     VAR_ACCESS_CONTROL_TAG = 479,
+     VAR_LOCAL_ZONE_OVERRIDE = 480,
+     VAR_ACCESS_CONTROL_TAG_ACTION = 481,
+     VAR_ACCESS_CONTROL_TAG_DATA = 482,
+     VAR_VIEW = 483,
+     VAR_ACCESS_CONTROL_VIEW = 484,
+     VAR_VIEW_FIRST = 485,
+     VAR_SERVE_EXPIRED = 486,
+     VAR_SERVE_EXPIRED_TTL = 487,
+     VAR_SERVE_EXPIRED_TTL_RESET = 488,
+     VAR_SERVE_EXPIRED_REPLY_TTL = 489,
+     VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490,
+     VAR_SERVE_ORIGINAL_TTL = 491,
+     VAR_FAKE_DSA = 492,
+     VAR_FAKE_SHA1 = 493,
+     VAR_LOG_IDENTITY = 494,
+     VAR_HIDE_TRUSTANCHOR = 495,
+     VAR_HIDE_HTTP_USER_AGENT = 496,
+     VAR_HTTP_USER_AGENT = 497,
+     VAR_TRUST_ANCHOR_SIGNALING = 498,
+     VAR_AGGRESSIVE_NSEC = 499,
+     VAR_USE_SYSTEMD = 500,
+     VAR_SHM_ENABLE = 501,
+     VAR_SHM_KEY = 502,
+     VAR_ROOT_KEY_SENTINEL = 503,
+     VAR_DNSCRYPT = 504,
+     VAR_DNSCRYPT_ENABLE = 505,
+     VAR_DNSCRYPT_PORT = 506,
+     VAR_DNSCRYPT_PROVIDER = 507,
+     VAR_DNSCRYPT_SECRET_KEY = 508,
+     VAR_DNSCRYPT_PROVIDER_CERT = 509,
+     VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510,
+     VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511,
+     VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512,
+     VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513,
+     VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514,
+     VAR_PAD_RESPONSES = 515,
+     VAR_PAD_RESPONSES_BLOCK_SIZE = 516,
+     VAR_PAD_QUERIES = 517,
+     VAR_PAD_QUERIES_BLOCK_SIZE = 518,
+     VAR_IPSECMOD_ENABLED = 519,
+     VAR_IPSECMOD_HOOK = 520,
+     VAR_IPSECMOD_IGNORE_BOGUS = 521,
+     VAR_IPSECMOD_MAX_TTL = 522,
+     VAR_IPSECMOD_WHITELIST = 523,
+     VAR_IPSECMOD_STRICT = 524,
+     VAR_CACHEDB = 525,
+     VAR_CACHEDB_BACKEND = 526,
+     VAR_CACHEDB_SECRETSEED = 527,
+     VAR_CACHEDB_REDISHOST = 528,
+     VAR_CACHEDB_REDISPORT = 529,
+     VAR_CACHEDB_REDISTIMEOUT = 530,
+     VAR_CACHEDB_REDISEXPIRERECORDS = 531,
+     VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532,
+     VAR_FOR_UPSTREAM = 533,
+     VAR_AUTH_ZONE = 534,
+     VAR_ZONEFILE = 535,
+     VAR_MASTER = 536,
+     VAR_URL = 537,
+     VAR_FOR_DOWNSTREAM = 538,
+     VAR_FALLBACK_ENABLED = 539,
+     VAR_TLS_ADDITIONAL_PORT = 540,
+     VAR_LOW_RTT = 541,
+     VAR_LOW_RTT_PERMIL = 542,
+     VAR_FAST_SERVER_PERMIL = 543,
+     VAR_FAST_SERVER_NUM = 544,
+     VAR_ALLOW_NOTIFY = 545,
+     VAR_TLS_WIN_CERT = 546,
+     VAR_TCP_CONNECTION_LIMIT = 547,
+     VAR_FORWARD_NO_CACHE = 548,
+     VAR_STUB_NO_CACHE = 549,
+     VAR_LOG_SERVFAIL = 550,
+     VAR_DENY_ANY = 551,
+     VAR_UNKNOWN_SERVER_TIME_LIMIT = 552,
+     VAR_LOG_TAG_QUERYREPLY = 553,
+     VAR_STREAM_WAIT_SIZE = 554,
+     VAR_TLS_CIPHERS = 555,
+     VAR_TLS_CIPHERSUITES = 556,
+     VAR_TLS_USE_SNI = 557,
+     VAR_IPSET = 558,
+     VAR_IPSET_NAME_V4 = 559,
+     VAR_IPSET_NAME_V6 = 560,
+     VAR_TLS_SESSION_TICKET_KEYS = 561,
+     VAR_RPZ = 562,
+     VAR_TAGS = 563,
+     VAR_RPZ_ACTION_OVERRIDE = 564,
+     VAR_RPZ_CNAME_OVERRIDE = 565,
+     VAR_RPZ_LOG = 566,
+     VAR_RPZ_LOG_NAME = 567,
+     VAR_DYNLIB = 568,
+     VAR_DYNLIB_FILE = 569,
+     VAR_EDNS_CLIENT_STRING = 570,
+     VAR_EDNS_CLIENT_STRING_OPCODE = 571,
+     VAR_NSID = 572,
+     VAR_ZONEMD_PERMISSIVE_MODE = 573,
+     VAR_ZONEMD_CHECK = 574,
+     VAR_ZONEMD_REJECT_ABSENCE = 575,
+     VAR_LOCAL_DATA_DO_EDE = 576
+   };
 #endif
-/* Token kinds.  */
-#define YYEOF 0
-#define YYerror 256
-#define YYUNDEF 257
+/* Tokens.  */
 #define SPACE 258
 #define LETTER 259
 #define NEWLINE 260
@@ -783,779 +706,111 @@ extern int yydebug;
 #define VAR_ZONEMD_PERMISSIVE_MODE 573
 #define VAR_ZONEMD_CHECK 574
 #define VAR_ZONEMD_REJECT_ABSENCE 575
+#define VAR_LOCAL_DATA_DO_EDE 576
 
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-union YYSTYPE
-{
-#line 66 "./util/configparser.y"
 
-       char*   str;
 
-#line 796 "util/configparser.c"
 
-};
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
+/* Copy the first part of user declarations.  */
+#line 38 "./util/configparser.y"
+
+#include "config.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <assert.h>
 
+#include "util/configyyrename.h"
+#include "util/config_file.h"
+#include "util/net_help.h"
 
-extern YYSTYPE yylval;
+int ub_c_lex(void);
+void ub_c_error(const char *message);
 
-int yyparse (void);
+static void validate_respip_action(const char* action);
 
-#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED  */
-/* Symbol kind.  */
-enum yysymbol_kind_t
-{
-  YYSYMBOL_YYEMPTY = -2,
-  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
-  YYSYMBOL_YYerror = 1,                    /* error  */
-  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
-  YYSYMBOL_SPACE = 3,                      /* SPACE  */
-  YYSYMBOL_LETTER = 4,                     /* LETTER  */
-  YYSYMBOL_NEWLINE = 5,                    /* NEWLINE  */
-  YYSYMBOL_COMMENT = 6,                    /* COMMENT  */
-  YYSYMBOL_COLON = 7,                      /* COLON  */
-  YYSYMBOL_ANY = 8,                        /* ANY  */
-  YYSYMBOL_ZONESTR = 9,                    /* ZONESTR  */
-  YYSYMBOL_STRING_ARG = 10,                /* STRING_ARG  */
-  YYSYMBOL_VAR_FORCE_TOPLEVEL = 11,        /* VAR_FORCE_TOPLEVEL  */
-  YYSYMBOL_VAR_SERVER = 12,                /* VAR_SERVER  */
-  YYSYMBOL_VAR_VERBOSITY = 13,             /* VAR_VERBOSITY  */
-  YYSYMBOL_VAR_NUM_THREADS = 14,           /* VAR_NUM_THREADS  */
-  YYSYMBOL_VAR_PORT = 15,                  /* VAR_PORT  */
-  YYSYMBOL_VAR_OUTGOING_RANGE = 16,        /* VAR_OUTGOING_RANGE  */
-  YYSYMBOL_VAR_INTERFACE = 17,             /* VAR_INTERFACE  */
-  YYSYMBOL_VAR_PREFER_IP4 = 18,            /* VAR_PREFER_IP4  */
-  YYSYMBOL_VAR_DO_IP4 = 19,                /* VAR_DO_IP4  */
-  YYSYMBOL_VAR_DO_IP6 = 20,                /* VAR_DO_IP6  */
-  YYSYMBOL_VAR_PREFER_IP6 = 21,            /* VAR_PREFER_IP6  */
-  YYSYMBOL_VAR_DO_UDP = 22,                /* VAR_DO_UDP  */
-  YYSYMBOL_VAR_DO_TCP = 23,                /* VAR_DO_TCP  */
-  YYSYMBOL_VAR_TCP_MSS = 24,               /* VAR_TCP_MSS  */
-  YYSYMBOL_VAR_OUTGOING_TCP_MSS = 25,      /* VAR_OUTGOING_TCP_MSS  */
-  YYSYMBOL_VAR_TCP_IDLE_TIMEOUT = 26,      /* VAR_TCP_IDLE_TIMEOUT  */
-  YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE = 27,    /* VAR_EDNS_TCP_KEEPALIVE  */
-  YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 28, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT  */
-  YYSYMBOL_VAR_CHROOT = 29,                /* VAR_CHROOT  */
-  YYSYMBOL_VAR_USERNAME = 30,              /* VAR_USERNAME  */
-  YYSYMBOL_VAR_DIRECTORY = 31,             /* VAR_DIRECTORY  */
-  YYSYMBOL_VAR_LOGFILE = 32,               /* VAR_LOGFILE  */
-  YYSYMBOL_VAR_PIDFILE = 33,               /* VAR_PIDFILE  */
-  YYSYMBOL_VAR_MSG_CACHE_SIZE = 34,        /* VAR_MSG_CACHE_SIZE  */
-  YYSYMBOL_VAR_MSG_CACHE_SLABS = 35,       /* VAR_MSG_CACHE_SLABS  */
-  YYSYMBOL_VAR_NUM_QUERIES_PER_THREAD = 36, /* VAR_NUM_QUERIES_PER_THREAD  */
-  YYSYMBOL_VAR_RRSET_CACHE_SIZE = 37,      /* VAR_RRSET_CACHE_SIZE  */
-  YYSYMBOL_VAR_RRSET_CACHE_SLABS = 38,     /* VAR_RRSET_CACHE_SLABS  */
-  YYSYMBOL_VAR_OUTGOING_NUM_TCP = 39,      /* VAR_OUTGOING_NUM_TCP  */
-  YYSYMBOL_VAR_INFRA_HOST_TTL = 40,        /* VAR_INFRA_HOST_TTL  */
-  YYSYMBOL_VAR_INFRA_LAME_TTL = 41,        /* VAR_INFRA_LAME_TTL  */
-  YYSYMBOL_VAR_INFRA_CACHE_SLABS = 42,     /* VAR_INFRA_CACHE_SLABS  */
-  YYSYMBOL_VAR_INFRA_CACHE_NUMHOSTS = 43,  /* VAR_INFRA_CACHE_NUMHOSTS  */
-  YYSYMBOL_VAR_INFRA_CACHE_LAME_SIZE = 44, /* VAR_INFRA_CACHE_LAME_SIZE  */
-  YYSYMBOL_VAR_NAME = 45,                  /* VAR_NAME  */
-  YYSYMBOL_VAR_STUB_ZONE = 46,             /* VAR_STUB_ZONE  */
-  YYSYMBOL_VAR_STUB_HOST = 47,             /* VAR_STUB_HOST  */
-  YYSYMBOL_VAR_STUB_ADDR = 48,             /* VAR_STUB_ADDR  */
-  YYSYMBOL_VAR_TARGET_FETCH_POLICY = 49,   /* VAR_TARGET_FETCH_POLICY  */
-  YYSYMBOL_VAR_HARDEN_SHORT_BUFSIZE = 50,  /* VAR_HARDEN_SHORT_BUFSIZE  */
-  YYSYMBOL_VAR_HARDEN_LARGE_QUERIES = 51,  /* VAR_HARDEN_LARGE_QUERIES  */
-  YYSYMBOL_VAR_FORWARD_ZONE = 52,          /* VAR_FORWARD_ZONE  */
-  YYSYMBOL_VAR_FORWARD_HOST = 53,          /* VAR_FORWARD_HOST  */
-  YYSYMBOL_VAR_FORWARD_ADDR = 54,          /* VAR_FORWARD_ADDR  */
-  YYSYMBOL_VAR_DO_NOT_QUERY_ADDRESS = 55,  /* VAR_DO_NOT_QUERY_ADDRESS  */
-  YYSYMBOL_VAR_HIDE_IDENTITY = 56,         /* VAR_HIDE_IDENTITY  */
-  YYSYMBOL_VAR_HIDE_VERSION = 57,          /* VAR_HIDE_VERSION  */
-  YYSYMBOL_VAR_IDENTITY = 58,              /* VAR_IDENTITY  */
-  YYSYMBOL_VAR_VERSION = 59,               /* VAR_VERSION  */
-  YYSYMBOL_VAR_HARDEN_GLUE = 60,           /* VAR_HARDEN_GLUE  */
-  YYSYMBOL_VAR_MODULE_CONF = 61,           /* VAR_MODULE_CONF  */
-  YYSYMBOL_VAR_TRUST_ANCHOR_FILE = 62,     /* VAR_TRUST_ANCHOR_FILE  */
-  YYSYMBOL_VAR_TRUST_ANCHOR = 63,          /* VAR_TRUST_ANCHOR  */
-  YYSYMBOL_VAR_VAL_OVERRIDE_DATE = 64,     /* VAR_VAL_OVERRIDE_DATE  */
-  YYSYMBOL_VAR_BOGUS_TTL = 65,             /* VAR_BOGUS_TTL  */
-  YYSYMBOL_VAR_VAL_CLEAN_ADDITIONAL = 66,  /* VAR_VAL_CLEAN_ADDITIONAL  */
-  YYSYMBOL_VAR_VAL_PERMISSIVE_MODE = 67,   /* VAR_VAL_PERMISSIVE_MODE  */
-  YYSYMBOL_VAR_INCOMING_NUM_TCP = 68,      /* VAR_INCOMING_NUM_TCP  */
-  YYSYMBOL_VAR_MSG_BUFFER_SIZE = 69,       /* VAR_MSG_BUFFER_SIZE  */
-  YYSYMBOL_VAR_KEY_CACHE_SIZE = 70,        /* VAR_KEY_CACHE_SIZE  */
-  YYSYMBOL_VAR_KEY_CACHE_SLABS = 71,       /* VAR_KEY_CACHE_SLABS  */
-  YYSYMBOL_VAR_TRUSTED_KEYS_FILE = 72,     /* VAR_TRUSTED_KEYS_FILE  */
-  YYSYMBOL_VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 73, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS  */
-  YYSYMBOL_VAR_USE_SYSLOG = 74,            /* VAR_USE_SYSLOG  */
-  YYSYMBOL_VAR_OUTGOING_INTERFACE = 75,    /* VAR_OUTGOING_INTERFACE  */
-  YYSYMBOL_VAR_ROOT_HINTS = 76,            /* VAR_ROOT_HINTS  */
-  YYSYMBOL_VAR_DO_NOT_QUERY_LOCALHOST = 77, /* VAR_DO_NOT_QUERY_LOCALHOST  */
-  YYSYMBOL_VAR_CACHE_MAX_TTL = 78,         /* VAR_CACHE_MAX_TTL  */
-  YYSYMBOL_VAR_HARDEN_DNSSEC_STRIPPED = 79, /* VAR_HARDEN_DNSSEC_STRIPPED  */
-  YYSYMBOL_VAR_ACCESS_CONTROL = 80,        /* VAR_ACCESS_CONTROL  */
-  YYSYMBOL_VAR_LOCAL_ZONE = 81,            /* VAR_LOCAL_ZONE  */
-  YYSYMBOL_VAR_LOCAL_DATA = 82,            /* VAR_LOCAL_DATA  */
-  YYSYMBOL_VAR_INTERFACE_AUTOMATIC = 83,   /* VAR_INTERFACE_AUTOMATIC  */
-  YYSYMBOL_VAR_STATISTICS_INTERVAL = 84,   /* VAR_STATISTICS_INTERVAL  */
-  YYSYMBOL_VAR_DO_DAEMONIZE = 85,          /* VAR_DO_DAEMONIZE  */
-  YYSYMBOL_VAR_USE_CAPS_FOR_ID = 86,       /* VAR_USE_CAPS_FOR_ID  */
-  YYSYMBOL_VAR_STATISTICS_CUMULATIVE = 87, /* VAR_STATISTICS_CUMULATIVE  */
-  YYSYMBOL_VAR_OUTGOING_PORT_PERMIT = 88,  /* VAR_OUTGOING_PORT_PERMIT  */
-  YYSYMBOL_VAR_OUTGOING_PORT_AVOID = 89,   /* VAR_OUTGOING_PORT_AVOID  */
-  YYSYMBOL_VAR_DLV_ANCHOR_FILE = 90,       /* VAR_DLV_ANCHOR_FILE  */
-  YYSYMBOL_VAR_DLV_ANCHOR = 91,            /* VAR_DLV_ANCHOR  */
-  YYSYMBOL_VAR_NEG_CACHE_SIZE = 92,        /* VAR_NEG_CACHE_SIZE  */
-  YYSYMBOL_VAR_HARDEN_REFERRAL_PATH = 93,  /* VAR_HARDEN_REFERRAL_PATH  */
-  YYSYMBOL_VAR_PRIVATE_ADDRESS = 94,       /* VAR_PRIVATE_ADDRESS  */
-  YYSYMBOL_VAR_PRIVATE_DOMAIN = 95,        /* VAR_PRIVATE_DOMAIN  */
-  YYSYMBOL_VAR_REMOTE_CONTROL = 96,        /* VAR_REMOTE_CONTROL  */
-  YYSYMBOL_VAR_CONTROL_ENABLE = 97,        /* VAR_CONTROL_ENABLE  */
-  YYSYMBOL_VAR_CONTROL_INTERFACE = 98,     /* VAR_CONTROL_INTERFACE  */
-  YYSYMBOL_VAR_CONTROL_PORT = 99,          /* VAR_CONTROL_PORT  */
-  YYSYMBOL_VAR_SERVER_KEY_FILE = 100,      /* VAR_SERVER_KEY_FILE  */
-  YYSYMBOL_VAR_SERVER_CERT_FILE = 101,     /* VAR_SERVER_CERT_FILE  */
-  YYSYMBOL_VAR_CONTROL_KEY_FILE = 102,     /* VAR_CONTROL_KEY_FILE  */
-  YYSYMBOL_VAR_CONTROL_CERT_FILE = 103,    /* VAR_CONTROL_CERT_FILE  */
-  YYSYMBOL_VAR_CONTROL_USE_CERT = 104,     /* VAR_CONTROL_USE_CERT  */
-  YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 105,    /* VAR_TCP_REUSE_TIMEOUT  */
-  YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 106, /* VAR_MAX_REUSE_TCP_QUERIES  */
-  YYSYMBOL_VAR_EXTENDED_STATISTICS = 107,  /* VAR_EXTENDED_STATISTICS  */
-  YYSYMBOL_VAR_LOCAL_DATA_PTR = 108,       /* VAR_LOCAL_DATA_PTR  */
-  YYSYMBOL_VAR_JOSTLE_TIMEOUT = 109,       /* VAR_JOSTLE_TIMEOUT  */
-  YYSYMBOL_VAR_STUB_PRIME = 110,           /* VAR_STUB_PRIME  */
-  YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 111, /* VAR_UNWANTED_REPLY_THRESHOLD  */
-  YYSYMBOL_VAR_LOG_TIME_ASCII = 112,       /* VAR_LOG_TIME_ASCII  */
-  YYSYMBOL_VAR_DOMAIN_INSECURE = 113,      /* VAR_DOMAIN_INSECURE  */
-  YYSYMBOL_VAR_PYTHON = 114,               /* VAR_PYTHON  */
-  YYSYMBOL_VAR_PYTHON_SCRIPT = 115,        /* VAR_PYTHON_SCRIPT  */
-  YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116,     /* VAR_VAL_SIG_SKEW_MIN  */
-  YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117,     /* VAR_VAL_SIG_SKEW_MAX  */
-  YYSYMBOL_VAR_VAL_MAX_RESTART = 118,      /* VAR_VAL_MAX_RESTART  */
-  YYSYMBOL_VAR_CACHE_MIN_TTL = 119,        /* VAR_CACHE_MIN_TTL  */
-  YYSYMBOL_VAR_VAL_LOG_LEVEL = 120,        /* VAR_VAL_LOG_LEVEL  */
-  YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 121, /* VAR_AUTO_TRUST_ANCHOR_FILE  */
-  YYSYMBOL_VAR_KEEP_MISSING = 122,         /* VAR_KEEP_MISSING  */
-  YYSYMBOL_VAR_ADD_HOLDDOWN = 123,         /* VAR_ADD_HOLDDOWN  */
-  YYSYMBOL_VAR_DEL_HOLDDOWN = 124,         /* VAR_DEL_HOLDDOWN  */
-  YYSYMBOL_VAR_SO_RCVBUF = 125,            /* VAR_SO_RCVBUF  */
-  YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 126,     /* VAR_EDNS_BUFFER_SIZE  */
-  YYSYMBOL_VAR_PREFETCH = 127,             /* VAR_PREFETCH  */
-  YYSYMBOL_VAR_PREFETCH_KEY = 128,         /* VAR_PREFETCH_KEY  */
-  YYSYMBOL_VAR_SO_SNDBUF = 129,            /* VAR_SO_SNDBUF  */
-  YYSYMBOL_VAR_SO_REUSEPORT = 130,         /* VAR_SO_REUSEPORT  */
-  YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 131, /* VAR_HARDEN_BELOW_NXDOMAIN  */
-  YYSYMBOL_VAR_IGNORE_CD_FLAG = 132,       /* VAR_IGNORE_CD_FLAG  */
-  YYSYMBOL_VAR_LOG_QUERIES = 133,          /* VAR_LOG_QUERIES  */
-  YYSYMBOL_VAR_LOG_REPLIES = 134,          /* VAR_LOG_REPLIES  */
-  YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 135,    /* VAR_LOG_LOCAL_ACTIONS  */
-  YYSYMBOL_VAR_TCP_UPSTREAM = 136,         /* VAR_TCP_UPSTREAM  */
-  YYSYMBOL_VAR_SSL_UPSTREAM = 137,         /* VAR_SSL_UPSTREAM  */
-  YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 138, /* VAR_TCP_AUTH_QUERY_TIMEOUT  */
-  YYSYMBOL_VAR_SSL_SERVICE_KEY = 139,      /* VAR_SSL_SERVICE_KEY  */
-  YYSYMBOL_VAR_SSL_SERVICE_PEM = 140,      /* VAR_SSL_SERVICE_PEM  */
-  YYSYMBOL_VAR_SSL_PORT = 141,             /* VAR_SSL_PORT  */
-  YYSYMBOL_VAR_FORWARD_FIRST = 142,        /* VAR_FORWARD_FIRST  */
-  YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 143,    /* VAR_STUB_SSL_UPSTREAM  */
-  YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 144, /* VAR_FORWARD_SSL_UPSTREAM  */
-  YYSYMBOL_VAR_TLS_CERT_BUNDLE = 145,      /* VAR_TLS_CERT_BUNDLE  */
-  YYSYMBOL_VAR_STUB_TCP_UPSTREAM = 146,    /* VAR_STUB_TCP_UPSTREAM  */
-  YYSYMBOL_VAR_FORWARD_TCP_UPSTREAM = 147, /* VAR_FORWARD_TCP_UPSTREAM  */
-  YYSYMBOL_VAR_HTTPS_PORT = 148,           /* VAR_HTTPS_PORT  */
-  YYSYMBOL_VAR_HTTP_ENDPOINT = 149,        /* VAR_HTTP_ENDPOINT  */
-  YYSYMBOL_VAR_HTTP_MAX_STREAMS = 150,     /* VAR_HTTP_MAX_STREAMS  */
-  YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 151, /* VAR_HTTP_QUERY_BUFFER_SIZE  */
-  YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 152, /* VAR_HTTP_RESPONSE_BUFFER_SIZE  */
-  YYSYMBOL_VAR_HTTP_NODELAY = 153,         /* VAR_HTTP_NODELAY  */
-  YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 154, /* VAR_HTTP_NOTLS_DOWNSTREAM  */
-  YYSYMBOL_VAR_STUB_FIRST = 155,           /* VAR_STUB_FIRST  */
-  YYSYMBOL_VAR_MINIMAL_RESPONSES = 156,    /* VAR_MINIMAL_RESPONSES  */
-  YYSYMBOL_VAR_RRSET_ROUNDROBIN = 157,     /* VAR_RRSET_ROUNDROBIN  */
-  YYSYMBOL_VAR_MAX_UDP_SIZE = 158,         /* VAR_MAX_UDP_SIZE  */
-  YYSYMBOL_VAR_DELAY_CLOSE = 159,          /* VAR_DELAY_CLOSE  */
-  YYSYMBOL_VAR_UDP_CONNECT = 160,          /* VAR_UDP_CONNECT  */
-  YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 161,    /* VAR_UNBLOCK_LAN_ZONES  */
-  YYSYMBOL_VAR_INSECURE_LAN_ZONES = 162,   /* VAR_INSECURE_LAN_ZONES  */
-  YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 163,  /* VAR_INFRA_CACHE_MIN_RTT  */
-  YYSYMBOL_VAR_INFRA_KEEP_PROBING = 164,   /* VAR_INFRA_KEEP_PROBING  */
-  YYSYMBOL_VAR_DNS64_PREFIX = 165,         /* VAR_DNS64_PREFIX  */
-  YYSYMBOL_VAR_DNS64_SYNTHALL = 166,       /* VAR_DNS64_SYNTHALL  */
-  YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 167,    /* VAR_DNS64_IGNORE_AAAA  */
-  YYSYMBOL_VAR_DNSTAP = 168,               /* VAR_DNSTAP  */
-  YYSYMBOL_VAR_DNSTAP_ENABLE = 169,        /* VAR_DNSTAP_ENABLE  */
-  YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 170,   /* VAR_DNSTAP_SOCKET_PATH  */
-  YYSYMBOL_VAR_DNSTAP_IP = 171,            /* VAR_DNSTAP_IP  */
-  YYSYMBOL_VAR_DNSTAP_TLS = 172,           /* VAR_DNSTAP_TLS  */
-  YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 173, /* VAR_DNSTAP_TLS_SERVER_NAME  */
-  YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 174, /* VAR_DNSTAP_TLS_CERT_BUNDLE  */
-  YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 175, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE  */
-  YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 176, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE  */
-  YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 177, /* VAR_DNSTAP_SEND_IDENTITY  */
-  YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 178,  /* VAR_DNSTAP_SEND_VERSION  */
-  YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 179, /* VAR_DNSTAP_BIDIRECTIONAL  */
-  YYSYMBOL_VAR_DNSTAP_IDENTITY = 180,      /* VAR_DNSTAP_IDENTITY  */
-  YYSYMBOL_VAR_DNSTAP_VERSION = 181,       /* VAR_DNSTAP_VERSION  */
-  YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES  */
-  YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES  */
-  YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 184, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES  */
-  YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 185, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES  */
-  YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 186, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES  */
-  YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 187, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES  */
-  YYSYMBOL_VAR_RESPONSE_IP_TAG = 188,      /* VAR_RESPONSE_IP_TAG  */
-  YYSYMBOL_VAR_RESPONSE_IP = 189,          /* VAR_RESPONSE_IP  */
-  YYSYMBOL_VAR_RESPONSE_IP_DATA = 190,     /* VAR_RESPONSE_IP_DATA  */
-  YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 191, /* VAR_HARDEN_ALGO_DOWNGRADE  */
-  YYSYMBOL_VAR_IP_TRANSPARENT = 192,       /* VAR_IP_TRANSPARENT  */
-  YYSYMBOL_VAR_IP_DSCP = 193,              /* VAR_IP_DSCP  */
-  YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 194, /* VAR_DISABLE_DNSSEC_LAME_CHECK  */
-  YYSYMBOL_VAR_IP_RATELIMIT = 195,         /* VAR_IP_RATELIMIT  */
-  YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 196,   /* VAR_IP_RATELIMIT_SLABS  */
-  YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 197,    /* VAR_IP_RATELIMIT_SIZE  */
-  YYSYMBOL_VAR_RATELIMIT = 198,            /* VAR_RATELIMIT  */
-  YYSYMBOL_VAR_RATELIMIT_SLABS = 199,      /* VAR_RATELIMIT_SLABS  */
-  YYSYMBOL_VAR_RATELIMIT_SIZE = 200,       /* VAR_RATELIMIT_SIZE  */
-  YYSYMBOL_VAR_OUTBOUND_MSG_RETRY = 201,   /* VAR_OUTBOUND_MSG_RETRY  */
-  YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 202, /* VAR_RATELIMIT_FOR_DOMAIN  */
-  YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 203, /* VAR_RATELIMIT_BELOW_DOMAIN  */
-  YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 204,  /* VAR_IP_RATELIMIT_FACTOR  */
-  YYSYMBOL_VAR_RATELIMIT_FACTOR = 205,     /* VAR_RATELIMIT_FACTOR  */
-  YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 206,   /* VAR_SEND_CLIENT_SUBNET  */
-  YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 207,   /* VAR_CLIENT_SUBNET_ZONE  */
-  YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 208, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD  */
-  YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 209, /* VAR_CLIENT_SUBNET_OPCODE  */
-  YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 210, /* VAR_MAX_CLIENT_SUBNET_IPV4  */
-  YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 211, /* VAR_MAX_CLIENT_SUBNET_IPV6  */
-  YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 212, /* VAR_MIN_CLIENT_SUBNET_IPV4  */
-  YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 213, /* VAR_MIN_CLIENT_SUBNET_IPV6  */
-  YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 214, /* VAR_MAX_ECS_TREE_SIZE_IPV4  */
-  YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 215, /* VAR_MAX_ECS_TREE_SIZE_IPV6  */
-  YYSYMBOL_VAR_CAPS_WHITELIST = 216,       /* VAR_CAPS_WHITELIST  */
-  YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 217, /* VAR_CACHE_MAX_NEGATIVE_TTL  */
-  YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 218, /* VAR_PERMIT_SMALL_HOLDDOWN  */
-  YYSYMBOL_VAR_QNAME_MINIMISATION = 219,   /* VAR_QNAME_MINIMISATION  */
-  YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 220, /* VAR_QNAME_MINIMISATION_STRICT  */
-  YYSYMBOL_VAR_IP_FREEBIND = 221,          /* VAR_IP_FREEBIND  */
-  YYSYMBOL_VAR_DEFINE_TAG = 222,           /* VAR_DEFINE_TAG  */
-  YYSYMBOL_VAR_LOCAL_ZONE_TAG = 223,       /* VAR_LOCAL_ZONE_TAG  */
-  YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 224,   /* VAR_ACCESS_CONTROL_TAG  */
-  YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 225,  /* VAR_LOCAL_ZONE_OVERRIDE  */
-  YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 226, /* VAR_ACCESS_CONTROL_TAG_ACTION  */
-  YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 227, /* VAR_ACCESS_CONTROL_TAG_DATA  */
-  YYSYMBOL_VAR_VIEW = 228,                 /* VAR_VIEW  */
-  YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 229,  /* VAR_ACCESS_CONTROL_VIEW  */
-  YYSYMBOL_VAR_VIEW_FIRST = 230,           /* VAR_VIEW_FIRST  */
-  YYSYMBOL_VAR_SERVE_EXPIRED = 231,        /* VAR_SERVE_EXPIRED  */
-  YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 232,    /* VAR_SERVE_EXPIRED_TTL  */
-  YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 233, /* VAR_SERVE_EXPIRED_TTL_RESET  */
-  YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 234, /* VAR_SERVE_EXPIRED_REPLY_TTL  */
-  YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 235, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT  */
-  YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 236,   /* VAR_SERVE_ORIGINAL_TTL  */
-  YYSYMBOL_VAR_FAKE_DSA = 237,             /* VAR_FAKE_DSA  */
-  YYSYMBOL_VAR_FAKE_SHA1 = 238,            /* VAR_FAKE_SHA1  */
-  YYSYMBOL_VAR_LOG_IDENTITY = 239,         /* VAR_LOG_IDENTITY  */
-  YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 240,     /* VAR_HIDE_TRUSTANCHOR  */
-  YYSYMBOL_VAR_HIDE_HTTP_USER_AGENT = 241, /* VAR_HIDE_HTTP_USER_AGENT  */
-  YYSYMBOL_VAR_HTTP_USER_AGENT = 242,      /* VAR_HTTP_USER_AGENT  */
-  YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 243, /* VAR_TRUST_ANCHOR_SIGNALING  */
-  YYSYMBOL_VAR_AGGRESSIVE_NSEC = 244,      /* VAR_AGGRESSIVE_NSEC  */
-  YYSYMBOL_VAR_USE_SYSTEMD = 245,          /* VAR_USE_SYSTEMD  */
-  YYSYMBOL_VAR_SHM_ENABLE = 246,           /* VAR_SHM_ENABLE  */
-  YYSYMBOL_VAR_SHM_KEY = 247,              /* VAR_SHM_KEY  */
-  YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 248,    /* VAR_ROOT_KEY_SENTINEL  */
-  YYSYMBOL_VAR_DNSCRYPT = 249,             /* VAR_DNSCRYPT  */
-  YYSYMBOL_VAR_DNSCRYPT_ENABLE = 250,      /* VAR_DNSCRYPT_ENABLE  */
-  YYSYMBOL_VAR_DNSCRYPT_PORT = 251,        /* VAR_DNSCRYPT_PORT  */
-  YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 252,    /* VAR_DNSCRYPT_PROVIDER  */
-  YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 253,  /* VAR_DNSCRYPT_SECRET_KEY  */
-  YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 254, /* VAR_DNSCRYPT_PROVIDER_CERT  */
-  YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 255, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED  */
-  YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 256, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE  */
-  YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 257, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS  */
-  YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 258, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE  */
-  YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 259, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS  */
-  YYSYMBOL_VAR_PAD_RESPONSES = 260,        /* VAR_PAD_RESPONSES  */
-  YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 261, /* VAR_PAD_RESPONSES_BLOCK_SIZE  */
-  YYSYMBOL_VAR_PAD_QUERIES = 262,          /* VAR_PAD_QUERIES  */
-  YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 263, /* VAR_PAD_QUERIES_BLOCK_SIZE  */
-  YYSYMBOL_VAR_IPSECMOD_ENABLED = 264,     /* VAR_IPSECMOD_ENABLED  */
-  YYSYMBOL_VAR_IPSECMOD_HOOK = 265,        /* VAR_IPSECMOD_HOOK  */
-  YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 266, /* VAR_IPSECMOD_IGNORE_BOGUS  */
-  YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 267,     /* VAR_IPSECMOD_MAX_TTL  */
-  YYSYMBOL_VAR_IPSECMOD_WHITELIST = 268,   /* VAR_IPSECMOD_WHITELIST  */
-  YYSYMBOL_VAR_IPSECMOD_STRICT = 269,      /* VAR_IPSECMOD_STRICT  */
-  YYSYMBOL_VAR_CACHEDB = 270,              /* VAR_CACHEDB  */
-  YYSYMBOL_VAR_CACHEDB_BACKEND = 271,      /* VAR_CACHEDB_BACKEND  */
-  YYSYMBOL_VAR_CACHEDB_SECRETSEED = 272,   /* VAR_CACHEDB_SECRETSEED  */
-  YYSYMBOL_VAR_CACHEDB_REDISHOST = 273,    /* VAR_CACHEDB_REDISHOST  */
-  YYSYMBOL_VAR_CACHEDB_REDISPORT = 274,    /* VAR_CACHEDB_REDISPORT  */
-  YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 275, /* VAR_CACHEDB_REDISTIMEOUT  */
-  YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 276, /* VAR_CACHEDB_REDISEXPIRERECORDS  */
-  YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 277, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM  */
-  YYSYMBOL_VAR_FOR_UPSTREAM = 278,         /* VAR_FOR_UPSTREAM  */
-  YYSYMBOL_VAR_AUTH_ZONE = 279,            /* VAR_AUTH_ZONE  */
-  YYSYMBOL_VAR_ZONEFILE = 280,             /* VAR_ZONEFILE  */
-  YYSYMBOL_VAR_MASTER = 281,               /* VAR_MASTER  */
-  YYSYMBOL_VAR_URL = 282,                  /* VAR_URL  */
-  YYSYMBOL_VAR_FOR_DOWNSTREAM = 283,       /* VAR_FOR_DOWNSTREAM  */
-  YYSYMBOL_VAR_FALLBACK_ENABLED = 284,     /* VAR_FALLBACK_ENABLED  */
-  YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 285,  /* VAR_TLS_ADDITIONAL_PORT  */
-  YYSYMBOL_VAR_LOW_RTT = 286,              /* VAR_LOW_RTT  */
-  YYSYMBOL_VAR_LOW_RTT_PERMIL = 287,       /* VAR_LOW_RTT_PERMIL  */
-  YYSYMBOL_VAR_FAST_SERVER_PERMIL = 288,   /* VAR_FAST_SERVER_PERMIL  */
-  YYSYMBOL_VAR_FAST_SERVER_NUM = 289,      /* VAR_FAST_SERVER_NUM  */
-  YYSYMBOL_VAR_ALLOW_NOTIFY = 290,         /* VAR_ALLOW_NOTIFY  */
-  YYSYMBOL_VAR_TLS_WIN_CERT = 291,         /* VAR_TLS_WIN_CERT  */
-  YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 292, /* VAR_TCP_CONNECTION_LIMIT  */
-  YYSYMBOL_VAR_FORWARD_NO_CACHE = 293,     /* VAR_FORWARD_NO_CACHE  */
-  YYSYMBOL_VAR_STUB_NO_CACHE = 294,        /* VAR_STUB_NO_CACHE  */
-  YYSYMBOL_VAR_LOG_SERVFAIL = 295,         /* VAR_LOG_SERVFAIL  */
-  YYSYMBOL_VAR_DENY_ANY = 296,             /* VAR_DENY_ANY  */
-  YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 297, /* VAR_UNKNOWN_SERVER_TIME_LIMIT  */
-  YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 298,   /* VAR_LOG_TAG_QUERYREPLY  */
-  YYSYMBOL_VAR_STREAM_WAIT_SIZE = 299,     /* VAR_STREAM_WAIT_SIZE  */
-  YYSYMBOL_VAR_TLS_CIPHERS = 300,          /* VAR_TLS_CIPHERS  */
-  YYSYMBOL_VAR_TLS_CIPHERSUITES = 301,     /* VAR_TLS_CIPHERSUITES  */
-  YYSYMBOL_VAR_TLS_USE_SNI = 302,          /* VAR_TLS_USE_SNI  */
-  YYSYMBOL_VAR_IPSET = 303,                /* VAR_IPSET  */
-  YYSYMBOL_VAR_IPSET_NAME_V4 = 304,        /* VAR_IPSET_NAME_V4  */
-  YYSYMBOL_VAR_IPSET_NAME_V6 = 305,        /* VAR_IPSET_NAME_V6  */
-  YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 306, /* VAR_TLS_SESSION_TICKET_KEYS  */
-  YYSYMBOL_VAR_RPZ = 307,                  /* VAR_RPZ  */
-  YYSYMBOL_VAR_TAGS = 308,                 /* VAR_TAGS  */
-  YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 309,  /* VAR_RPZ_ACTION_OVERRIDE  */
-  YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 310,   /* VAR_RPZ_CNAME_OVERRIDE  */
-  YYSYMBOL_VAR_RPZ_LOG = 311,              /* VAR_RPZ_LOG  */
-  YYSYMBOL_VAR_RPZ_LOG_NAME = 312,         /* VAR_RPZ_LOG_NAME  */
-  YYSYMBOL_VAR_DYNLIB = 313,               /* VAR_DYNLIB  */
-  YYSYMBOL_VAR_DYNLIB_FILE = 314,          /* VAR_DYNLIB_FILE  */
-  YYSYMBOL_VAR_EDNS_CLIENT_STRING = 315,   /* VAR_EDNS_CLIENT_STRING  */
-  YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 316, /* VAR_EDNS_CLIENT_STRING_OPCODE  */
-  YYSYMBOL_VAR_NSID = 317,                 /* VAR_NSID  */
-  YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 318, /* VAR_ZONEMD_PERMISSIVE_MODE  */
-  YYSYMBOL_VAR_ZONEMD_CHECK = 319,         /* VAR_ZONEMD_CHECK  */
-  YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 320, /* VAR_ZONEMD_REJECT_ABSENCE  */
-  YYSYMBOL_YYACCEPT = 321,                 /* $accept  */
-  YYSYMBOL_toplevelvars = 322,             /* toplevelvars  */
-  YYSYMBOL_toplevelvar = 323,              /* toplevelvar  */
-  YYSYMBOL_force_toplevel = 324,           /* force_toplevel  */
-  YYSYMBOL_serverstart = 325,              /* serverstart  */
-  YYSYMBOL_contents_server = 326,          /* contents_server  */
-  YYSYMBOL_content_server = 327,           /* content_server  */
-  YYSYMBOL_stubstart = 328,                /* stubstart  */
-  YYSYMBOL_contents_stub = 329,            /* contents_stub  */
-  YYSYMBOL_content_stub = 330,             /* content_stub  */
-  YYSYMBOL_forwardstart = 331,             /* forwardstart  */
-  YYSYMBOL_contents_forward = 332,         /* contents_forward  */
-  YYSYMBOL_content_forward = 333,          /* content_forward  */
-  YYSYMBOL_viewstart = 334,                /* viewstart  */
-  YYSYMBOL_contents_view = 335,            /* contents_view  */
-  YYSYMBOL_content_view = 336,             /* content_view  */
-  YYSYMBOL_authstart = 337,                /* authstart  */
-  YYSYMBOL_contents_auth = 338,            /* contents_auth  */
-  YYSYMBOL_content_auth = 339,             /* content_auth  */
-  YYSYMBOL_rpz_tag = 340,                  /* rpz_tag  */
-  YYSYMBOL_rpz_action_override = 341,      /* rpz_action_override  */
-  YYSYMBOL_rpz_cname_override = 342,       /* rpz_cname_override  */
-  YYSYMBOL_rpz_log = 343,                  /* rpz_log  */
-  YYSYMBOL_rpz_log_name = 344,             /* rpz_log_name  */
-  YYSYMBOL_rpzstart = 345,                 /* rpzstart  */
-  YYSYMBOL_contents_rpz = 346,             /* contents_rpz  */
-  YYSYMBOL_content_rpz = 347,              /* content_rpz  */
-  YYSYMBOL_server_num_threads = 348,       /* server_num_threads  */
-  YYSYMBOL_server_verbosity = 349,         /* server_verbosity  */
-  YYSYMBOL_server_statistics_interval = 350, /* server_statistics_interval  */
-  YYSYMBOL_server_statistics_cumulative = 351, /* server_statistics_cumulative  */
-  YYSYMBOL_server_extended_statistics = 352, /* server_extended_statistics  */
-  YYSYMBOL_server_shm_enable = 353,        /* server_shm_enable  */
-  YYSYMBOL_server_shm_key = 354,           /* server_shm_key  */
-  YYSYMBOL_server_port = 355,              /* server_port  */
-  YYSYMBOL_server_send_client_subnet = 356, /* server_send_client_subnet  */
-  YYSYMBOL_server_client_subnet_zone = 357, /* server_client_subnet_zone  */
-  YYSYMBOL_server_client_subnet_always_forward = 358, /* server_client_subnet_always_forward  */
-  YYSYMBOL_server_client_subnet_opcode = 359, /* server_client_subnet_opcode  */
-  YYSYMBOL_server_max_client_subnet_ipv4 = 360, /* server_max_client_subnet_ipv4  */
-  YYSYMBOL_server_max_client_subnet_ipv6 = 361, /* server_max_client_subnet_ipv6  */
-  YYSYMBOL_server_min_client_subnet_ipv4 = 362, /* server_min_client_subnet_ipv4  */
-  YYSYMBOL_server_min_client_subnet_ipv6 = 363, /* server_min_client_subnet_ipv6  */
-  YYSYMBOL_server_max_ecs_tree_size_ipv4 = 364, /* server_max_ecs_tree_size_ipv4  */
-  YYSYMBOL_server_max_ecs_tree_size_ipv6 = 365, /* server_max_ecs_tree_size_ipv6  */
-  YYSYMBOL_server_interface = 366,         /* server_interface  */
-  YYSYMBOL_server_outgoing_interface = 367, /* server_outgoing_interface  */
-  YYSYMBOL_server_outgoing_range = 368,    /* server_outgoing_range  */
-  YYSYMBOL_server_outgoing_port_permit = 369, /* server_outgoing_port_permit  */
-  YYSYMBOL_server_outgoing_port_avoid = 370, /* server_outgoing_port_avoid  */
-  YYSYMBOL_server_outgoing_num_tcp = 371,  /* server_outgoing_num_tcp  */
-  YYSYMBOL_server_incoming_num_tcp = 372,  /* server_incoming_num_tcp  */
-  YYSYMBOL_server_interface_automatic = 373, /* server_interface_automatic  */
-  YYSYMBOL_server_do_ip4 = 374,            /* server_do_ip4  */
-  YYSYMBOL_server_do_ip6 = 375,            /* server_do_ip6  */
-  YYSYMBOL_server_do_udp = 376,            /* server_do_udp  */
-  YYSYMBOL_server_do_tcp = 377,            /* server_do_tcp  */
-  YYSYMBOL_server_prefer_ip4 = 378,        /* server_prefer_ip4  */
-  YYSYMBOL_server_prefer_ip6 = 379,        /* server_prefer_ip6  */
-  YYSYMBOL_server_tcp_mss = 380,           /* server_tcp_mss  */
-  YYSYMBOL_server_outgoing_tcp_mss = 381,  /* server_outgoing_tcp_mss  */
-  YYSYMBOL_server_tcp_idle_timeout = 382,  /* server_tcp_idle_timeout  */
-  YYSYMBOL_server_max_reuse_tcp_queries = 383, /* server_max_reuse_tcp_queries  */
-  YYSYMBOL_server_tcp_reuse_timeout = 384, /* server_tcp_reuse_timeout  */
-  YYSYMBOL_server_tcp_auth_query_timeout = 385, /* server_tcp_auth_query_timeout  */
-  YYSYMBOL_server_tcp_keepalive = 386,     /* server_tcp_keepalive  */
-  YYSYMBOL_server_tcp_keepalive_timeout = 387, /* server_tcp_keepalive_timeout  */
-  YYSYMBOL_server_tcp_upstream = 388,      /* server_tcp_upstream  */
-  YYSYMBOL_server_udp_upstream_without_downstream = 389, /* server_udp_upstream_without_downstream  */
-  YYSYMBOL_server_ssl_upstream = 390,      /* server_ssl_upstream  */
-  YYSYMBOL_server_ssl_service_key = 391,   /* server_ssl_service_key  */
-  YYSYMBOL_server_ssl_service_pem = 392,   /* server_ssl_service_pem  */
-  YYSYMBOL_server_ssl_port = 393,          /* server_ssl_port  */
-  YYSYMBOL_server_tls_cert_bundle = 394,   /* server_tls_cert_bundle  */
-  YYSYMBOL_server_tls_win_cert = 395,      /* server_tls_win_cert  */
-  YYSYMBOL_server_tls_additional_port = 396, /* server_tls_additional_port  */
-  YYSYMBOL_server_tls_ciphers = 397,       /* server_tls_ciphers  */
-  YYSYMBOL_server_tls_ciphersuites = 398,  /* server_tls_ciphersuites  */
-  YYSYMBOL_server_tls_session_ticket_keys = 399, /* server_tls_session_ticket_keys  */
-  YYSYMBOL_server_tls_use_sni = 400,       /* server_tls_use_sni  */
-  YYSYMBOL_server_https_port = 401,        /* server_https_port  */
-  YYSYMBOL_server_http_endpoint = 402,     /* server_http_endpoint  */
-  YYSYMBOL_server_http_max_streams = 403,  /* server_http_max_streams  */
-  YYSYMBOL_server_http_query_buffer_size = 404, /* server_http_query_buffer_size  */
-  YYSYMBOL_server_http_response_buffer_size = 405, /* server_http_response_buffer_size  */
-  YYSYMBOL_server_http_nodelay = 406,      /* server_http_nodelay  */
-  YYSYMBOL_server_http_notls_downstream = 407, /* server_http_notls_downstream  */
-  YYSYMBOL_server_use_systemd = 408,       /* server_use_systemd  */
-  YYSYMBOL_server_do_daemonize = 409,      /* server_do_daemonize  */
-  YYSYMBOL_server_use_syslog = 410,        /* server_use_syslog  */
-  YYSYMBOL_server_log_time_ascii = 411,    /* server_log_time_ascii  */
-  YYSYMBOL_server_log_queries = 412,       /* server_log_queries  */
-  YYSYMBOL_server_log_replies = 413,       /* server_log_replies  */
-  YYSYMBOL_server_log_tag_queryreply = 414, /* server_log_tag_queryreply  */
-  YYSYMBOL_server_log_servfail = 415,      /* server_log_servfail  */
-  YYSYMBOL_server_log_local_actions = 416, /* server_log_local_actions  */
-  YYSYMBOL_server_chroot = 417,            /* server_chroot  */
-  YYSYMBOL_server_username = 418,          /* server_username  */
-  YYSYMBOL_server_directory = 419,         /* server_directory  */
-  YYSYMBOL_server_logfile = 420,           /* server_logfile  */
-  YYSYMBOL_server_pidfile = 421,           /* server_pidfile  */
-  YYSYMBOL_server_root_hints = 422,        /* server_root_hints  */
-  YYSYMBOL_server_dlv_anchor_file = 423,   /* server_dlv_anchor_file  */
-  YYSYMBOL_server_dlv_anchor = 424,        /* server_dlv_anchor  */
-  YYSYMBOL_server_auto_trust_anchor_file = 425, /* server_auto_trust_anchor_file  */
-  YYSYMBOL_server_trust_anchor_file = 426, /* server_trust_anchor_file  */
-  YYSYMBOL_server_trusted_keys_file = 427, /* server_trusted_keys_file  */
-  YYSYMBOL_server_trust_anchor = 428,      /* server_trust_anchor  */
-  YYSYMBOL_server_trust_anchor_signaling = 429, /* server_trust_anchor_signaling  */
-  YYSYMBOL_server_root_key_sentinel = 430, /* server_root_key_sentinel  */
-  YYSYMBOL_server_domain_insecure = 431,   /* server_domain_insecure  */
-  YYSYMBOL_server_hide_identity = 432,     /* server_hide_identity  */
-  YYSYMBOL_server_hide_version = 433,      /* server_hide_version  */
-  YYSYMBOL_server_hide_trustanchor = 434,  /* server_hide_trustanchor  */
-  YYSYMBOL_server_hide_http_user_agent = 435, /* server_hide_http_user_agent  */
-  YYSYMBOL_server_identity = 436,          /* server_identity  */
-  YYSYMBOL_server_version = 437,           /* server_version  */
-  YYSYMBOL_server_http_user_agent = 438,   /* server_http_user_agent  */
-  YYSYMBOL_server_nsid = 439,              /* server_nsid  */
-  YYSYMBOL_server_so_rcvbuf = 440,         /* server_so_rcvbuf  */
-  YYSYMBOL_server_so_sndbuf = 441,         /* server_so_sndbuf  */
-  YYSYMBOL_server_so_reuseport = 442,      /* server_so_reuseport  */
-  YYSYMBOL_server_ip_transparent = 443,    /* server_ip_transparent  */
-  YYSYMBOL_server_ip_freebind = 444,       /* server_ip_freebind  */
-  YYSYMBOL_server_ip_dscp = 445,           /* server_ip_dscp  */
-  YYSYMBOL_server_stream_wait_size = 446,  /* server_stream_wait_size  */
-  YYSYMBOL_server_edns_buffer_size = 447,  /* server_edns_buffer_size  */
-  YYSYMBOL_server_msg_buffer_size = 448,   /* server_msg_buffer_size  */
-  YYSYMBOL_server_msg_cache_size = 449,    /* server_msg_cache_size  */
-  YYSYMBOL_server_msg_cache_slabs = 450,   /* server_msg_cache_slabs  */
-  YYSYMBOL_server_num_queries_per_thread = 451, /* server_num_queries_per_thread  */
-  YYSYMBOL_server_jostle_timeout = 452,    /* server_jostle_timeout  */
-  YYSYMBOL_server_delay_close = 453,       /* server_delay_close  */
-  YYSYMBOL_server_udp_connect = 454,       /* server_udp_connect  */
-  YYSYMBOL_server_unblock_lan_zones = 455, /* server_unblock_lan_zones  */
-  YYSYMBOL_server_insecure_lan_zones = 456, /* server_insecure_lan_zones  */
-  YYSYMBOL_server_rrset_cache_size = 457,  /* server_rrset_cache_size  */
-  YYSYMBOL_server_rrset_cache_slabs = 458, /* server_rrset_cache_slabs  */
-  YYSYMBOL_server_infra_host_ttl = 459,    /* server_infra_host_ttl  */
-  YYSYMBOL_server_infra_lame_ttl = 460,    /* server_infra_lame_ttl  */
-  YYSYMBOL_server_infra_cache_numhosts = 461, /* server_infra_cache_numhosts  */
-  YYSYMBOL_server_infra_cache_lame_size = 462, /* server_infra_cache_lame_size  */
-  YYSYMBOL_server_infra_cache_slabs = 463, /* server_infra_cache_slabs  */
-  YYSYMBOL_server_infra_cache_min_rtt = 464, /* server_infra_cache_min_rtt  */
-  YYSYMBOL_server_infra_keep_probing = 465, /* server_infra_keep_probing  */
-  YYSYMBOL_server_target_fetch_policy = 466, /* server_target_fetch_policy  */
-  YYSYMBOL_server_harden_short_bufsize = 467, /* server_harden_short_bufsize  */
-  YYSYMBOL_server_harden_large_queries = 468, /* server_harden_large_queries  */
-  YYSYMBOL_server_harden_glue = 469,       /* server_harden_glue  */
-  YYSYMBOL_server_harden_dnssec_stripped = 470, /* server_harden_dnssec_stripped  */
-  YYSYMBOL_server_harden_below_nxdomain = 471, /* server_harden_below_nxdomain  */
-  YYSYMBOL_server_harden_referral_path = 472, /* server_harden_referral_path  */
-  YYSYMBOL_server_harden_algo_downgrade = 473, /* server_harden_algo_downgrade  */
-  YYSYMBOL_server_use_caps_for_id = 474,   /* server_use_caps_for_id  */
-  YYSYMBOL_server_caps_whitelist = 475,    /* server_caps_whitelist  */
-  YYSYMBOL_server_private_address = 476,   /* server_private_address  */
-  YYSYMBOL_server_private_domain = 477,    /* server_private_domain  */
-  YYSYMBOL_server_prefetch = 478,          /* server_prefetch  */
-  YYSYMBOL_server_prefetch_key = 479,      /* server_prefetch_key  */
-  YYSYMBOL_server_deny_any = 480,          /* server_deny_any  */
-  YYSYMBOL_server_unwanted_reply_threshold = 481, /* server_unwanted_reply_threshold  */
-  YYSYMBOL_server_do_not_query_address = 482, /* server_do_not_query_address  */
-  YYSYMBOL_server_do_not_query_localhost = 483, /* server_do_not_query_localhost  */
-  YYSYMBOL_server_access_control = 484,    /* server_access_control  */
-  YYSYMBOL_server_module_conf = 485,       /* server_module_conf  */
-  YYSYMBOL_server_val_override_date = 486, /* server_val_override_date  */
-  YYSYMBOL_server_val_sig_skew_min = 487,  /* server_val_sig_skew_min  */
-  YYSYMBOL_server_val_sig_skew_max = 488,  /* server_val_sig_skew_max  */
-  YYSYMBOL_server_val_max_restart = 489,   /* server_val_max_restart  */
-  YYSYMBOL_server_cache_max_ttl = 490,     /* server_cache_max_ttl  */
-  YYSYMBOL_server_cache_max_negative_ttl = 491, /* server_cache_max_negative_ttl  */
-  YYSYMBOL_server_cache_min_ttl = 492,     /* server_cache_min_ttl  */
-  YYSYMBOL_server_bogus_ttl = 493,         /* server_bogus_ttl  */
-  YYSYMBOL_server_val_clean_additional = 494, /* server_val_clean_additional  */
-  YYSYMBOL_server_val_permissive_mode = 495, /* server_val_permissive_mode  */
-  YYSYMBOL_server_aggressive_nsec = 496,   /* server_aggressive_nsec  */
-  YYSYMBOL_server_ignore_cd_flag = 497,    /* server_ignore_cd_flag  */
-  YYSYMBOL_server_serve_expired = 498,     /* server_serve_expired  */
-  YYSYMBOL_server_serve_expired_ttl = 499, /* server_serve_expired_ttl  */
-  YYSYMBOL_server_serve_expired_ttl_reset = 500, /* server_serve_expired_ttl_reset  */
-  YYSYMBOL_server_serve_expired_reply_ttl = 501, /* server_serve_expired_reply_ttl  */
-  YYSYMBOL_server_serve_expired_client_timeout = 502, /* server_serve_expired_client_timeout  */
-  YYSYMBOL_server_serve_original_ttl = 503, /* server_serve_original_ttl  */
-  YYSYMBOL_server_fake_dsa = 504,          /* server_fake_dsa  */
-  YYSYMBOL_server_fake_sha1 = 505,         /* server_fake_sha1  */
-  YYSYMBOL_server_val_log_level = 506,     /* server_val_log_level  */
-  YYSYMBOL_server_val_nsec3_keysize_iterations = 507, /* server_val_nsec3_keysize_iterations  */
-  YYSYMBOL_server_zonemd_permissive_mode = 508, /* server_zonemd_permissive_mode  */
-  YYSYMBOL_server_add_holddown = 509,      /* server_add_holddown  */
-  YYSYMBOL_server_del_holddown = 510,      /* server_del_holddown  */
-  YYSYMBOL_server_keep_missing = 511,      /* server_keep_missing  */
-  YYSYMBOL_server_permit_small_holddown = 512, /* server_permit_small_holddown  */
-  YYSYMBOL_server_key_cache_size = 513,    /* server_key_cache_size  */
-  YYSYMBOL_server_key_cache_slabs = 514,   /* server_key_cache_slabs  */
-  YYSYMBOL_server_neg_cache_size = 515,    /* server_neg_cache_size  */
-  YYSYMBOL_server_local_zone = 516,        /* server_local_zone  */
-  YYSYMBOL_server_local_data = 517,        /* server_local_data  */
-  YYSYMBOL_server_local_data_ptr = 518,    /* server_local_data_ptr  */
-  YYSYMBOL_server_minimal_responses = 519, /* server_minimal_responses  */
-  YYSYMBOL_server_rrset_roundrobin = 520,  /* server_rrset_roundrobin  */
-  YYSYMBOL_server_unknown_server_time_limit = 521, /* server_unknown_server_time_limit  */
-  YYSYMBOL_server_max_udp_size = 522,      /* server_max_udp_size  */
-  YYSYMBOL_server_dns64_prefix = 523,      /* server_dns64_prefix  */
-  YYSYMBOL_server_dns64_synthall = 524,    /* server_dns64_synthall  */
-  YYSYMBOL_server_dns64_ignore_aaaa = 525, /* server_dns64_ignore_aaaa  */
-  YYSYMBOL_server_define_tag = 526,        /* server_define_tag  */
-  YYSYMBOL_server_local_zone_tag = 527,    /* server_local_zone_tag  */
-  YYSYMBOL_server_access_control_tag = 528, /* server_access_control_tag  */
-  YYSYMBOL_server_access_control_tag_action = 529, /* server_access_control_tag_action  */
-  YYSYMBOL_server_access_control_tag_data = 530, /* server_access_control_tag_data  */
-  YYSYMBOL_server_local_zone_override = 531, /* server_local_zone_override  */
-  YYSYMBOL_server_access_control_view = 532, /* server_access_control_view  */
-  YYSYMBOL_server_response_ip_tag = 533,   /* server_response_ip_tag  */
-  YYSYMBOL_server_ip_ratelimit = 534,      /* server_ip_ratelimit  */
-  YYSYMBOL_server_ratelimit = 535,         /* server_ratelimit  */
-  YYSYMBOL_server_ip_ratelimit_size = 536, /* server_ip_ratelimit_size  */
-  YYSYMBOL_server_ratelimit_size = 537,    /* server_ratelimit_size  */
-  YYSYMBOL_server_ip_ratelimit_slabs = 538, /* server_ip_ratelimit_slabs  */
-  YYSYMBOL_server_ratelimit_slabs = 539,   /* server_ratelimit_slabs  */
-  YYSYMBOL_server_ratelimit_for_domain = 540, /* server_ratelimit_for_domain  */
-  YYSYMBOL_server_ratelimit_below_domain = 541, /* server_ratelimit_below_domain  */
-  YYSYMBOL_server_ip_ratelimit_factor = 542, /* server_ip_ratelimit_factor  */
-  YYSYMBOL_server_ratelimit_factor = 543,  /* server_ratelimit_factor  */
-  YYSYMBOL_server_outbound_msg_retry = 544, /* server_outbound_msg_retry  */
-  YYSYMBOL_server_low_rtt = 545,           /* server_low_rtt  */
-  YYSYMBOL_server_fast_server_num = 546,   /* server_fast_server_num  */
-  YYSYMBOL_server_fast_server_permil = 547, /* server_fast_server_permil  */
-  YYSYMBOL_server_qname_minimisation = 548, /* server_qname_minimisation  */
-  YYSYMBOL_server_qname_minimisation_strict = 549, /* server_qname_minimisation_strict  */
-  YYSYMBOL_server_pad_responses = 550,     /* server_pad_responses  */
-  YYSYMBOL_server_pad_responses_block_size = 551, /* server_pad_responses_block_size  */
-  YYSYMBOL_server_pad_queries = 552,       /* server_pad_queries  */
-  YYSYMBOL_server_pad_queries_block_size = 553, /* server_pad_queries_block_size  */
-  YYSYMBOL_server_ipsecmod_enabled = 554,  /* server_ipsecmod_enabled  */
-  YYSYMBOL_server_ipsecmod_ignore_bogus = 555, /* server_ipsecmod_ignore_bogus  */
-  YYSYMBOL_server_ipsecmod_hook = 556,     /* server_ipsecmod_hook  */
-  YYSYMBOL_server_ipsecmod_max_ttl = 557,  /* server_ipsecmod_max_ttl  */
-  YYSYMBOL_server_ipsecmod_whitelist = 558, /* server_ipsecmod_whitelist  */
-  YYSYMBOL_server_ipsecmod_strict = 559,   /* server_ipsecmod_strict  */
-  YYSYMBOL_server_edns_client_string = 560, /* server_edns_client_string  */
-  YYSYMBOL_server_edns_client_string_opcode = 561, /* server_edns_client_string_opcode  */
-  YYSYMBOL_stub_name = 562,                /* stub_name  */
-  YYSYMBOL_stub_host = 563,                /* stub_host  */
-  YYSYMBOL_stub_addr = 564,                /* stub_addr  */
-  YYSYMBOL_stub_first = 565,               /* stub_first  */
-  YYSYMBOL_stub_no_cache = 566,            /* stub_no_cache  */
-  YYSYMBOL_stub_ssl_upstream = 567,        /* stub_ssl_upstream  */
-  YYSYMBOL_stub_tcp_upstream = 568,        /* stub_tcp_upstream  */
-  YYSYMBOL_stub_prime = 569,               /* stub_prime  */
-  YYSYMBOL_forward_name = 570,             /* forward_name  */
-  YYSYMBOL_forward_host = 571,             /* forward_host  */
-  YYSYMBOL_forward_addr = 572,             /* forward_addr  */
-  YYSYMBOL_forward_first = 573,            /* forward_first  */
-  YYSYMBOL_forward_no_cache = 574,         /* forward_no_cache  */
-  YYSYMBOL_forward_ssl_upstream = 575,     /* forward_ssl_upstream  */
-  YYSYMBOL_forward_tcp_upstream = 576,     /* forward_tcp_upstream  */
-  YYSYMBOL_auth_name = 577,                /* auth_name  */
-  YYSYMBOL_auth_zonefile = 578,            /* auth_zonefile  */
-  YYSYMBOL_auth_master = 579,              /* auth_master  */
-  YYSYMBOL_auth_url = 580,                 /* auth_url  */
-  YYSYMBOL_auth_allow_notify = 581,        /* auth_allow_notify  */
-  YYSYMBOL_auth_zonemd_check = 582,        /* auth_zonemd_check  */
-  YYSYMBOL_auth_zonemd_reject_absence = 583, /* auth_zonemd_reject_absence  */
-  YYSYMBOL_auth_for_downstream = 584,      /* auth_for_downstream  */
-  YYSYMBOL_auth_for_upstream = 585,        /* auth_for_upstream  */
-  YYSYMBOL_auth_fallback_enabled = 586,    /* auth_fallback_enabled  */
-  YYSYMBOL_view_name = 587,                /* view_name  */
-  YYSYMBOL_view_local_zone = 588,          /* view_local_zone  */
-  YYSYMBOL_view_response_ip = 589,         /* view_response_ip  */
-  YYSYMBOL_view_response_ip_data = 590,    /* view_response_ip_data  */
-  YYSYMBOL_view_local_data = 591,          /* view_local_data  */
-  YYSYMBOL_view_local_data_ptr = 592,      /* view_local_data_ptr  */
-  YYSYMBOL_view_first = 593,               /* view_first  */
-  YYSYMBOL_rcstart = 594,                  /* rcstart  */
-  YYSYMBOL_contents_rc = 595,              /* contents_rc  */
-  YYSYMBOL_content_rc = 596,               /* content_rc  */
-  YYSYMBOL_rc_control_enable = 597,        /* rc_control_enable  */
-  YYSYMBOL_rc_control_port = 598,          /* rc_control_port  */
-  YYSYMBOL_rc_control_interface = 599,     /* rc_control_interface  */
-  YYSYMBOL_rc_control_use_cert = 600,      /* rc_control_use_cert  */
-  YYSYMBOL_rc_server_key_file = 601,       /* rc_server_key_file  */
-  YYSYMBOL_rc_server_cert_file = 602,      /* rc_server_cert_file  */
-  YYSYMBOL_rc_control_key_file = 603,      /* rc_control_key_file  */
-  YYSYMBOL_rc_control_cert_file = 604,     /* rc_control_cert_file  */
-  YYSYMBOL_dtstart = 605,                  /* dtstart  */
-  YYSYMBOL_contents_dt = 606,              /* contents_dt  */
-  YYSYMBOL_content_dt = 607,               /* content_dt  */
-  YYSYMBOL_dt_dnstap_enable = 608,         /* dt_dnstap_enable  */
-  YYSYMBOL_dt_dnstap_bidirectional = 609,  /* dt_dnstap_bidirectional  */
-  YYSYMBOL_dt_dnstap_socket_path = 610,    /* dt_dnstap_socket_path  */
-  YYSYMBOL_dt_dnstap_ip = 611,             /* dt_dnstap_ip  */
-  YYSYMBOL_dt_dnstap_tls = 612,            /* dt_dnstap_tls  */
-  YYSYMBOL_dt_dnstap_tls_server_name = 613, /* dt_dnstap_tls_server_name  */
-  YYSYMBOL_dt_dnstap_tls_cert_bundle = 614, /* dt_dnstap_tls_cert_bundle  */
-  YYSYMBOL_dt_dnstap_tls_client_key_file = 615, /* dt_dnstap_tls_client_key_file  */
-  YYSYMBOL_dt_dnstap_tls_client_cert_file = 616, /* dt_dnstap_tls_client_cert_file  */
-  YYSYMBOL_dt_dnstap_send_identity = 617,  /* dt_dnstap_send_identity  */
-  YYSYMBOL_dt_dnstap_send_version = 618,   /* dt_dnstap_send_version  */
-  YYSYMBOL_dt_dnstap_identity = 619,       /* dt_dnstap_identity  */
-  YYSYMBOL_dt_dnstap_version = 620,        /* dt_dnstap_version  */
-  YYSYMBOL_dt_dnstap_log_resolver_query_messages = 621, /* dt_dnstap_log_resolver_query_messages  */
-  YYSYMBOL_dt_dnstap_log_resolver_response_messages = 622, /* dt_dnstap_log_resolver_response_messages  */
-  YYSYMBOL_dt_dnstap_log_client_query_messages = 623, /* dt_dnstap_log_client_query_messages  */
-  YYSYMBOL_dt_dnstap_log_client_response_messages = 624, /* dt_dnstap_log_client_response_messages  */
-  YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 625, /* dt_dnstap_log_forwarder_query_messages  */
-  YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 626, /* dt_dnstap_log_forwarder_response_messages  */
-  YYSYMBOL_pythonstart = 627,              /* pythonstart  */
-  YYSYMBOL_contents_py = 628,              /* contents_py  */
-  YYSYMBOL_content_py = 629,               /* content_py  */
-  YYSYMBOL_py_script = 630,                /* py_script  */
-  YYSYMBOL_dynlibstart = 631,              /* dynlibstart  */
-  YYSYMBOL_contents_dl = 632,              /* contents_dl  */
-  YYSYMBOL_content_dl = 633,               /* content_dl  */
-  YYSYMBOL_dl_file = 634,                  /* dl_file  */
-  YYSYMBOL_server_disable_dnssec_lame_check = 635, /* server_disable_dnssec_lame_check  */
-  YYSYMBOL_server_log_identity = 636,      /* server_log_identity  */
-  YYSYMBOL_server_response_ip = 637,       /* server_response_ip  */
-  YYSYMBOL_server_response_ip_data = 638,  /* server_response_ip_data  */
-  YYSYMBOL_dnscstart = 639,                /* dnscstart  */
-  YYSYMBOL_contents_dnsc = 640,            /* contents_dnsc  */
-  YYSYMBOL_content_dnsc = 641,             /* content_dnsc  */
-  YYSYMBOL_dnsc_dnscrypt_enable = 642,     /* dnsc_dnscrypt_enable  */
-  YYSYMBOL_dnsc_dnscrypt_port = 643,       /* dnsc_dnscrypt_port  */
-  YYSYMBOL_dnsc_dnscrypt_provider = 644,   /* dnsc_dnscrypt_provider  */
-  YYSYMBOL_dnsc_dnscrypt_provider_cert = 645, /* dnsc_dnscrypt_provider_cert  */
-  YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 646, /* dnsc_dnscrypt_provider_cert_rotated  */
-  YYSYMBOL_dnsc_dnscrypt_secret_key = 647, /* dnsc_dnscrypt_secret_key  */
-  YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 648, /* dnsc_dnscrypt_shared_secret_cache_size  */
-  YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 649, /* dnsc_dnscrypt_shared_secret_cache_slabs  */
-  YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 650, /* dnsc_dnscrypt_nonce_cache_size  */
-  YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 651, /* dnsc_dnscrypt_nonce_cache_slabs  */
-  YYSYMBOL_cachedbstart = 652,             /* cachedbstart  */
-  YYSYMBOL_contents_cachedb = 653,         /* contents_cachedb  */
-  YYSYMBOL_content_cachedb = 654,          /* content_cachedb  */
-  YYSYMBOL_cachedb_backend_name = 655,     /* cachedb_backend_name  */
-  YYSYMBOL_cachedb_secret_seed = 656,      /* cachedb_secret_seed  */
-  YYSYMBOL_redis_server_host = 657,        /* redis_server_host  */
-  YYSYMBOL_redis_server_port = 658,        /* redis_server_port  */
-  YYSYMBOL_redis_timeout = 659,            /* redis_timeout  */
-  YYSYMBOL_redis_expire_records = 660,     /* redis_expire_records  */
-  YYSYMBOL_server_tcp_connection_limit = 661, /* server_tcp_connection_limit  */
-  YYSYMBOL_ipsetstart = 662,               /* ipsetstart  */
-  YYSYMBOL_contents_ipset = 663,           /* contents_ipset  */
-  YYSYMBOL_content_ipset = 664,            /* content_ipset  */
-  YYSYMBOL_ipset_name_v4 = 665,            /* ipset_name_v4  */
-  YYSYMBOL_ipset_name_v6 = 666             /* ipset_name_v6  */
-};
-typedef enum yysymbol_kind_t yysymbol_kind_t;
+/* these need to be global, otherwise they cannot be used inside yacc */
+extern struct config_parser_state* cfg_parser;
+
+#if 0
+#define OUTYY(s)  printf s /* used ONLY when debugging */
+#else
+#define OUTYY(s)
+#endif
 
 
 
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
 
-#ifdef short
-# undef short
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
 #endif
 
-/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
-   <limits.h> and (if available) <stdint.h> are included
-   so that the code can choose integer types of a good width.  */
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
 
-#ifndef __PTRDIFF_MAX__
-# include <limits.h> /* INFRINGES ON USER NAME SPACE */
-# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
-#  define YY_STDINT_H
-# endif
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 66 "./util/configparser.y"
+{
+       char*   str;
+}
+/* Line 193 of yacc.c.  */
+#line 771 "util/configparser.c"
+       YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
-/* Narrow types that promote to a signed type and that can represent a
-   signed or unsigned integer of at least N bits.  In tables they can
-   save space and decrease cache pressure.  Promoting to a signed type
-   helps avoid bugs in integer arithmetic.  */
 
-#ifdef __INT_LEAST8_MAX__
-typedef __INT_LEAST8_TYPE__ yytype_int8;
-#elif defined YY_STDINT_H
-typedef int_least8_t yytype_int8;
-#else
-typedef signed char yytype_int8;
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 216 of yacc.c.  */
+#line 784 "util/configparser.c"
+
+#ifdef short
+# undef short
 #endif
 
-#ifdef __INT_LEAST16_MAX__
-typedef __INT_LEAST16_TYPE__ yytype_int16;
-#elif defined YY_STDINT_H
-typedef int_least16_t yytype_int16;
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
 #else
-typedef short yytype_int16;
+typedef unsigned char yytype_uint8;
 #endif
 
-#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST8_TYPE__ yytype_uint8;
-#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
-       && UINT_LEAST8_MAX <= INT_MAX)
-typedef uint_least8_t yytype_uint8;
-#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
-typedef unsigned char yytype_uint8;
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
 #else
-typedef short yytype_uint8;
+typedef short int yytype_int8;
 #endif
 
-#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST16_TYPE__ yytype_uint16;
-#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
-       && UINT_LEAST16_MAX <= INT_MAX)
-typedef uint_least16_t yytype_uint16;
-#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
-typedef unsigned short yytype_uint16;
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
 #else
-typedef int yytype_uint16;
+typedef unsigned short int yytype_uint16;
 #endif
 
-#ifndef YYPTRDIFF_T
-# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
-#  define YYPTRDIFF_T __PTRDIFF_TYPE__
-#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
-# elif defined PTRDIFF_MAX
-#  ifndef ptrdiff_t
-#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  endif
-#  define YYPTRDIFF_T ptrdiff_t
-#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
-# else
-#  define YYPTRDIFF_T long
-#  define YYPTRDIFF_MAXIMUM LONG_MAX
-# endif
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
 #endif
 
 #ifndef YYSIZE_T
@@ -1563,100 +818,55 @@ typedef int yytype_uint16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
-#  define YYSIZE_T unsigned
+#  define YYSIZE_T unsigned int
 # endif
 #endif
 
-#define YYSIZE_MAXIMUM                                  \
-  YY_CAST (YYPTRDIFF_T,                                 \
-           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
-            ? YYPTRDIFF_MAXIMUM                         \
-            : YY_CAST (YYSIZE_T, -1)))
-
-#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
-
-
-/* Stored state numbers (used for stacks). */
-typedef yytype_int16 yy_state_t;
-
-/* State numbers in computations.  */
-typedef int yy_state_fast_t;
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
 # if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
 #  endif
 # endif
 # ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-
-#ifndef YY_ATTRIBUTE_PURE
-# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
-#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-#  define YY_ATTRIBUTE_PURE
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
-#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-# else
-#  define YY_ATTRIBUTE_UNUSED
+#  define YY_(msgid) msgid
 # endif
 #endif
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YYUSE(e) ((void) (e))
 #else
-# define YYUSE(E) /* empty */
+# define YYUSE(e) /* empty */
 #endif
 
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
-    _Pragma ("GCC diagnostic push")                                     \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
-    _Pragma ("GCC diagnostic pop")
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
 #else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
-# define YY_IGNORE_USELESS_CAST_BEGIN                          \
-    _Pragma ("GCC diagnostic push")                            \
-    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
-# define YY_IGNORE_USELESS_CAST_END            \
-    _Pragma ("GCC diagnostic pop")
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
 #endif
-#ifndef YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_END
+{
+  return i;
+}
 #endif
 
-
-#define YY_ASSERT(E) ((void) (0 && (E)))
-
-#if !defined yyoverflow
+#if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -1673,11 +883,11 @@ typedef int yy_state_fast_t;
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
+#     ifndef _STDLIB_H
+#      define _STDLIB_H 1
 #     endif
 #    endif
 #   endif
@@ -1685,8 +895,8 @@ typedef int yy_state_fast_t;
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
@@ -1700,116 +910,111 @@ typedef int yy_state_fast_t;
 #  ifndef YYSTACK_ALLOC_MAXIMUM
 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
+#  if (defined __cplusplus && ! defined _STDLIB_H \
        && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
+            && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
+#   ifndef _STDLIB_H
+#    define _STDLIB_H 1
 #   endif
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
+#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
+#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 # endif
-#endif /* !defined yyoverflow */
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yy_state_t yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
+  yytype_int16 yyss;
+  YYSTYPE yyvs;
+  };
 
 /* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
-# define YYCOPY_NEEDED 1
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         YYSIZE_T yyi;                         \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (YYID (0))
+#  endif
+# endif
 
 /* Relocate STACK from its old location to the new one.  The
    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYPTRDIFF_T yynewbytes;                                         \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
-      }                                                                 \
-    while (0)
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (YYID (0))
 
 #endif
 
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
-#  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYPTRDIFF_T yyi;                      \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
-      while (0)
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   678
+#define YYLAST   681
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  321
+#define YYNTOKENS  322
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  346
+#define YYNNTS  347
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  668
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  993
-
-#define YYMAXUTOK   575
+#define YYNRULES  670
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  997
 
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   576
 
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, with out-of-bounds checking.  */
-#define YYTRANSLATE(YYX)                                \
-  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
-   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
-   : YYSYMBOL_YYUNDEF)
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex.  */
-static const yytype_int16 yytranslate[] =
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const yytype_uint16 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1868,100 +1073,341 @@ static const yytype_int16 yytranslate[] =
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320
+     315,   316,   317,   318,   319,   320,   321
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_int16 yyrline[] =
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint16 yyprhs[] =
 {
-       0,   192,   192,   192,   193,   193,   194,   194,   195,   195,
-     195,   196,   196,   197,   197,   198,   198,   199,   201,   207,
-     212,   213,   214,   214,   214,   215,   215,   216,   216,   216,
-     217,   217,   218,   218,   218,   219,   219,   220,   220,   220,
-     221,   221,   221,   222,   222,   223,   223,   224,   224,   225,
-     225,   226,   226,   227,   227,   228,   228,   229,   229,   230,
-     230,   230,   231,   231,   232,   232,   232,   233,   233,   233,
-     234,   234,   235,   235,   236,   236,   237,   237,   238,   238,
-     238,   239,   239,   240,   240,   241,   241,   241,   242,   242,
-     243,   243,   244,   244,   245,   245,   245,   246,   246,   247,
-     247,   248,   248,   249,   249,   250,   250,   251,   251,   252,
-     252,   253,   253,   254,   254,   254,   255,   255,   255,   256,
-     256,   256,   257,   257,   257,   257,   258,   259,   259,   259,
-     260,   260,   260,   261,   261,   262,   262,   263,   263,   263,
-     264,   264,   264,   265,   265,   266,   266,   266,   267,   267,
-     268,   268,   268,   269,   269,   270,   270,   271,   271,   272,
-     273,   273,   274,   274,   275,   275,   276,   276,   277,   277,
-     278,   278,   279,   279,   280,   280,   281,   281,   282,   282,
-     282,   283,   283,   284,   284,   285,   285,   286,   287,   287,
-     288,   288,   289,   290,   290,   291,   291,   292,   292,   293,
-     293,   294,   294,   294,   295,   295,   295,   296,   296,   297,
-     298,   298,   299,   299,   300,   300,   301,   301,   302,   302,
-     302,   303,   303,   303,   304,   304,   304,   305,   305,   306,
-     306,   307,   307,   308,   308,   309,   309,   310,   310,   311,
-     311,   314,   327,   328,   329,   329,   329,   329,   329,   330,
-     330,   330,   332,   345,   346,   347,   347,   347,   347,   348,
-     348,   348,   350,   365,   366,   367,   367,   367,   367,   368,
-     368,   368,   370,   390,   391,   392,   392,   392,   392,   393,
-     393,   393,   394,   394,   394,   397,   416,   433,   441,   451,
-     459,   477,   478,   479,   479,   479,   479,   479,   480,   480,
-     480,   481,   481,   483,   492,   501,   512,   521,   530,   539,
-     550,   559,   571,   585,   600,   611,   628,   645,   662,   679,
-     694,   709,   722,   737,   746,   755,   764,   773,   782,   791,
-     800,   809,   818,   827,   836,   845,   854,   863,   876,   887,
-     898,   909,   918,   931,   940,   949,   958,   965,   972,   981,
-     988,   997,  1005,  1012,  1019,  1027,  1036,  1044,  1060,  1068,
-    1076,  1084,  1092,  1100,  1109,  1118,  1132,  1141,  1150,  1159,
-    1168,  1177,  1186,  1193,  1200,  1226,  1234,  1241,  1248,  1255,
-    1262,  1270,  1278,  1286,  1293,  1304,  1315,  1322,  1331,  1340,
-    1349,  1358,  1365,  1372,  1379,  1395,  1403,  1411,  1421,  1431,
-    1441,  1455,  1463,  1476,  1487,  1495,  1508,  1517,  1526,  1535,
-    1544,  1554,  1564,  1572,  1585,  1594,  1602,  1611,  1619,  1632,
-    1641,  1651,  1658,  1668,  1678,  1688,  1698,  1708,  1718,  1728,
-    1738,  1745,  1752,  1759,  1768,  1777,  1786,  1795,  1802,  1812,
-    1832,  1839,  1857,  1870,  1883,  1896,  1905,  1914,  1923,  1932,
-    1942,  1952,  1963,  1972,  1981,  1990,  1999,  2008,  2017,  2026,
-    2039,  2052,  2061,  2068,  2077,  2086,  2095,  2104,  2113,  2121,
-    2134,  2142,  2187,  2194,  2209,  2219,  2229,  2236,  2243,  2250,
-    2259,  2267,  2281,  2302,  2323,  2335,  2347,  2359,  2368,  2389,
-    2398,  2407,  2415,  2423,  2436,  2449,  2464,  2479,  2488,  2497,
-    2506,  2512,  2521,  2530,  2540,  2550,  2560,  2569,  2579,  2588,
-    2601,  2614,  2626,  2640,  2652,  2666,  2675,  2687,  2697,  2704,
-    2711,  2720,  2729,  2739,  2749,  2759,  2769,  2776,  2783,  2792,
-    2801,  2811,  2821,  2831,  2838,  2845,  2852,  2860,  2870,  2880,
-    2890,  2900,  2910,  2920,  2966,  2976,  2984,  2992,  3007,  3016,
-    3021,  3022,  3023,  3023,  3023,  3024,  3024,  3024,  3025,  3025,
-    3027,  3037,  3046,  3053,  3060,  3067,  3074,  3081,  3088,  3093,
-    3094,  3095,  3095,  3095,  3096,  3096,  3096,  3097,  3098,  3098,
-    3099,  3099,  3100,  3100,  3101,  3102,  3103,  3104,  3105,  3106,
-    3108,  3117,  3127,  3134,  3141,  3150,  3157,  3164,  3171,  3178,
-    3187,  3196,  3203,  3210,  3220,  3230,  3240,  3250,  3260,  3270,
-    3275,  3276,  3277,  3279,  3285,  3290,  3291,  3292,  3294,  3300,
-    3310,  3317,  3326,  3334,  3339,  3340,  3342,  3342,  3342,  3343,
-    3343,  3344,  3345,  3346,  3347,  3348,  3350,  3360,  3369,  3376,
-    3385,  3392,  3401,  3409,  3422,  3430,  3443,  3448,  3449,  3450,
-    3450,  3451,  3451,  3451,  3452,  3454,  3466,  3478,  3490,  3505,
-    3518,  3531,  3542,  3547,  3548,  3549,  3549,  3551,  3566
+       0,     0,     3,     4,     7,    10,    13,    16,    19,    22,
+      25,    28,    31,    34,    37,    40,    43,    46,    48,    50,
+      52,    55,    56,    58,    60,    62,    64,    66,    68,    70,
+      72,    74,    76,    78,    80,    82,    84,    86,    88,    90,
+      92,    94,    96,    98,   100,   102,   104,   106,   108,   110,
+     112,   114,   116,   118,   120,   122,   124,   126,   128,   130,
+     132,   134,   136,   138,   140,   142,   144,   146,   148,   150,
+     152,   154,   156,   158,   160,   162,   164,   166,   168,   170,
+     172,   174,   176,   178,   180,   182,   184,   186,   188,   190,
+     192,   194,   196,   198,   200,   202,   204,   206,   208,   210,
+     212,   214,   216,   218,   220,   222,   224,   226,   228,   230,
+     232,   234,   236,   238,   240,   242,   244,   246,   248,   250,
+     252,   254,   256,   258,   260,   262,   264,   266,   268,   270,
+     272,   274,   276,   278,   280,   282,   284,   286,   288,   290,
+     292,   294,   296,   298,   300,   302,   304,   306,   308,   310,
+     312,   314,   316,   318,   320,   322,   324,   326,   328,   330,
+     332,   334,   336,   338,   340,   342,   344,   346,   348,   350,
+     352,   354,   356,   358,   360,   362,   364,   366,   368,   370,
+     372,   374,   376,   378,   380,   382,   384,   386,   388,   390,
+     392,   394,   396,   398,   400,   402,   404,   406,   408,   410,
+     412,   414,   416,   418,   420,   422,   424,   426,   428,   430,
+     432,   434,   436,   438,   440,   442,   444,   446,   448,   450,
+     452,   454,   456,   458,   460,   462,   464,   466,   468,   470,
+     472,   474,   476,   478,   480,   482,   484,   486,   488,   490,
+     492,   494,   496,   498,   501,   502,   504,   506,   508,   510,
+     512,   514,   516,   518,   520,   523,   524,   526,   528,   530,
+     532,   534,   536,   538,   540,   543,   544,   546,   548,   550,
+     552,   554,   556,   558,   560,   563,   564,   566,   568,   570,
+     572,   574,   576,   578,   580,   582,   584,   587,   590,   593,
+     596,   599,   601,   604,   605,   607,   609,   611,   613,   615,
+     617,   619,   621,   623,   625,   628,   631,   634,   637,   640,
+     643,   646,   649,   652,   655,   658,   661,   664,   667,   670,
+     673,   676,   679,   682,   685,   688,   691,   694,   697,   700,
+     703,   706,   709,   712,   715,   718,   721,   724,   727,   730,
+     733,   736,   739,   742,   745,   748,   751,   754,   757,   760,
+     763,   766,   769,   772,   775,   778,   781,   784,   787,   790,
+     793,   796,   799,   802,   805,   808,   811,   814,   817,   820,
+     823,   826,   829,   832,   835,   838,   841,   844,   847,   850,
+     853,   856,   859,   862,   865,   868,   871,   874,   877,   880,
+     883,   886,   889,   892,   895,   898,   901,   904,   907,   910,
+     913,   916,   919,   922,   925,   928,   931,   934,   937,   940,
+     943,   946,   949,   952,   955,   958,   961,   964,   967,   970,
+     973,   976,   979,   982,   985,   988,   991,   994,   997,  1000,
+    1003,  1006,  1009,  1012,  1015,  1018,  1021,  1024,  1027,  1030,
+    1033,  1037,  1040,  1043,  1046,  1049,  1052,  1055,  1058,  1061,
+    1064,  1067,  1070,  1073,  1076,  1079,  1082,  1085,  1088,  1091,
+    1094,  1097,  1100,  1103,  1106,  1109,  1112,  1115,  1118,  1121,
+    1124,  1127,  1130,  1134,  1137,  1140,  1144,  1147,  1150,  1153,
+    1156,  1159,  1162,  1165,  1168,  1172,  1176,  1181,  1186,  1191,
+    1195,  1199,  1202,  1205,  1208,  1211,  1214,  1217,  1221,  1225,
+    1228,  1231,  1234,  1237,  1240,  1243,  1246,  1249,  1252,  1255,
+    1258,  1261,  1264,  1267,  1270,  1273,  1276,  1279,  1283,  1286,
+    1289,  1292,  1295,  1298,  1301,  1304,  1307,  1310,  1313,  1316,
+    1319,  1322,  1325,  1328,  1331,  1334,  1337,  1340,  1343,  1346,
+    1349,  1352,  1355,  1358,  1361,  1364,  1368,  1372,  1376,  1379,
+    1382,  1385,  1387,  1390,  1391,  1393,  1395,  1397,  1399,  1401,
+    1403,  1405,  1407,  1410,  1413,  1416,  1419,  1422,  1425,  1428,
+    1431,  1433,  1436,  1437,  1439,  1441,  1443,  1445,  1447,  1449,
+    1451,  1453,  1455,  1457,  1459,  1461,  1463,  1465,  1467,  1469,
+    1471,  1473,  1475,  1478,  1481,  1484,  1487,  1490,  1493,  1496,
+    1499,  1502,  1505,  1508,  1511,  1514,  1517,  1520,  1523,  1526,
+    1529,  1532,  1534,  1537,  1538,  1540,  1543,  1545,  1548,  1549,
+    1551,  1554,  1557,  1560,  1564,  1568,  1570,  1573,  1574,  1576,
+    1578,  1580,  1582,  1584,  1586,  1588,  1590,  1592,  1594,  1597,
+    1600,  1603,  1606,  1609,  1612,  1615,  1618,  1621,  1624,  1626,
+    1629,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1645,  1648,
+    1651,  1654,  1657,  1660,  1664,  1666,  1669,  1670,  1672,  1674,
+    1677
 };
-#endif
 
-/** Accessing symbol of state STATE.  */
-#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int16 yyrhs[] =
+{
+     323,     0,    -1,    -1,   323,   324,    -1,   326,   327,    -1,
+     329,   330,    -1,   332,   333,    -1,   629,   630,    -1,   596,
+     597,    -1,   607,   608,    -1,   335,   336,    -1,   641,   642,
+      -1,   654,   655,    -1,   664,   665,    -1,   338,   339,    -1,
+     346,   347,    -1,   633,   634,    -1,   325,    -1,    11,    -1,
+      12,    -1,   327,   328,    -1,    -1,   349,    -1,   350,    -1,
+     356,    -1,   369,    -1,   375,    -1,   376,    -1,   379,    -1,
+     380,    -1,   377,    -1,   378,    -1,   381,    -1,   382,    -1,
+     383,    -1,   387,    -1,   388,    -1,   367,    -1,   418,    -1,
+     419,    -1,   420,    -1,   421,    -1,   422,    -1,   450,    -1,
+     451,    -1,   452,    -1,   458,    -1,   459,    -1,   372,    -1,
+     460,    -1,   461,    -1,   464,    -1,   462,    -1,   463,    -1,
+     467,    -1,   468,    -1,   469,    -1,   483,    -1,   433,    -1,
+     434,    -1,   437,    -1,   438,    -1,   436,    -1,   439,    -1,
+     470,    -1,   486,    -1,   427,    -1,   429,    -1,   487,    -1,
+     494,    -1,   495,    -1,   496,    -1,   373,    -1,   449,    -1,
+     514,    -1,   515,    -1,   428,    -1,   508,    -1,   411,    -1,
+     368,    -1,   423,    -1,   484,    -1,   491,    -1,   471,    -1,
+     485,    -1,   517,    -1,   518,    -1,   374,    -1,   351,    -1,
+     410,    -1,   475,    -1,   352,    -1,   370,    -1,   371,    -1,
+     424,    -1,   425,    -1,   516,    -1,   473,    -1,   477,    -1,
+     478,    -1,   353,    -1,   519,    -1,   453,    -1,   482,    -1,
+     412,    -1,   432,    -1,   488,    -1,   489,    -1,   490,    -1,
+     493,    -1,   507,    -1,   426,    -1,   510,    -1,   511,    -1,
+     512,    -1,   441,    -1,   448,    -1,   479,    -1,   480,    -1,
+     442,    -1,   472,    -1,   498,    -1,   413,    -1,   414,    -1,
+     389,    -1,   391,    -1,   417,    -1,   392,    -1,   393,    -1,
+     394,    -1,   402,    -1,   403,    -1,   404,    -1,   405,    -1,
+     406,    -1,   407,    -1,   408,    -1,   521,    -1,   522,    -1,
+     524,    -1,   443,    -1,   454,    -1,   455,    -1,   456,    -1,
+     457,    -1,   525,    -1,   526,    -1,   527,    -1,   465,    -1,
+     474,    -1,   444,    -1,   536,    -1,   537,    -1,   446,    -1,
+     466,    -1,   540,    -1,   541,    -1,   538,    -1,   539,    -1,
+     542,    -1,   543,    -1,   545,    -1,   544,    -1,   546,    -1,
+     357,    -1,   358,    -1,   359,    -1,   360,    -1,   361,    -1,
+     362,    -1,   363,    -1,   364,    -1,   365,    -1,   366,    -1,
+     476,    -1,   492,    -1,   513,    -1,   550,    -1,   445,    -1,
+     528,    -1,   529,    -1,   637,    -1,   530,    -1,   533,    -1,
+     531,    -1,   532,    -1,   534,    -1,   551,    -1,   552,    -1,
+     553,    -1,   554,    -1,   555,    -1,   499,    -1,   500,    -1,
+     501,    -1,   502,    -1,   503,    -1,   504,    -1,   505,    -1,
+     638,    -1,   409,    -1,   535,    -1,   639,    -1,   640,    -1,
+     354,    -1,   355,    -1,   506,    -1,   435,    -1,   430,    -1,
+     431,    -1,   556,    -1,   558,    -1,   557,    -1,   559,    -1,
+     560,    -1,   561,    -1,   390,    -1,   497,    -1,   395,    -1,
+     397,    -1,   547,    -1,   549,    -1,   548,    -1,   396,    -1,
+     663,    -1,   416,    -1,   481,    -1,   523,    -1,   415,    -1,
+     447,    -1,   398,    -1,   399,    -1,   400,    -1,   401,    -1,
+     562,    -1,   563,    -1,   440,    -1,   509,    -1,   384,    -1,
+     385,    -1,   386,    -1,   520,    -1,    46,    -1,   330,   331,
+      -1,    -1,   564,    -1,   565,    -1,   566,    -1,   571,    -1,
+     567,    -1,   568,    -1,   569,    -1,   570,    -1,    52,    -1,
+     333,   334,    -1,    -1,   572,    -1,   573,    -1,   574,    -1,
+     575,    -1,   576,    -1,   577,    -1,   578,    -1,   228,    -1,
+     336,   337,    -1,    -1,   589,    -1,   590,    -1,   593,    -1,
+     595,    -1,   591,    -1,   592,    -1,   594,    -1,   279,    -1,
+     339,   340,    -1,    -1,   579,    -1,   580,    -1,   581,    -1,
+     582,    -1,   586,    -1,   587,    -1,   588,    -1,   583,    -1,
+     584,    -1,   585,    -1,   308,    10,    -1,   309,    10,    -1,
+     310,    10,    -1,   311,    10,    -1,   312,    10,    -1,   307,
+      -1,   347,   348,    -1,    -1,   579,    -1,   580,    -1,   341,
+      -1,   581,    -1,   582,    -1,   583,    -1,   342,    -1,   343,
+      -1,   344,    -1,   345,    -1,    14,    10,    -1,    13,    10,
+      -1,    84,    10,    -1,    87,    10,    -1,   107,    10,    -1,
+     246,    10,    -1,   247,    10,    -1,    15,    10,    -1,   206,
+      10,    -1,   207,    10,    -1,   208,    10,    -1,   209,    10,
+      -1,   210,    10,    -1,   211,    10,    -1,   212,    10,    -1,
+     213,    10,    -1,   214,    10,    -1,   215,    10,    -1,    17,
+      10,    -1,    75,    10,    -1,    16,    10,    -1,    88,    10,
+      -1,    89,    10,    -1,    39,    10,    -1,    68,    10,    -1,
+      83,    10,    -1,    19,    10,    -1,    20,    10,    -1,    22,
+      10,    -1,    23,    10,    -1,    18,    10,    -1,    21,    10,
+      -1,    24,    10,    -1,    25,    10,    -1,    26,    10,    -1,
+     106,    10,    -1,   105,    10,    -1,   138,    10,    -1,    27,
+      10,    -1,    28,    10,    -1,   136,    10,    -1,   277,    10,
+      -1,   137,    10,    -1,   139,    10,    -1,   140,    10,    -1,
+     141,    10,    -1,   145,    10,    -1,   291,    10,    -1,   285,
+      10,    -1,   300,    10,    -1,   301,    10,    -1,   306,    10,
+      -1,   302,    10,    -1,   148,    10,    -1,   149,    10,    -1,
+     150,    10,    -1,   151,    10,    -1,   152,    10,    -1,   153,
+      10,    -1,   154,    10,    -1,   245,    10,    -1,    85,    10,
+      -1,    74,    10,    -1,   112,    10,    -1,   133,    10,    -1,
+     134,    10,    -1,   298,    10,    -1,   295,    10,    -1,   135,
+      10,    -1,    29,    10,    -1,    30,    10,    -1,    31,    10,
+      -1,    32,    10,    -1,    33,    10,    -1,    76,    10,    -1,
+      90,    10,    -1,    91,    10,    -1,   121,    10,    -1,    62,
+      10,    -1,    72,    10,    -1,    63,    10,    -1,   243,    10,
+      -1,   248,    10,    -1,   113,    10,    -1,    56,    10,    -1,
+      57,    10,    -1,   240,    10,    -1,   241,    10,    -1,    58,
+      10,    -1,    59,    10,    -1,   242,    10,    -1,   317,    10,
+      -1,   125,    10,    -1,   129,    10,    -1,   130,    10,    -1,
+     192,    10,    -1,   221,    10,    -1,   193,    10,    -1,   299,
+      10,    -1,   126,    10,    -1,    69,    10,    -1,    34,    10,
+      -1,    35,    10,    -1,    36,    10,    -1,   109,    10,    -1,
+     159,    10,    -1,   160,    10,    -1,   161,    10,    -1,   162,
+      10,    -1,    37,    10,    -1,    38,    10,    -1,    40,    10,
+      -1,    41,    10,    -1,    43,    10,    -1,    44,    10,    -1,
+      42,    10,    -1,   163,    10,    -1,   164,    10,    -1,    49,
+      10,    -1,    50,    10,    -1,    51,    10,    -1,    60,    10,
+      -1,    79,    10,    -1,   131,    10,    -1,    93,    10,    -1,
+     191,    10,    -1,    86,    10,    -1,   216,    10,    -1,    94,
+      10,    -1,    95,    10,    -1,   127,    10,    -1,   128,    10,
+      -1,   296,    10,    -1,   111,    10,    -1,    55,    10,    -1,
+      77,    10,    -1,    80,    10,    10,    -1,    61,    10,    -1,
+      64,    10,    -1,   116,    10,    -1,   117,    10,    -1,   118,
+      10,    -1,    78,    10,    -1,   217,    10,    -1,   119,    10,
+      -1,    65,    10,    -1,    66,    10,    -1,    67,    10,    -1,
+     244,    10,    -1,   132,    10,    -1,   231,    10,    -1,   232,
+      10,    -1,   233,    10,    -1,   234,    10,    -1,   235,    10,
+      -1,   236,    10,    -1,   237,    10,    -1,   238,    10,    -1,
+     120,    10,    -1,    73,    10,    -1,   318,    10,    -1,   123,
+      10,    -1,   124,    10,    -1,   122,    10,    -1,   218,    10,
+      -1,    70,    10,    -1,    71,    10,    -1,    92,    10,    -1,
+      81,    10,    10,    -1,    82,    10,    -1,   108,    10,    -1,
+     321,    10,    10,    -1,   156,    10,    -1,   157,    10,    -1,
+     297,    10,    -1,   158,    10,    -1,   165,    10,    -1,   166,
+      10,    -1,   167,    10,    -1,   222,    10,    -1,   223,    10,
+      10,    -1,   224,    10,    10,    -1,   226,    10,    10,    10,
+      -1,   227,    10,    10,    10,    -1,   225,    10,    10,    10,
+      -1,   229,    10,    10,    -1,   188,    10,    10,    -1,   195,
+      10,    -1,   198,    10,    -1,   197,    10,    -1,   200,    10,
+      -1,   196,    10,    -1,   199,    10,    -1,   202,    10,    10,
+      -1,   203,    10,    10,    -1,   204,    10,    -1,   205,    10,
+      -1,   201,    10,    -1,   286,    10,    -1,   289,    10,    -1,
+     288,    10,    -1,   219,    10,    -1,   220,    10,    -1,   260,
+      10,    -1,   261,    10,    -1,   262,    10,    -1,   263,    10,
+      -1,   264,    10,    -1,   266,    10,    -1,   265,    10,    -1,
+     267,    10,    -1,   268,    10,    -1,   269,    10,    -1,   315,
+      10,    10,    -1,   316,    10,    -1,    45,    10,    -1,    47,
+      10,    -1,    48,    10,    -1,   155,    10,    -1,   294,    10,
+      -1,   143,    10,    -1,   146,    10,    -1,   110,    10,    -1,
+      45,    10,    -1,    53,    10,    -1,    54,    10,    -1,   142,
+      10,    -1,   293,    10,    -1,   144,    10,    -1,   147,    10,
+      -1,    45,    10,    -1,   280,    10,    -1,   281,    10,    -1,
+     282,    10,    -1,   290,    10,    -1,   319,    10,    -1,   320,
+      10,    -1,   283,    10,    -1,   278,    10,    -1,   284,    10,
+      -1,    45,    10,    -1,    81,    10,    10,    -1,   189,    10,
+      10,    -1,   190,    10,    10,    -1,    82,    10,    -1,   108,
+      10,    -1,   230,    10,    -1,    96,    -1,   597,   598,    -1,
+      -1,   599,    -1,   601,    -1,   600,    -1,   603,    -1,   604,
+      -1,   605,    -1,   606,    -1,   602,    -1,    97,    10,    -1,
+      99,    10,    -1,    98,    10,    -1,   104,    10,    -1,   100,
+      10,    -1,   101,    10,    -1,   102,    10,    -1,   103,    10,
+      -1,   168,    -1,   608,   609,    -1,    -1,   610,    -1,   612,
+      -1,   611,    -1,   613,    -1,   614,    -1,   615,    -1,   616,
+      -1,   617,    -1,   618,    -1,   619,    -1,   620,    -1,   621,
+      -1,   622,    -1,   623,    -1,   624,    -1,   625,    -1,   626,
+      -1,   627,    -1,   628,    -1,   169,    10,    -1,   179,    10,
+      -1,   170,    10,    -1,   171,    10,    -1,   172,    10,    -1,
+     173,    10,    -1,   174,    10,    -1,   175,    10,    -1,   176,
+      10,    -1,   177,    10,    -1,   178,    10,    -1,   180,    10,
+      -1,   181,    10,    -1,   182,    10,    -1,   183,    10,    -1,
+     184,    10,    -1,   185,    10,    -1,   186,    10,    -1,   187,
+      10,    -1,   114,    -1,   630,   631,    -1,    -1,   632,    -1,
+     115,    10,    -1,   313,    -1,   634,   635,    -1,    -1,   636,
+      -1,   314,    10,    -1,   194,    10,    -1,   239,    10,    -1,
+     189,    10,    10,    -1,   190,    10,    10,    -1,   249,    -1,
+     642,   643,    -1,    -1,   644,    -1,   645,    -1,   646,    -1,
+     649,    -1,   647,    -1,   648,    -1,   650,    -1,   651,    -1,
+     652,    -1,   653,    -1,   250,    10,    -1,   251,    10,    -1,
+     252,    10,    -1,   254,    10,    -1,   255,    10,    -1,   253,
+      10,    -1,   256,    10,    -1,   257,    10,    -1,   258,    10,
+      -1,   259,    10,    -1,   270,    -1,   655,   656,    -1,    -1,
+     657,    -1,   658,    -1,   659,    -1,   660,    -1,   661,    -1,
+     662,    -1,   271,    10,    -1,   272,    10,    -1,   273,    10,
+      -1,   274,    10,    -1,   275,    10,    -1,   276,    10,    -1,
+     292,    10,    10,    -1,   303,    -1,   665,   666,    -1,    -1,
+     667,    -1,   668,    -1,   304,    10,    -1,   305,    10,    -1
+};
 
-#if YYDEBUG || 0
-/* The user-facing name of the symbol whose (internal) number is
-   YYSYMBOL.  No bounds checking.  */
-static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const yytype_uint16 yyrline[] =
+{
+       0,   193,   193,   193,   194,   194,   195,   195,   196,   196,
+     196,   197,   197,   198,   198,   199,   199,   200,   202,   208,
+     213,   214,   215,   215,   215,   216,   216,   217,   217,   217,
+     218,   218,   219,   219,   219,   220,   220,   221,   221,   221,
+     222,   222,   222,   223,   223,   224,   224,   225,   225,   226,
+     226,   227,   227,   228,   228,   229,   229,   230,   230,   231,
+     231,   231,   232,   232,   233,   233,   233,   234,   234,   234,
+     235,   235,   236,   236,   237,   237,   238,   238,   239,   239,
+     239,   240,   240,   241,   241,   242,   242,   242,   243,   243,
+     244,   244,   245,   245,   246,   246,   246,   247,   247,   248,
+     248,   249,   249,   250,   250,   251,   251,   252,   252,   253,
+     253,   254,   254,   255,   255,   255,   256,   256,   256,   257,
+     257,   257,   258,   258,   258,   258,   259,   260,   260,   260,
+     261,   261,   261,   262,   262,   263,   263,   264,   264,   264,
+     265,   265,   265,   266,   266,   267,   267,   267,   268,   268,
+     269,   269,   269,   270,   270,   271,   271,   272,   272,   273,
+     274,   274,   275,   275,   276,   276,   277,   277,   278,   278,
+     279,   279,   280,   280,   281,   281,   282,   282,   283,   283,
+     283,   284,   284,   285,   285,   286,   286,   287,   288,   288,
+     289,   289,   290,   291,   291,   292,   292,   293,   293,   294,
+     294,   295,   295,   295,   296,   296,   296,   297,   297,   298,
+     299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
+     303,   304,   304,   304,   305,   305,   305,   306,   306,   307,
+     307,   308,   308,   309,   309,   310,   310,   311,   311,   312,
+     312,   313,   316,   329,   330,   331,   331,   331,   331,   331,
+     332,   332,   332,   334,   347,   348,   349,   349,   349,   349,
+     350,   350,   350,   352,   367,   368,   369,   369,   369,   369,
+     370,   370,   370,   372,   392,   393,   394,   394,   394,   394,
+     395,   395,   395,   396,   396,   396,   399,   418,   435,   443,
+     453,   461,   479,   480,   481,   481,   481,   481,   481,   482,
+     482,   482,   483,   483,   485,   494,   503,   514,   523,   532,
+     541,   552,   561,   573,   587,   602,   613,   630,   647,   664,
+     681,   696,   711,   724,   739,   748,   757,   766,   775,   784,
+     793,   802,   811,   820,   829,   838,   847,   856,   865,   878,
+     889,   900,   911,   920,   933,   942,   951,   960,   967,   974,
+     983,   990,   999,  1007,  1014,  1021,  1029,  1038,  1046,  1062,
+    1070,  1078,  1086,  1094,  1102,  1111,  1120,  1134,  1143,  1152,
+    1161,  1170,  1179,  1188,  1195,  1202,  1228,  1236,  1243,  1250,
+    1257,  1264,  1272,  1280,  1288,  1295,  1306,  1317,  1324,  1333,
+    1342,  1351,  1360,  1367,  1374,  1381,  1397,  1405,  1413,  1423,
+    1433,  1443,  1457,  1465,  1478,  1489,  1497,  1510,  1519,  1528,
+    1537,  1546,  1556,  1566,  1574,  1587,  1596,  1604,  1613,  1621,
+    1634,  1643,  1653,  1660,  1670,  1680,  1690,  1700,  1710,  1720,
+    1730,  1740,  1747,  1754,  1761,  1770,  1779,  1788,  1797,  1804,
+    1814,  1834,  1841,  1859,  1872,  1885,  1898,  1907,  1916,  1925,
+    1934,  1944,  1954,  1965,  1974,  1983,  1992,  2001,  2010,  2019,
+    2028,  2041,  2054,  2063,  2070,  2079,  2088,  2097,  2106,  2115,
+    2123,  2136,  2144,  2189,  2196,  2211,  2222,  2232,  2242,  2249,
+    2256,  2263,  2272,  2280,  2294,  2315,  2336,  2348,  2360,  2372,
+    2381,  2402,  2411,  2420,  2428,  2436,  2449,  2462,  2477,  2492,
+    2501,  2510,  2519,  2525,  2534,  2543,  2553,  2563,  2573,  2582,
+    2592,  2601,  2614,  2627,  2639,  2653,  2665,  2679,  2688,  2700,
+    2710,  2717,  2724,  2733,  2742,  2752,  2762,  2772,  2782,  2789,
+    2796,  2805,  2814,  2824,  2834,  2844,  2851,  2858,  2865,  2873,
+    2883,  2893,  2903,  2913,  2923,  2933,  2979,  2989,  2997,  3005,
+    3020,  3029,  3034,  3035,  3036,  3036,  3036,  3037,  3037,  3037,
+    3038,  3038,  3040,  3050,  3059,  3066,  3073,  3080,  3087,  3094,
+    3101,  3106,  3107,  3108,  3108,  3108,  3109,  3109,  3109,  3110,
+    3111,  3111,  3112,  3112,  3113,  3113,  3114,  3115,  3116,  3117,
+    3118,  3119,  3121,  3130,  3140,  3147,  3154,  3163,  3170,  3177,
+    3184,  3191,  3200,  3209,  3216,  3223,  3233,  3243,  3253,  3263,
+    3273,  3283,  3288,  3289,  3290,  3292,  3298,  3303,  3304,  3305,
+    3307,  3313,  3323,  3330,  3339,  3347,  3352,  3353,  3355,  3355,
+    3355,  3356,  3356,  3357,  3358,  3359,  3360,  3361,  3363,  3373,
+    3382,  3389,  3398,  3405,  3414,  3422,  3435,  3443,  3456,  3461,
+    3462,  3463,  3463,  3464,  3464,  3464,  3465,  3467,  3479,  3491,
+    3503,  3518,  3531,  3544,  3555,  3560,  3561,  3562,  3562,  3564,
+    3579
+};
+#endif
 
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "\"end of file\"", "error", "\"invalid token\"", "SPACE", "LETTER",
-  "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING_ARG",
-  "VAR_FORCE_TOPLEVEL", "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS",
-  "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4",
-  "VAR_DO_IP4", "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP",
+  "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
+  "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_FORCE_TOPLEVEL",
+  "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", "VAR_PORT",
+  "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", "VAR_DO_IP4",
+  "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP",
   "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS", "VAR_TCP_IDLE_TIMEOUT",
   "VAR_EDNS_TCP_KEEPALIVE", "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_CHROOT",
   "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
@@ -2079,17 +1525,17 @@ static const char *const yytname[] =
   "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE",
   "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID",
   "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK",
-  "VAR_ZONEMD_REJECT_ABSENCE", "$accept", "toplevelvars", "toplevelvar",
-  "force_toplevel", "serverstart", "contents_server", "content_server",
-  "stubstart", "contents_stub", "content_stub", "forwardstart",
-  "contents_forward", "content_forward", "viewstart", "contents_view",
-  "content_view", "authstart", "contents_auth", "content_auth", "rpz_tag",
-  "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name",
-  "rpzstart", "contents_rpz", "content_rpz", "server_num_threads",
-  "server_verbosity", "server_statistics_interval",
-  "server_statistics_cumulative", "server_extended_statistics",
-  "server_shm_enable", "server_shm_key", "server_port",
-  "server_send_client_subnet", "server_client_subnet_zone",
+  "VAR_ZONEMD_REJECT_ABSENCE", "VAR_LOCAL_DATA_DO_EDE", "$accept",
+  "toplevelvars", "toplevelvar", "force_toplevel", "serverstart",
+  "contents_server", "content_server", "stubstart", "contents_stub",
+  "content_stub", "forwardstart", "contents_forward", "content_forward",
+  "viewstart", "contents_view", "content_view", "authstart",
+  "contents_auth", "content_auth", "rpz_tag", "rpz_action_override",
+  "rpz_cname_override", "rpz_log", "rpz_log_name", "rpzstart",
+  "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity",
+  "server_statistics_interval", "server_statistics_cumulative",
+  "server_extended_statistics", "server_shm_enable", "server_shm_key",
+  "server_port", "server_send_client_subnet", "server_client_subnet_zone",
   "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",
@@ -2159,9 +1605,10 @@ static const char *const yytname[] =
   "server_add_holddown", "server_del_holddown", "server_keep_missing",
   "server_permit_small_holddown", "server_key_cache_size",
   "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
-  "server_local_data", "server_local_data_ptr", "server_minimal_responses",
-  "server_rrset_roundrobin", "server_unknown_server_time_limit",
-  "server_max_udp_size", "server_dns64_prefix", "server_dns64_synthall",
+  "server_local_data", "server_local_data_ptr", "server_local_zone_do_ede",
+  "server_minimal_responses", "server_rrset_roundrobin",
+  "server_unknown_server_time_limit", "server_max_udp_size",
+  "server_dns64_prefix", "server_dns64_synthall",
   "server_dns64_ignore_aaaa", "server_define_tag", "server_local_zone_tag",
   "server_access_control_tag", "server_access_control_tag_action",
   "server_access_control_tag_data", "server_local_zone_override",
@@ -2216,20 +1663,14 @@ static const char *const yytname[] =
   "cachedb_backend_name", "cachedb_secret_seed", "redis_server_host",
   "redis_server_port", "redis_timeout", "redis_expire_records",
   "server_tcp_connection_limit", "ipsetstart", "contents_ipset",
-  "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR
+  "content_ipset", "ipset_name_v4", "ipset_name_v6", 0
 };
-
-static const char *
-yysymbol_name (yysymbol_kind_t yysymbol)
-{
-  return yytname[yysymbol];
-}
 #endif
 
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_int16 yytoknum[] =
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
@@ -2263,36 +1704,320 @@ static const yytype_int16 yytoknum[] =
      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
-     575
+     575,   576
 };
-#endif
-
-#define YYPACT_NINF (-305)
-
-#define yypact_value_is_default(Yyn) \
-  ((Yyn) == YYPACT_NINF)
+# endif
 
-#define YYTABLE_NINF (-1)
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint16 yyr1[] =
+{
+       0,   322,   323,   323,   324,   324,   324,   324,   324,   324,
+     324,   324,   324,   324,   324,   324,   324,   324,   325,   326,
+     327,   327,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
+     328,   328,   329,   330,   330,   331,   331,   331,   331,   331,
+     331,   331,   331,   332,   333,   333,   334,   334,   334,   334,
+     334,   334,   334,   335,   336,   336,   337,   337,   337,   337,
+     337,   337,   337,   338,   339,   339,   340,   340,   340,   340,
+     340,   340,   340,   340,   340,   340,   341,   342,   343,   344,
+     345,   346,   347,   347,   348,   348,   348,   348,   348,   348,
+     348,   348,   348,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
+     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
+     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
+     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
+     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
+     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
+     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
+     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
+     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
+     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
+     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
+     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
+     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
+     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
+     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
+     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
+     595,   596,   597,   597,   598,   598,   598,   598,   598,   598,
+     598,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+     607,   608,   608,   609,   609,   609,   609,   609,   609,   609,
+     609,   609,   609,   609,   609,   609,   609,   609,   609,   609,
+     609,   609,   610,   611,   612,   613,   614,   615,   616,   617,
+     618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
+     628,   629,   630,   630,   631,   632,   633,   634,   634,   635,
+     636,   637,   638,   639,   640,   641,   642,   642,   643,   643,
+     643,   643,   643,   643,   643,   643,   643,   643,   644,   645,
+     646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
+     655,   656,   656,   656,   656,   656,   656,   657,   658,   659,
+     660,   661,   662,   663,   664,   665,   665,   666,   666,   667,
+     668
+};
 
-#define yytable_value_is_error(Yyn) \
-  0
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     1,     1,     1,
+       2,     0,     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,     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,
+       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,     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,     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,     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,     1,     2,     0,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     0,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     0,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
+       2,     1,     2,     0,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     3,     2,     2,     3,     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,     3,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     3,     3,     3,     2,     2,
+       2,     1,     2,     0,     1,     1,     1,     1,     1,     1,
+       1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
+       1,     2,     0,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     1,     2,     0,     1,     2,     1,     2,     0,     1,
+       2,     2,     2,     3,     3,     1,     2,     0,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     1,     2,
+       0,     1,     1,     1,     1,     1,     1,     2,     2,     2,
+       2,     2,     2,     3,     1,     2,     0,     1,     1,     2,
+       2
+};
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int16 yypact[] =
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const yytype_uint16 yydefact[] =
 {
-    -305,     0,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,   301,   -43,   -38,   -42,   -44,   -28,   -29,  -151,
-    -109,  -304,  -197,  -195,  -296,     3,     4,    27,    28,    31,
-      32,    33,    34,    35,    37,    38,    39,    40,    41,    53,
-      54,    55,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    87,    88,    89,    91,
-      92,    95,    97,    98,   100,   101,   103,   105,   106,   107,
-     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,   136,   139,
+       2,     0,     1,    18,    19,   242,   253,   551,   611,   570,
+     263,   625,   648,   273,   664,   291,   616,     3,    17,    21,
+     244,   255,   265,   275,   293,   553,   572,   613,   618,   627,
+     650,   666,     4,     5,     6,    10,    14,    15,     8,     9,
+       7,    16,    11,    12,    13,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    20,    22,    23,    88,    91,
+     100,   204,   205,    24,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,    37,    79,    25,    92,    93,    48,
+      72,    87,    26,    27,    30,    31,    28,    29,    32,    33,
+      34,   238,   239,   240,    35,    36,   124,   216,   125,   127,
+     128,   129,   218,   223,   219,   230,   231,   232,   233,   130,
+     131,   132,   133,   134,   135,   136,   200,    89,    78,   104,
+     122,   123,   228,   225,   126,    38,    39,    40,    41,    42,
+      80,    94,    95,   111,    66,    76,    67,   208,   209,   105,
+      58,    59,   207,    62,    60,    61,    63,   236,   115,   119,
+     140,   150,   178,   153,   229,   116,    73,    43,    44,    45,
+     102,   141,   142,   143,   144,    46,    47,    49,    50,    52,
+      53,    51,   148,   154,    54,    55,    56,    64,    83,   120,
+      97,   149,    90,   174,    98,    99,   117,   118,   226,   103,
+      57,    81,    84,    65,    68,   106,   107,   108,    82,   175,
+     109,    69,    70,    71,   217,   121,   192,   193,   194,   195,
+     196,   197,   198,   206,   110,    77,   237,   112,   113,   114,
+     176,    74,    75,    96,    85,    86,   101,   241,   137,   138,
+     227,   139,   145,   146,   147,   179,   180,   182,   184,   185,
+     183,   186,   201,   151,   152,   157,   158,   155,   156,   159,
+     160,   162,   161,   163,   220,   222,   221,   177,   187,   188,
+     189,   190,   191,   210,   212,   211,   213,   214,   215,   234,
+     235,   181,   199,   202,   203,   224,     0,     0,     0,     0,
+       0,     0,     0,     0,   243,   245,   246,   247,   249,   250,
+     251,   252,   248,     0,     0,     0,     0,     0,     0,     0,
+     254,   256,   257,   258,   259,   260,   261,   262,     0,     0,
+       0,     0,     0,     0,     0,   264,   266,   267,   270,   271,
+     268,   272,   269,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   274,   276,   277,   278,   279,   283,   284,
+     285,   280,   281,   282,     0,     0,     0,     0,     0,   296,
+     300,   301,   302,   303,   292,   294,   295,   297,   298,   299,
+       0,     0,     0,     0,     0,     0,     0,     0,   552,   554,
+     556,   555,   561,   557,   558,   559,   560,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   571,   573,   575,   574,
+     576,   577,   578,   579,   580,   581,   582,   583,   584,   585,
+     586,   587,   588,   589,   590,   591,     0,   612,   614,     0,
+     617,   619,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   626,   628,   629,   630,   632,   633,   631,   634,
+     635,   636,   637,     0,     0,     0,     0,     0,     0,   649,
+     651,   652,   653,   654,   655,   656,     0,     0,   665,   667,
+     668,   305,   304,   311,   324,   322,   334,   330,   331,   335,
+     332,   333,   336,   337,   338,   342,   343,   373,   374,   375,
+     376,   377,   405,   406,   407,   413,   414,   327,   415,   416,
+     419,   417,   418,   422,   423,   424,   438,   388,   389,   392,
+     393,   425,   441,   382,   384,   442,   449,   450,   451,   328,
+     404,   469,   470,   383,   463,   366,   323,   378,   439,   446,
+     426,     0,     0,   473,   329,   306,   365,   430,   307,   325,
+     326,   379,   380,   471,   428,   432,   433,   340,   339,   308,
+     474,   408,   437,   367,   387,   443,   444,   445,   448,   462,
+     381,   467,   465,   466,   396,   403,   434,   435,   397,   398,
+     427,   453,   368,   369,   372,   344,   346,   341,   347,   348,
+     349,   350,   357,   358,   359,   360,   361,   362,   363,   476,
+     477,   479,   409,   410,   411,   412,   420,   421,   480,   481,
+     482,     0,     0,     0,   429,   399,   401,   621,   491,   495,
+     493,   492,   496,   494,   501,     0,     0,   499,   500,   312,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   431,
+     447,   468,   505,   506,   400,   483,     0,     0,     0,     0,
+       0,     0,   454,   455,   456,   457,   458,   459,   460,   461,
+     622,   390,   391,   394,   385,   452,   364,   309,   310,   386,
+     507,   508,   509,   510,   511,   513,   512,   514,   515,   516,
+     345,   352,   502,   504,   503,   351,     0,   371,   436,   478,
+     370,   402,   353,   354,   356,   355,     0,   518,   395,   464,
+       0,   519,   520,   521,   526,   524,   525,   522,   523,   527,
+     528,   529,   530,   532,   533,   531,   544,     0,   548,   549,
+       0,     0,   550,   534,   542,   535,   536,   537,   541,   543,
+     538,   539,   540,   286,   287,   288,   289,   290,   562,   564,
+     563,   566,   567,   568,   569,   565,   592,   594,   595,   596,
+     597,   598,   599,   600,   601,   602,   593,   603,   604,   605,
+     606,   607,   608,   609,   610,   615,   620,   638,   639,   640,
+     643,   641,   642,   644,   645,   646,   647,   657,   658,   659,
+     660,   661,   662,   669,   670,   440,   472,   490,   623,   624,
+     497,   498,   484,   485,     0,     0,     0,   489,   663,   517,
+     475,   545,   546,   547,   488,   486,   487
+};
+
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
+{
+      -1,     1,    17,    18,    19,    32,   265,    20,    33,   494,
+      21,    34,   510,    22,    35,   525,    23,    36,   543,   559,
+     560,   561,   562,   563,    24,    37,   564,   266,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
+     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
+     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
+     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
+     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
+     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
+     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
+     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
+     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
+     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
+     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
+     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
+     479,   480,   495,   496,   497,   498,   499,   500,   501,   502,
+     511,   512,   513,   514,   515,   516,   517,   544,   545,   546,
+     547,   548,   549,   550,   551,   552,   553,   526,   527,   528,
+     529,   530,   531,   532,    25,    38,   578,   579,   580,   581,
+     582,   583,   584,   585,   586,    26,    39,   606,   607,   608,
+     609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
+     619,   620,   621,   622,   623,   624,   625,    27,    40,   627,
+     628,    28,    41,   630,   631,   481,   482,   483,   484,    29,
+      42,   642,   643,   644,   645,   646,   647,   648,   649,   650,
+     651,   652,    30,    43,   659,   660,   661,   662,   663,   664,
+     665,   485,    31,    44,   668,   669,   670
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -305
+static const yytype_int16 yypact[] =
+{
+    -305,     0,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,   301,   -43,   -38,   -42,   -44,   -28,   -29,  -151,
+    -109,  -304,  -197,  -195,  -296,     3,     4,    27,    28,    31,
+      32,    33,    34,    35,    37,    38,    39,    40,    41,    53,
+      54,    55,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    87,    88,    89,    91,
+      92,    95,    97,    98,   100,   101,   103,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   139,
      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
      150,   151,   152,   153,   154,   155,   156,   157,   159,   160,
      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
@@ -2307,8 +2032,7 @@ static const yytype_int16 yypact[] =
      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
      286,   287,   288,   289,   290,   291,   292,   294,   295,   296,
      298,   299,   300,   302,   336,   337,   338,   339,   343,   344,
-     345,   387,   388,   389,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+     345,   387,   388,   389,   390,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
@@ -2329,168 +2053,62 @@ static const yytype_int16 yypact[] =
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   390,   391,   392,   393,   394,   395,
-     401,   405,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,   406,   433,   434,   435,   437,   438,   446,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,   459,   460,   461,   462,
-     463,   464,   465,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,   466,   467,   468,   469,   470,   471,   472,   473,   474,
-     475,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,   476,   477,   478,   519,   521,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,   540,   541,
-     542,   543,   544,   545,   546,   547,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,   548,   549,   550,   561,   562,
-     563,   564,   565,   566,   567,   569,   570,   571,   572,   573,
-     574,   575,   578,   581,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   584,  -305,  -305,   585,  -305,  -305,
-     594,   595,   596,   598,   599,   600,   601,   602,   603,   604,
+    -305,  -305,  -305,  -305,  -305,  -305,   391,   392,   393,   394,
+     395,   401,   405,   406,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,   433,   434,   435,   437,   438,   446,   459,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,   460,   461,
+     462,   463,   464,   465,   466,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,   467,   468,   469,   470,   471,   472,   473,
+     474,   475,   476,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,   477,   478,   519,   521,   540,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,   605,   610,   611,   612,   613,   614,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   615,   616,  -305,  -305,  -305,  -305,
+     541,   542,   543,   544,   545,   546,   547,   548,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305,   549,   550,   561,
+     562,   563,   564,   565,   566,   567,   569,   570,   571,   572,
+     573,   574,   575,   578,   581,   584,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,   585,  -305,  -305,   594,
+    -305,  -305,   595,   596,   598,   599,   600,   601,   602,   603,
+     604,   605,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,   610,   611,   613,   614,   615,   616,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,   617,   618,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,   617,
-     618,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,   619,   620,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,   619,
-     620,   621,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,   622,   623,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   624,   625,   626,   627,   628,   629,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,   621,   622,   623,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,   624,   625,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   630,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   631,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,   626,   627,   628,   629,
+     630,   631,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,   632,  -305,  -305,   633,   634,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,   632,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,   633,  -305,  -305,  -305,
+     634,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305,   635,  -305,  -305,
+     636,   637,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,   635,   636,   637,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305
+    -305,  -305,  -305,  -305,   638,   639,   640,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305
 };
 
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
-static const yytype_int16 yydefact[] =
-{
-       2,     0,     1,    18,    19,   241,   252,   549,   609,   568,
-     262,   623,   646,   272,   662,   290,   614,     3,    17,    21,
-     243,   254,   264,   274,   292,   551,   570,   611,   616,   625,
-     648,   664,     4,     5,     6,    10,    14,    15,     8,     9,
-       7,    16,    11,    12,    13,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    20,    22,    23,    88,    91,   100,
-     204,   205,    24,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,    37,    79,    25,    92,    93,    48,    72,
-      87,    26,    27,    30,    31,    28,    29,    32,    33,    34,
-     238,   239,   240,    35,    36,   124,   216,   125,   127,   128,
-     129,   218,   223,   219,   230,   231,   232,   233,   130,   131,
-     132,   133,   134,   135,   136,   200,    89,    78,   104,   122,
-     123,   228,   225,   126,    38,    39,    40,    41,    42,    80,
-      94,    95,   111,    66,    76,    67,   208,   209,   105,    58,
-      59,   207,    62,    60,    61,    63,   236,   115,   119,   140,
-     150,   178,   153,   229,   116,    73,    43,    44,    45,   102,
-     141,   142,   143,   144,    46,    47,    49,    50,    52,    53,
-      51,   148,   154,    54,    55,    56,    64,    83,   120,    97,
-     149,    90,   174,    98,    99,   117,   118,   226,   103,    57,
-      81,    84,    65,    68,   106,   107,   108,    82,   175,   109,
-      69,    70,    71,   217,   121,   192,   193,   194,   195,   196,
-     197,   198,   206,   110,    77,   237,   112,   113,   114,   176,
-      74,    75,    96,    85,    86,   101,   137,   138,   227,   139,
-     145,   146,   147,   179,   180,   182,   184,   185,   183,   186,
-     201,   151,   152,   157,   158,   155,   156,   159,   160,   162,
-     161,   163,   220,   222,   221,   177,   187,   188,   189,   190,
-     191,   210,   212,   211,   213,   214,   215,   234,   235,   181,
-     199,   202,   203,   224,     0,     0,     0,     0,     0,     0,
-       0,     0,   242,   244,   245,   246,   248,   249,   250,   251,
-     247,     0,     0,     0,     0,     0,     0,     0,   253,   255,
-     256,   257,   258,   259,   260,   261,     0,     0,     0,     0,
-       0,     0,     0,   263,   265,   266,   269,   270,   267,   271,
-     268,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   273,   275,   276,   277,   278,   282,   283,   284,   279,
-     280,   281,     0,     0,     0,     0,     0,   295,   299,   300,
-     301,   302,   291,   293,   294,   296,   297,   298,     0,     0,
-       0,     0,     0,     0,     0,     0,   550,   552,   554,   553,
-     559,   555,   556,   557,   558,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   569,   571,   573,   572,   574,   575,
-     576,   577,   578,   579,   580,   581,   582,   583,   584,   585,
-     586,   587,   588,   589,     0,   610,   612,     0,   615,   617,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     624,   626,   627,   628,   630,   631,   629,   632,   633,   634,
-     635,     0,     0,     0,     0,     0,     0,   647,   649,   650,
-     651,   652,   653,   654,     0,     0,   663,   665,   666,   304,
-     303,   310,   323,   321,   333,   329,   330,   334,   331,   332,
-     335,   336,   337,   341,   342,   372,   373,   374,   375,   376,
-     404,   405,   406,   412,   413,   326,   414,   415,   418,   416,
-     417,   421,   422,   423,   437,   387,   388,   391,   392,   424,
-     440,   381,   383,   441,   448,   449,   450,   327,   403,   468,
-     469,   382,   462,   365,   322,   377,   438,   445,   425,     0,
-       0,   472,   328,   305,   364,   429,   306,   324,   325,   378,
-     379,   470,   427,   431,   432,   339,   338,   307,   473,   407,
-     436,   366,   386,   442,   443,   444,   447,   461,   380,   466,
-     464,   465,   395,   402,   433,   434,   396,   397,   426,   452,
-     367,   368,   371,   343,   345,   340,   346,   347,   348,   349,
-     356,   357,   358,   359,   360,   361,   362,   474,   475,   477,
-     408,   409,   410,   411,   419,   420,   478,   479,   480,     0,
-       0,     0,   428,   398,   400,   619,   489,   493,   491,   490,
-     494,   492,   499,     0,     0,   497,   498,   311,   312,   313,
-     314,   315,   316,   317,   318,   319,   320,   430,   446,   467,
-     503,   504,   399,   481,     0,     0,     0,     0,     0,     0,
-     453,   454,   455,   456,   457,   458,   459,   460,   620,   389,
-     390,   393,   384,   451,   363,   308,   309,   385,   505,   506,
-     507,   508,   509,   511,   510,   512,   513,   514,   344,   351,
-     500,   502,   501,   350,     0,   370,   435,   476,   369,   401,
-     352,   353,   355,   354,     0,   516,   394,   463,   517,   518,
-     519,   524,   522,   523,   520,   521,   525,   526,   527,   528,
-     530,   531,   529,   542,     0,   546,   547,     0,     0,   548,
-     532,   540,   533,   534,   535,   539,   541,   536,   537,   538,
-     285,   286,   287,   288,   289,   560,   562,   561,   564,   565,
-     566,   567,   563,   590,   592,   593,   594,   595,   596,   597,
-     598,   599,   600,   591,   601,   602,   603,   604,   605,   606,
-     607,   608,   613,   618,   636,   637,   638,   641,   639,   640,
-     642,   643,   644,   645,   655,   656,   657,   658,   659,   660,
-     667,   668,   439,   471,   488,   621,   622,   495,   496,   482,
-     483,     0,     0,     0,   487,   661,   515,   543,   544,   545,
-     486,   484,   485
-};
-
-  /* YYPGOTO[NTERM-NUM].  */
+/* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
@@ -2518,8 +2136,8 @@ static const yytype_int16 yypgoto[] =
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305,   274,   638,   639,   640,
-     641,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
+    -305,  -305,  -305,  -305,  -305,  -305,  -305,   274,   641,   642,
+     643,   644,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
@@ -2527,122 +2145,85 @@ static const yytype_int16 yypgoto[] =
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
-    -305,  -305,  -305,  -305,  -305,  -305
-};
-
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
-{
-      -1,     1,    17,    18,    19,    32,   264,    20,    33,   492,
-      21,    34,   508,    22,    35,   523,    23,    36,   541,   557,
-     558,   559,   560,   561,    24,    37,   562,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
-     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
-     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
-     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
-     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
-     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
-     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
-     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
-     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
-     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
-     428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
-     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
-     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
-     458,   459,   460,   461,   462,   463,   464,   465,   466,   467,
-     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
-     478,   493,   494,   495,   496,   497,   498,   499,   500,   509,
-     510,   511,   512,   513,   514,   515,   542,   543,   544,   545,
-     546,   547,   548,   549,   550,   551,   524,   525,   526,   527,
-     528,   529,   530,    25,    38,   576,   577,   578,   579,   580,
-     581,   582,   583,   584,    26,    39,   604,   605,   606,   607,
-     608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-     618,   619,   620,   621,   622,   623,    27,    40,   625,   626,
-      28,    41,   628,   629,   479,   480,   481,   482,    29,    42,
-     640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-     650,    30,    43,   657,   658,   659,   660,   661,   662,   663,
-     483,    31,    44,   666,   667,   668
+    -305,  -305,  -305,  -305,  -305,  -305,  -305
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
-static const yytype_int16 yytable[] =
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const yytype_uint16 yytable[] =
 {
-       2,   531,   484,   516,   485,   486,   624,   501,   664,   665,
-     627,     3,     4,   669,   670,   502,   503,   531,   585,   586,
-     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
-     597,   598,   599,   600,   601,   602,   603,   671,   672,   517,
-     518,   673,   674,   675,   676,   677,     5,   678,   679,   680,
-     681,   682,     6,   630,   631,   632,   633,   634,   635,   636,
-     637,   638,   639,   683,   684,   685,   519,   487,   568,   569,
-     570,   571,   572,   573,   574,   575,   651,   652,   653,   654,
-     655,   656,   686,   687,   688,   689,   690,   691,   692,   693,
-     694,   695,   696,   697,   698,   699,     7,   700,   701,   702,
-     488,   703,   704,   489,   504,   705,   505,   706,   707,   506,
-     708,   709,   490,   710,     8,   711,   712,   713,   714,   715,
-     716,   717,   718,   719,   720,   721,   722,   723,   724,   725,
-     726,   727,   728,   729,   730,   731,   732,   733,   734,   735,
-     736,   737,   738,   739,   740,   741,   742,   520,   521,   743,
-     744,   745,   746,   747,   748,   749,   750,   751,   752,   753,
-     754,   755,   756,   757,   758,   759,   760,   761,     9,   762,
-     763,   764,   765,   766,   767,   768,   769,   770,   771,   772,
-     773,   774,   775,   776,   777,   778,   779,   780,   522,   781,
-     782,   783,   784,   785,   786,   787,   788,   789,   790,   791,
-     792,   793,   794,   795,   796,   797,   798,   799,   800,   801,
-     802,   803,   804,   805,   806,   807,   808,   809,   810,   811,
-     812,   813,   814,   815,   816,   817,   818,   819,    10,   820,
-     821,   822,   823,   824,   532,   825,   533,   534,   535,   536,
-     537,   826,   827,   828,   829,   830,   538,   831,   832,    11,
-     833,   491,   533,   534,   535,   507,   834,   835,   836,   837,
-     838,   839,   538,   840,   841,   842,   843,   844,   845,   846,
-      12,   847,   848,   849,   850,   539,   540,   851,   852,    13,
-     552,   553,   554,   555,   556,   853,   854,   855,   856,   857,
-     858,   859,   860,   861,   862,   863,   864,   865,   866,   867,
-     868,   869,   870,    14,   871,   872,   873,    15,   874,   875,
-     876,   563,   877,    16,    45,    46,    47,    48,    49,    50,
+       2,   533,   486,   518,   487,   488,   626,   503,   666,   667,
+     629,     3,     4,   671,   672,   504,   505,   533,   587,   588,
+     589,   590,   591,   592,   593,   594,   595,   596,   597,   598,
+     599,   600,   601,   602,   603,   604,   605,   673,   674,   519,
+     520,   675,   676,   677,   678,   679,     5,   680,   681,   682,
+     683,   684,     6,   632,   633,   634,   635,   636,   637,   638,
+     639,   640,   641,   685,   686,   687,   521,   489,   570,   571,
+     572,   573,   574,   575,   576,   577,   653,   654,   655,   656,
+     657,   658,   688,   689,   690,   691,   692,   693,   694,   695,
+     696,   697,   698,   699,   700,   701,     7,   702,   703,   704,
+     490,   705,   706,   491,   506,   707,   507,   708,   709,   508,
+     710,   711,   492,   712,     8,   713,   714,   715,   716,   717,
+     718,   719,   720,   721,   722,   723,   724,   725,   726,   727,
+     728,   729,   730,   731,   732,   733,   734,   735,   736,   737,
+     738,   739,   740,   741,   742,   743,   744,   522,   523,   745,
+     746,   747,   748,   749,   750,   751,   752,   753,   754,   755,
+     756,   757,   758,   759,   760,   761,   762,   763,     9,   764,
+     765,   766,   767,   768,   769,   770,   771,   772,   773,   774,
+     775,   776,   777,   778,   779,   780,   781,   782,   524,   783,
+     784,   785,   786,   787,   788,   789,   790,   791,   792,   793,
+     794,   795,   796,   797,   798,   799,   800,   801,   802,   803,
+     804,   805,   806,   807,   808,   809,   810,   811,   812,   813,
+     814,   815,   816,   817,   818,   819,   820,   821,    10,   822,
+     823,   824,   825,   826,   534,   827,   535,   536,   537,   538,
+     539,   828,   829,   830,   831,   832,   540,   833,   834,    11,
+     835,   493,   535,   536,   537,   509,   836,   837,   838,   839,
+     840,   841,   540,   842,   843,   844,   845,   846,   847,   848,
+      12,   849,   850,   851,   852,   541,   542,   853,   854,    13,
+     554,   555,   556,   557,   558,   855,   856,   857,   858,   859,
+     860,   861,   862,   863,   864,   865,   866,   867,   868,   869,
+     870,   871,   872,    14,   873,   874,   875,    15,   876,   877,
+     878,   565,   879,    16,    45,    46,    47,    48,    49,    50,
       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,   878,   879,   880,   881,
-      77,    78,    79,   882,   883,   884,    80,    81,    82,    83,
+      71,    72,    73,    74,    75,    76,   880,   881,   882,   883,
+      77,    78,    79,   884,   885,   886,    80,    81,    82,    83,
       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   885,   886,   887,
-     888,   889,   890,   891,   892,   893,   121,   122,   123,   124,
-     125,   894,   126,   127,   128,   895,   896,   129,   130,   131,
+     114,   115,   116,   117,   118,   119,   120,   887,   888,   889,
+     890,   891,   892,   893,   894,   895,   121,   122,   123,   124,
+     125,   896,   126,   127,   128,   897,   898,   129,   130,   131,
      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   897,   898,   899,   155,   900,   901,   156,
-     157,   158,   159,   160,   161,   162,   902,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   903,
-     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
-     914,   915,   916,   917,   918,   919,   920,   921,   922,   175,
+     152,   153,   154,   899,   900,   901,   155,   902,   903,   156,
+     157,   158,   159,   160,   161,   162,   904,   163,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   173,   174,   905,
+     906,   907,   908,   909,   910,   911,   912,   913,   914,   915,
+     916,   917,   918,   919,   920,   921,   922,   923,   924,   175,
      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   923,
-     215,   924,   216,   217,   218,   219,   220,   221,   222,   223,
+     206,   207,   208,   209,   210,   211,   212,   213,   214,   925,
+     215,   926,   216,   217,   218,   219,   220,   221,   222,   223,
      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
-     925,   926,   927,   928,   929,   930,   931,   932,   933,   934,
-     935,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     243,   936,   937,   938,   939,   940,   941,   942,   244,   943,
-     944,   945,   946,   947,   948,   949,   245,   246,   950,   247,
-     248,   951,   249,   250,   952,   953,   251,   252,   253,   254,
-     255,   256,   257,   258,   954,   955,   956,   259,   957,   958,
-     959,   960,   961,   962,   963,   964,   260,   261,   262,   263,
-     965,   966,   967,   968,   969,   970,   971,   972,   973,   974,
-     975,   976,   977,   978,   979,   980,   981,   982,   983,   984,
-     985,   986,   987,   988,   989,   990,   991,   992,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     927,   928,   929,   930,   931,   932,   933,   934,   935,   936,
+     937,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   938,   939,   940,   941,   942,   943,   944,   244,   945,
+     946,   947,   948,   949,   950,   951,   245,   246,   952,   247,
+     248,   953,   249,   250,   954,   955,   251,   252,   253,   254,
+     255,   256,   257,   258,   956,   957,   958,   259,   959,   960,
+     961,   962,   963,   964,   965,   966,   260,   261,   262,   263,
+     967,   968,   264,   969,   970,   971,   972,   973,   974,   975,
+     976,   977,   978,   979,   980,   981,   982,   983,   984,   985,
+     986,   987,   988,   989,   990,   991,   992,   993,   994,   995,
+     996,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   564,   565,   566,   567
+       0,     0,     0,     0,     0,     0,     0,     0,   566,   567,
+     568,   569
 };
 
 static const yytype_int16 yycheck[] =
@@ -2709,23 +2290,24 @@ static const yytype_int16 yycheck[] =
      289,    10,   291,   292,    10,    10,   295,   296,   297,   298,
      299,   300,   301,   302,    10,    10,    10,   306,    10,    10,
       10,    10,    10,    10,    10,    10,   315,   316,   317,   318,
+      10,    10,   321,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10,    10,    10,    -1,    -1,
+      10,    -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,    37,    37,    37,    37
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    37,
+      37,    37
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
-static const yytype_int16 yystos[] =
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const yytype_uint16 yystos[] =
 {
-       0,   322,     0,    11,    12,    46,    52,    96,   114,   168,
-     228,   249,   270,   279,   303,   307,   313,   323,   324,   325,
-     328,   331,   334,   337,   345,   594,   605,   627,   631,   639,
-     652,   662,   326,   329,   332,   335,   338,   346,   595,   606,
-     628,   632,   640,   653,   663,    13,    14,    15,    16,    17,
+       0,   323,     0,    11,    12,    46,    52,    96,   114,   168,
+     228,   249,   270,   279,   303,   307,   313,   324,   325,   326,
+     329,   332,   335,   338,   346,   596,   607,   629,   633,   641,
+     654,   664,   327,   330,   333,   336,   339,   347,   597,   608,
+     630,   634,   642,   655,   665,    13,    14,    15,    16,    17,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
       38,    39,    40,    41,    42,    43,    44,    49,    50,    51,
@@ -2747,7 +2329,7 @@ static const yytype_int16 yystos[] =
      245,   246,   247,   248,   260,   261,   262,   263,   264,   265,
      266,   267,   268,   269,   277,   285,   286,   288,   289,   291,
      292,   295,   296,   297,   298,   299,   300,   301,   302,   306,
-     315,   316,   317,   318,   327,   348,   349,   350,   351,   352,
+     315,   316,   317,   318,   321,   328,   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,
@@ -2768,27 +2350,27 @@ static const yytype_int16 yystos[] =
      523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
      533,   534,   535,   536,   537,   538,   539,   540,   541,   542,
      543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
-     553,   554,   555,   556,   557,   558,   559,   560,   561,   635,
-     636,   637,   638,   661,    45,    47,    48,   110,   143,   146,
-     155,   294,   330,   562,   563,   564,   565,   566,   567,   568,
-     569,    45,    53,    54,   142,   144,   147,   293,   333,   570,
-     571,   572,   573,   574,   575,   576,    45,    81,    82,   108,
-     189,   190,   230,   336,   587,   588,   589,   590,   591,   592,
-     593,    45,   278,   280,   281,   282,   283,   284,   290,   319,
-     320,   339,   577,   578,   579,   580,   581,   582,   583,   584,
-     585,   586,   308,   309,   310,   311,   312,   340,   341,   342,
-     343,   344,   347,   577,   578,   579,   580,   581,    97,    98,
-      99,   100,   101,   102,   103,   104,   596,   597,   598,   599,
-     600,   601,   602,   603,   604,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   607,   608,   609,   610,   611,   612,
+     553,   554,   555,   556,   557,   558,   559,   560,   561,   562,
+     563,   637,   638,   639,   640,   663,    45,    47,    48,   110,
+     143,   146,   155,   294,   331,   564,   565,   566,   567,   568,
+     569,   570,   571,    45,    53,    54,   142,   144,   147,   293,
+     334,   572,   573,   574,   575,   576,   577,   578,    45,    81,
+      82,   108,   189,   190,   230,   337,   589,   590,   591,   592,
+     593,   594,   595,    45,   278,   280,   281,   282,   283,   284,
+     290,   319,   320,   340,   579,   580,   581,   582,   583,   584,
+     585,   586,   587,   588,   308,   309,   310,   311,   312,   341,
+     342,   343,   344,   345,   348,   579,   580,   581,   582,   583,
+      97,    98,    99,   100,   101,   102,   103,   104,   598,   599,
+     600,   601,   602,   603,   604,   605,   606,   169,   170,   171,
+     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,   609,   610,   611,   612,
      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
-     623,   624,   625,   626,   115,   629,   630,   314,   633,   634,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-     651,   271,   272,   273,   274,   275,   276,   654,   655,   656,
-     657,   658,   659,   660,   304,   305,   664,   665,   666,    10,
-      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
+     623,   624,   625,   626,   627,   628,   115,   631,   632,   314,
+     635,   636,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   643,   644,   645,   646,   647,   648,   649,   650,
+     651,   652,   653,   271,   272,   273,   274,   275,   276,   656,
+     657,   658,   659,   660,   661,   662,   304,   305,   666,   667,
+     668,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
@@ -2820,187 +2402,98 @@ static const yytype_int16 yystos[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10
+      10,    10,    10,    10,    10,    10,    10
 };
 
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_int16 yyr1[] =
-{
-       0,   321,   322,   322,   323,   323,   323,   323,   323,   323,
-     323,   323,   323,   323,   323,   323,   323,   323,   324,   325,
-     326,   326,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
-     327,   328,   329,   329,   330,   330,   330,   330,   330,   330,
-     330,   330,   331,   332,   332,   333,   333,   333,   333,   333,
-     333,   333,   334,   335,   335,   336,   336,   336,   336,   336,
-     336,   336,   337,   338,   338,   339,   339,   339,   339,   339,
-     339,   339,   339,   339,   339,   340,   341,   342,   343,   344,
-     345,   346,   346,   347,   347,   347,   347,   347,   347,   347,
-     347,   347,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
-     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
-     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
-     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
-     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
-     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
-     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
-     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
-     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
-     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
-     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
-     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
-     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
-     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
-     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
-     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
-     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
-     595,   595,   596,   596,   596,   596,   596,   596,   596,   596,
-     597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-     606,   607,   607,   607,   607,   607,   607,   607,   607,   607,
-     607,   607,   607,   607,   607,   607,   607,   607,   607,   607,
-     608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-     618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
-     628,   628,   629,   630,   631,   632,   632,   633,   634,   635,
-     636,   637,   638,   639,   640,   640,   641,   641,   641,   641,
-     641,   641,   641,   641,   641,   641,   642,   643,   644,   645,
-     646,   647,   648,   649,   650,   651,   652,   653,   653,   654,
-     654,   654,   654,   654,   654,   655,   656,   657,   658,   659,
-     660,   661,   662,   663,   663,   664,   664,   665,   666
-};
+#define yyerrok                (yyerrstatus = 0)
+#define yyclearin      (yychar = YYEMPTY)
+#define YYEMPTY                (-2)
+#define YYEOF          0
 
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_int8 yyr2[] =
-{
-       0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     1,     1,     1,
-       2,     0,     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,     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,
-       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,     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,     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,     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,     1,     2,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
-       1,     2,     0,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     3,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     3,     3,     4,     4,     4,     3,     3,     2,
-       2,     2,     2,     2,     2,     3,     3,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     3,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     3,     3,     3,     2,     2,     2,     1,
-       2,     0,     1,     1,     1,     1,     1,     1,     1,     1,
-       2,     2,     2,     2,     2,     2,     2,     2,     1,     2,
-       0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
-       2,     0,     1,     2,     1,     2,     0,     1,     2,     2,
-       2,     3,     3,     1,     2,     0,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     0,     1,
-       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
-       2,     3,     1,     2,     0,     1,     1,     2,     2
-};
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT                goto yyabortlab
+#define YYERROR                goto yyerrorlab
 
 
-enum { YYENOMEM = -2 };
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
 
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
+#define YYFAIL         goto yyerrlab
 
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
+#define YYRECOVERING()  (!!yyerrstatus)
 
+#define YYBACKUP(Token, Value)                                 \
+do                                                             \
+  if (yychar == YYEMPTY && yylen == 1)                         \
+    {                                                          \
+      yychar = (Token);                                                \
+      yylval = (Value);                                                \
+      yytoken = YYTRANSLATE (yychar);                          \
+      YYPOPSTACK (1);                                          \
+      goto yybackup;                                           \
+    }                                                          \
+  else                                                         \
+    {                                                          \
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;                                                 \
+    }                                                          \
+while (YYID (0))
+
+
+#define YYTERROR       1
+#define YYERRCODE      256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
+    do                                                                 \
+      if (YYID (N))                                                    \
+       {                                                               \
+         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
+         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
+         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
+         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
+       }                                                               \
+      else                                                             \
+       {                                                               \
+         (Current).first_line   = (Current).last_line   =              \
+           YYRHSLOC (Rhs, 0).last_line;                                \
+         (Current).first_column = (Current).last_column =              \
+           YYRHSLOC (Rhs, 0).last_column;                              \
+       }                                                               \
+    while (YYID (0))
+#endif
 
-#define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                    \
-  do                                                              \
-    if (yychar == YYEMPTY)                                        \
-      {                                                           \
-        yychar = (Token);                                         \
-        yylval = (Value);                                         \
-        YYPOPSTACK (yylen);                                       \
-        yystate = *yyssp;                                         \
-        goto yybackup;                                            \
-      }                                                           \
-    else                                                          \
-      {                                                           \
-        yyerror (YY_("syntax error: cannot back up")); \
-        YYERROR;                                                  \
-      }                                                           \
-  while (0)
-
-/* Backward compatibility with an undocumented macro.
-   Use YYerror or YYUNDEF. */
-#define YYERRCODE YYUNDEF
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+   This macro was not mandated originally: define only if we know
+   we won't break user code: when these are the locations we know.  */
+
+#ifndef YY_LOCATION_PRINT
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+#  define YY_LOCATION_PRINT(File, Loc)                 \
+     fprintf (File, "%d.%d-%d.%d",                     \
+             (Loc).first_line, (Loc).first_column,     \
+             (Loc).last_line,  (Loc).last_column)
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
 
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -3010,65 +2503,80 @@ enum { YYENOMEM = -2 };
 #  define YYFPRINTF fprintf
 # endif
 
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-# ifndef YY_LOCATION_PRINT
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-
-
-# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Kind, Value); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*-----------------------------------.
-| Print this symbol's value on YYO.  |
-`-----------------------------------*/
-
+# define YYDPRINTF(Args)                       \
+do {                                           \
+  if (yydebug)                                 \
+    YYFPRINTF Args;                            \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
+do {                                                                     \
+  if (yydebug)                                                           \
+    {                                                                    \
+      YYFPRINTF (stderr, "%s ", Title);                                          \
+      yy_symbol_print (stderr,                                           \
+                 Type, Value); \
+      YYFPRINTF (stderr, "\n");                                                  \
+    }                                                                    \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
 static void
-yy_symbol_value_print (FILE *yyo,
-                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
 {
-  FILE *yyoutput = yyo;
-  YYUSE (yyoutput);
   if (!yyvaluep)
     return;
 # ifdef YYPRINT
-  if (yykind < YYNTOKENS)
-    YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
 # endif
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
+  switch (yytype)
+    {
+      default:
+       break;
+    }
 }
 
 
-/*---------------------------.
-| Print this symbol on YYO.  |
-`---------------------------*/
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
 static void
-yy_symbol_print (FILE *yyo,
-                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
 {
-  YYFPRINTF (yyo, "%s %s (",
-             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
-  yy_symbol_value_print (yyo, yykind, yyvaluep);
-  YYFPRINTF (yyo, ")");
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+  YYFPRINTF (yyoutput, ")");
 }
 
 /*------------------------------------------------------------------.
@@ -3076,68 +2584,80 @@ yy_symbol_print (FILE *yyo,
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#else
 static void
-yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
+yy_stack_print (bottom, top)
+    yytype_int16 *bottom;
+    yytype_int16 *top;
+#endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
+  for (; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
   YYFPRINTF (stderr, "\n");
 }
 
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (YYID (0))
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
-                 int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
+    int yyrule;
+#endif
 {
-  int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
-             yyrule - 1, yylno);
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+            yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
-                       &yyvsp[(yyi + 1) - (yynrhs)]);
-      YYFPRINTF (stderr, "\n");
+      fprintf (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+                      &(yyvsp[(yyi + 1) - (yynrhs)])
+                                      );
+      fprintf (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule); \
-} while (0)
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
-# define YYDPRINTF(Args) ((void) 0)
-# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 # define YY_STACK_PRINT(Bottom, Top)
 # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
+#ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
 
@@ -3152,230 +2672,478 @@ int yydebug;
 # define YYMAXDEPTH 10000
 #endif
 
+\f
 
+#if YYERROR_VERBOSE
 
+# ifndef yystrlen
+#  if defined __GLIBC__ && defined _STRING_H
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
+{
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
+    continue;
+  return yylen;
+}
+#  endif
+# endif
 
+# ifndef yystpcpy
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
+#endif
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
 
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+       switch (*++yyp)
+         {
+         case '\'':
+         case ',':
+           goto do_not_strip_quotes;
+
+         case '\\':
+           if (*++yyp != '\\')
+             goto do_not_strip_quotes;
+           /* Fall through.  */
+         default:
+           if (yyres)
+             yyres[yyn] = *yyp;
+           yyn++;
+           break;
+
+         case '"':
+           if (yyres)
+             yyres[yyn] = '\0';
+           return yyn;
+         }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
+   including the terminating null byte.  If YYRESULT is null, do not
+   copy anything; just return the number of bytes that would be
+   copied.  As a special case, return 0 if an ordinary "syntax error"
+   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
+   size calculation.  */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+  int yyn = yypact[yystate];
+
+  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+    return 0;
+  else
+    {
+      int yytype = YYTRANSLATE (yychar);
+      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+      YYSIZE_T yysize = yysize0;
+      YYSIZE_T yysize1;
+      int yysize_overflow = 0;
+      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+      int yyx;
+
+# if 0
+      /* This is so xgettext sees the translatable formats that are
+        constructed on the fly.  */
+      YY_("syntax error, unexpected %s");
+      YY_("syntax error, unexpected %s, expecting %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+      char *yyfmt;
+      char const *yyf;
+      static char const yyunexpected[] = "syntax error, unexpected %s";
+      static char const yyexpecting[] = ", expecting %s";
+      static char const yyor[] = " or %s";
+      char yyformat[sizeof yyunexpected
+                   + sizeof yyexpecting - 1
+                   + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+                      * (sizeof yyor - 1))];
+      char const *yyprefix = yyexpecting;
+
+      /* Start YYX at -YYN if negative to avoid negative indexes in
+        YYCHECK.  */
+      int yyxbegin = yyn < 0 ? -yyn : 0;
+
+      /* Stay within bounds of both yycheck and yytname.  */
+      int yychecklim = YYLAST - yyn + 1;
+      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+      int yycount = 1;
+
+      yyarg[0] = yytname[yytype];
+      yyfmt = yystpcpy (yyformat, yyunexpected);
+
+      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+       if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+         {
+           if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+             {
+               yycount = 1;
+               yysize = yysize0;
+               yyformat[sizeof yyunexpected - 1] = '\0';
+               break;
+             }
+           yyarg[yycount++] = yytname[yyx];
+           yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+           yysize_overflow |= (yysize1 < yysize);
+           yysize = yysize1;
+           yyfmt = yystpcpy (yyfmt, yyprefix);
+           yyprefix = yyor;
+         }
+
+      yyf = YY_(yyformat);
+      yysize1 = yysize + yystrlen (yyf);
+      yysize_overflow |= (yysize1 < yysize);
+      yysize = yysize1;
+
+      if (yysize_overflow)
+       return YYSIZE_MAXIMUM;
+
+      if (yyresult)
+       {
+         /* Avoid sprintf, as that infringes on the user's name space.
+            Don't have undefined behavior even if the translation
+            produced a string with the wrong number of "%s"s.  */
+         char *yyp = yyresult;
+         int yyi = 0;
+         while ((*yyp = *yyf) != '\0')
+           {
+             if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+               {
+                 yyp += yytnamerr (yyp, yyarg[yyi++]);
+                 yyf += 2;
+               }
+             else
+               {
+                 yyp++;
+                 yyf++;
+               }
+           }
+       }
+      return yysize;
+    }
+}
+#endif /* YYERROR_VERBOSE */
+\f
 
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yydestruct (const char *yymsg,
-            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
 {
   YYUSE (yyvaluep);
+
   if (!yymsg)
     yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
+  switch (yytype)
+    {
+
+      default:
+       break;
+    }
 }
+\f
 
+/* Prevent warnings from -Wmissing-prototypes.  */
 
-/* The lookahead symbol.  */
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The look-ahead symbol.  */
 int yychar;
 
-/* The semantic value of the lookahead symbol.  */
+/* The semantic value of the look-ahead symbol.  */
 YYSTYPE yylval;
+
 /* Number of syntax errors so far.  */
 int yynerrs;
 
 
 
-
 /*----------.
 | yyparse.  |
 `----------*/
 
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
 {
-    yy_state_fast_t yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
+  
+  int yystate;
+  int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Look-ahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
 
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
 
-       Refer to the stacks through separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
 
-    /* Their size.  */
-    YYPTRDIFF_T yystacksize;
+  /* The state stack.  */
+  yytype_int16 yyssa[YYINITDEPTH];
+  yytype_int16 *yyss = yyssa;
+  yytype_int16 *yyssp;
 
-    /* The state stack.  */
-    yy_state_t yyssa[YYINITDEPTH];
-    yy_state_t *yyss;
-    yy_state_t *yyssp;
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  YYSTYPE *yyvsp;
 
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
 
-  int yyn;
-  /* The return value of yyparse.  */
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+
+  YYSIZE_T yystacksize = YYINITDEPTH;
+
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
 
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
-  yynerrs = 0;
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
   yystate = 0;
   yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;            /* Cause a token to be read.  */
 
-  yystacksize = YYINITDEPTH;
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
 
-  YYDPRINTF ((stderr, "Starting parse\n"));
+  yyssp = yyss;
+  yyvsp = yyvs;
 
-  yychar = YYEMPTY; /* Cause a token to be read.  */
   goto yysetstate;
 
-
 /*------------------------------------------------------------.
-| yynewstate -- push a new state, which is found in yystate.  |
+| yynewstate -- Push a new state, which is found in yystate.  |
 `------------------------------------------------------------*/
-yynewstate:
+ yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
-
-/*--------------------------------------------------------------------.
-| yysetstate -- set current state (the top of the stack) to yystate.  |
-`--------------------------------------------------------------------*/
-yysetstate:
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
-  YY_IGNORE_USELESS_CAST_BEGIN
-  *yyssp = YY_CAST (yy_state_t, yystate);
-  YY_IGNORE_USELESS_CAST_END
-  YY_STACK_PRINT (yyss, yyssp);
+ yysetstate:
+  *yyssp = yystate;
 
   if (yyss + yystacksize - 1 <= yyssp)
-#if !defined yyoverflow && !defined YYSTACK_RELOCATE
-    goto yyexhaustedlab;
-#else
     {
       /* Get the current used size of the three stacks, in elements.  */
-      YYPTRDIFF_T yysize = yyssp - yyss + 1;
+      YYSIZE_T yysize = yyssp - yyss + 1;
 
-# if defined yyoverflow
+#ifdef yyoverflow
       {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        yy_state_t *yyss1 = yyss;
-        YYSTYPE *yyvs1 = yyvs;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * YYSIZEOF (*yyssp),
-                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
-                    &yystacksize);
-        yyss = yyss1;
-        yyvs = yyvs1;
+       /* Give user a chance to reallocate the stack.  Use copies of
+          these so that the &'s don't force the real ones into
+          memory.  */
+       YYSTYPE *yyvs1 = yyvs;
+       yytype_int16 *yyss1 = yyss;
+
+
+       /* Each stack pointer address is followed by the size of the
+          data in use in that stack, in bytes.  This used to be a
+          conditional around just the two extra args, but that might
+          be undefined if yyoverflow is a macro.  */
+       yyoverflow (YY_("memory exhausted"),
+                   &yyss1, yysize * sizeof (*yyssp),
+                   &yyvs1, yysize * sizeof (*yyvsp),
+
+                   &yystacksize);
+
+       yyss = yyss1;
+       yyvs = yyvs1;
       }
-# else /* defined YYSTACK_RELOCATE */
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+       goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
+       yystacksize = YYMAXDEPTH;
 
       {
-        yy_state_t *yyss1 = yyss;
-        union yyalloc *yyptr =
-          YY_CAST (union yyalloc *,
-                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+       yytype_int16 *yyss1 = yyss;
+       union yyalloc *yyptr =
+         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+       if (! yyptr)
+         goto yyexhaustedlab;
+       YYSTACK_RELOCATE (yyss);
+       YYSTACK_RELOCATE (yyvs);
+
 #  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
+       if (yyss1 != yyssa)
+         YYSTACK_FREE (yyss1);
       }
 # endif
+#endif /* no yyoverflow */
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-      YY_IGNORE_USELESS_CAST_BEGIN
-      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
-                  YY_CAST (long, yystacksize)));
-      YY_IGNORE_USELESS_CAST_END
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+                 (unsigned long int) yystacksize));
 
       if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
+       YYABORT;
     }
-#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
-  if (yystate == YYFINAL)
-    YYACCEPT;
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
 yybackup:
+
   /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
+     look-ahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to lookahead token.  */
+  /* First try to decide what to do without reference to look-ahead token.  */
   yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a lookahead token if don't already have one.  */
+  /* Not known => get a look-ahead token if don't already have one.  */
 
-  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
   if (yychar == YYEMPTY)
     {
-      YYDPRINTF ((stderr, "Reading a token\n"));
-      yychar = yylex ();
+      YYDPRINTF ((stderr, "Reading a token"));
+      yychar = YYLEX;
     }
 
   if (yychar <= YYEOF)
     {
-      yychar = YYEOF;
-      yytoken = YYSYMBOL_YYEOF;
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
-  else if (yychar == YYerror)
-    {
-      /* The scanner already issued an error message, process directly
-         to error recovery.  But do not keep the error token as
-         lookahead, it is too special and may lead us to an endless
-         loop in error recovery. */
-      yychar = YYUNDEF;
-      yytoken = YYSYMBOL_YYerror;
-      goto yyerrlab1;
-    }
   else
     {
       yytoken = YYTRANSLATE (yychar);
@@ -3390,26 +3158,30 @@ yybackup:
   yyn = yytable[yyn];
   if (yyn <= 0)
     {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
+      if (yyn == 0 || yyn == YYTABLE_NINF)
+       goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
 
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the lookahead token.  */
+  /* Shift the look-ahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
   yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
   goto yynewstate;
 
 
@@ -3424,14 +3196,14 @@ yydefault:
 
 
 /*-----------------------------.
-| yyreduce -- do a reduction.  |
+| yyreduce -- Do a reduction.  |
 `-----------------------------*/
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
+     `$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
      This behavior is undocumented and Bison
@@ -3444,25 +3216,23 @@ yyreduce:
   YY_REDUCE_PRINT (yyn);
   switch (yyn)
     {
-  case 18:
-#line 202 "./util/configparser.y"
-        {
+        case 18:
+#line 203 "./util/configparser.y"
+    {
                OUTYY(("\nP(force-toplevel)\n"));
        }
-#line 3453 "util/configparser.c"
     break;
 
   case 19:
-#line 208 "./util/configparser.y"
-        {
+#line 209 "./util/configparser.y"
+    {
                OUTYY(("\nP(server:)\n"));
        }
-#line 3461 "util/configparser.c"
     break;
 
-  case 241:
-#line 315 "./util/configparser.y"
-        {
+  case 242:
+#line 317 "./util/configparser.y"
+    {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n"));
                s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
@@ -3473,12 +3243,11 @@ yyreduce:
                        yyerror("out of memory");
                }
        }
-#line 3477 "util/configparser.c"
     break;
 
-  case 252:
-#line 333 "./util/configparser.y"
-        {
+  case 253:
+#line 335 "./util/configparser.y"
+    {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n"));
                s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
@@ -3489,12 +3258,11 @@ yyreduce:
                        yyerror("out of memory");
                }
        }
-#line 3493 "util/configparser.c"
     break;
 
-  case 262:
-#line 351 "./util/configparser.y"
-        {
+  case 263:
+#line 353 "./util/configparser.y"
+    {
                struct config_view* s;
                OUTYY(("\nP(view:)\n"));
                s = (struct config_view*)calloc(1, sizeof(struct config_view));
@@ -3507,12 +3275,11 @@ yyreduce:
                        yyerror("out of memory");
                }
        }
-#line 3511 "util/configparser.c"
     break;
 
-  case 272:
-#line 371 "./util/configparser.y"
-        {
+  case 273:
+#line 373 "./util/configparser.y"
+    {
                struct config_auth* s;
                OUTYY(("\nP(auth_zone:)\n"));
                s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
@@ -3530,18 +3297,17 @@ yyreduce:
                        yyerror("out of memory");
                }
        }
-#line 3534 "util/configparser.c"
     break;
 
-  case 285:
-#line 398 "./util/configparser.y"
-        {
+  case 286:
+#line 400 "./util/configparser.y"
+    {
                uint8_t* bitlist;
                size_t len = 0;
-               OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str)));
-               bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
+               OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[(2) - (2)].str)));
+               bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(2) - (2)].str),
                        &len);
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
                if(!bitlist) {
                        yyerror("could not parse tags, (define-tag them first)");
                }
@@ -3551,63 +3317,58 @@ yyreduce:
 
                }
        }
-#line 3555 "util/configparser.c"
     break;
 
-  case 286:
-#line 417 "./util/configparser.y"
-        {
-               OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
-                  strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 &&
-                  strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) {
+  case 287:
+#line 419 "./util/configparser.y"
+    {
+               OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "nxdomain")!=0 && strcmp((yyvsp[(2) - (2)].str), "nodata")!=0 &&
+                  strcmp((yyvsp[(2) - (2)].str), "passthru")!=0 && strcmp((yyvsp[(2) - (2)].str), "drop")!=0 &&
+                  strcmp((yyvsp[(2) - (2)].str), "cname")!=0 && strcmp((yyvsp[(2) - (2)].str), "disabled")!=0) {
                        yyerror("rpz-action-override action: expected nxdomain, "
                                "nodata, passthru, drop, cname or disabled");
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (2)].str));
                        cfg_parser->cfg->auths->rpz_action_override = NULL;
                }
                else {
-                       cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
+                       cfg_parser->cfg->auths->rpz_action_override = (yyvsp[(2) - (2)].str);
                }
        }
-#line 3574 "util/configparser.c"
     break;
 
-  case 287:
-#line 434 "./util/configparser.y"
-        {
-               OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
+  case 288:
+#line 436 "./util/configparser.y"
+    {
+               OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->auths->rpz_cname);
-               cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
+               cfg_parser->cfg->auths->rpz_cname = (yyvsp[(2) - (2)].str);
        }
-#line 3584 "util/configparser.c"
     break;
 
-  case 288:
-#line 442 "./util/configparser.y"
-        {
-               OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 289:
+#line 444 "./util/configparser.y"
+    {
+               OUTYY(("P(rpz_log:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3596 "util/configparser.c"
     break;
 
-  case 289:
-#line 452 "./util/configparser.y"
-        {
-               OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
+  case 290:
+#line 454 "./util/configparser.y"
+    {
+               OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->auths->rpz_log_name);
-               cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
+               cfg_parser->cfg->auths->rpz_log_name = (yyvsp[(2) - (2)].str);
        }
-#line 3606 "util/configparser.c"
     break;
 
-  case 290:
-#line 460 "./util/configparser.y"
-        {
+  case 291:
+#line 462 "./util/configparser.y"
+    {
                struct config_auth* s;
                OUTYY(("\nP(rpz:)\n")); 
                s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
@@ -3623,292 +3384,273 @@ yyreduce:
                        yyerror("out of memory");
                }
        }
-#line 3627 "util/configparser.c"
-    break;
-
-  case 303:
-#line 484 "./util/configparser.y"
-        {
-               OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
-       }
-#line 3639 "util/configparser.c"
     break;
 
   case 304:
-#line 493 "./util/configparser.y"
-        {
-               OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 486 "./util/configparser.y"
+    {
+               OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3651 "util/configparser.c"
     break;
 
   case 305:
-#line 502 "./util/configparser.y"
-        {
-               OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
-                       cfg_parser->cfg->stat_interval = 0;
-               else if(atoi((yyvsp[0].str)) == 0)
+#line 495 "./util/configparser.y"
+    {
+               OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3665 "util/configparser.c"
     break;
 
   case 306:
-#line 513 "./util/configparser.y"
-        {
-               OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 504 "./util/configparser.y"
+    {
+               OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
+                       cfg_parser->cfg->stat_interval = 0;
+               else if(atoi((yyvsp[(2) - (2)].str)) == 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3677 "util/configparser.c"
     break;
 
   case 307:
-#line 522 "./util/configparser.y"
-        {
-               OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 515 "./util/configparser.y"
+    {
+               OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3689 "util/configparser.c"
     break;
 
   case 308:
-#line 531 "./util/configparser.y"
-        {
-               OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 524 "./util/configparser.y"
+    {
+               OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3701 "util/configparser.c"
     break;
 
   case 309:
-#line 540 "./util/configparser.y"
-        {
-               OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
+#line 533 "./util/configparser.y"
+    {
+               OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
+       }
+    break;
+
+  case 310:
+#line 542 "./util/configparser.y"
+    {
+               OUTYY(("P(server_shm_key:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
                        cfg_parser->cfg->shm_key = 0;
-               else if(atoi((yyvsp[0].str)) == 0)
+               else if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->shm_key = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3715 "util/configparser.c"
     break;
 
-  case 310:
-#line 551 "./util/configparser.y"
-        {
-               OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 311:
+#line 553 "./util/configparser.y"
+    {
+               OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("port number expected");
-               else cfg_parser->cfg->port = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3727 "util/configparser.c"
     break;
 
-  case 311:
-#line 560 "./util/configparser.y"
-        {
+  case 312:
+#line 562 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
+               OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding client-subnet");
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 3742 "util/configparser.c"
     break;
 
-  case 312:
-#line 572 "./util/configparser.y"
-        {
+  case 313:
+#line 574 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
+               OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
-                       (yyvsp[0].str)))
+                       (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding client-subnet-zone");
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 3758 "util/configparser.c"
     break;
 
-  case 313:
-#line 586 "./util/configparser.y"
-        {
+  case 314:
+#line 588 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+               OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else
                        cfg_parser->cfg->client_subnet_always_forward =
-                               (strcmp((yyvsp[0].str), "yes")==0);
+                               (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3776 "util/configparser.c"
     break;
 
-  case 314:
-#line 601 "./util/configparser.y"
-        {
+  case 315:
+#line 603 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
+               OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[(2) - (2)].str)));
                OUTYY(("P(Deprecated option, ignoring)\n"));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3790 "util/configparser.c"
     break;
 
-  case 315:
-#line 612 "./util/configparser.y"
-        {
+  case 316:
+#line 614 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+               OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("IPv4 subnet length expected");
-               else if (atoi((yyvsp[0].str)) > 32)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 32)
                        cfg_parser->cfg->max_client_subnet_ipv4 = 32;
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 0)
                        cfg_parser->cfg->max_client_subnet_ipv4 = 0;
-               else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
+               else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3810 "util/configparser.c"
     break;
 
-  case 316:
-#line 629 "./util/configparser.y"
-        {
+  case 317:
+#line 631 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+               OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("Ipv6 subnet length expected");
-               else if (atoi((yyvsp[0].str)) > 128)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 128)
                        cfg_parser->cfg->max_client_subnet_ipv6 = 128;
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 0)
                        cfg_parser->cfg->max_client_subnet_ipv6 = 0;
-               else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
+               else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3830 "util/configparser.c"
     break;
 
-  case 317:
-#line 646 "./util/configparser.y"
-        {
+  case 318:
+#line 648 "./util/configparser.y"
+    {
        #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)
+               OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("IPv4 subnet length expected");
-               else if (atoi((yyvsp[0].str)) > 32)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 32)
                        cfg_parser->cfg->min_client_subnet_ipv4 = 32;
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].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 cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3850 "util/configparser.c"
     break;
 
-  case 318:
-#line 663 "./util/configparser.y"
-        {
+  case 319:
+#line 665 "./util/configparser.y"
+    {
        #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)
+               OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("Ipv6 subnet length expected");
-               else if (atoi((yyvsp[0].str)) > 128)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 128)
                        cfg_parser->cfg->min_client_subnet_ipv6 = 128;
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].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 cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3870 "util/configparser.c"
     break;
 
-  case 319:
-#line 680 "./util/configparser.y"
-        {
+  case 320:
+#line 682 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+               OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("IPv4 ECS tree size expected");
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 0)
                        cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0;
-               else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str));
+               else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3888 "util/configparser.c"
     break;
 
-  case 320:
-#line 695 "./util/configparser.y"
-        {
+  case 321:
+#line 697 "./util/configparser.y"
+    {
        #ifdef CLIENT_SUBNET
-               OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+               OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("IPv6 ECS tree size expected");
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 0)
                        cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0;
-               else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str));
+               else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3906 "util/configparser.c"
     break;
 
-  case 321:
-#line 710 "./util/configparser.y"
-        {
-               OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
+  case 322:
+#line 712 "./util/configparser.y"
+    {
+               OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_ifs == 0)
                        cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
                else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
@@ -3916,15 +3658,14 @@ yyreduce:
                if(!cfg_parser->cfg->ifs)
                        yyerror("out of memory");
                else
-                       cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
+                       cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str);
        }
-#line 3922 "util/configparser.c"
     break;
 
-  case 322:
-#line 723 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
+  case 323:
+#line 725 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
                        cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
                else cfg_parser->cfg->out_ifs = realloc(
@@ -3934,642 +3675,590 @@ yyreduce:
                        yyerror("out of memory");
                else
                        cfg_parser->cfg->out_ifs[
-                               cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
-       }
-#line 3940 "util/configparser.c"
-    break;
-
-  case 323:
-#line 738 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+                               cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str);
        }
-#line 3952 "util/configparser.c"
     break;
 
   case 324:
-#line 747 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
-               if(!cfg_mark_ports((yyvsp[0].str), 1,
-                       cfg_parser->cfg->outgoing_avail_ports, 65536))
-                       yyerror("port number or range (\"low-high\") expected");
-               free((yyvsp[0].str));
+#line 740 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3964 "util/configparser.c"
     break;
 
   case 325:
-#line 756 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
-               if(!cfg_mark_ports((yyvsp[0].str), 0,
+#line 749 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1,
                        cfg_parser->cfg->outgoing_avail_ports, 65536))
                        yyerror("port number or range (\"low-high\") expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3976 "util/configparser.c"
     break;
 
   case 326:
-#line 765 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+#line 758 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0,
+                       cfg_parser->cfg->outgoing_avail_ports, 65536))
+                       yyerror("port number or range (\"low-high\") expected");
+               free((yyvsp[(2) - (2)].str));
        }
-#line 3988 "util/configparser.c"
     break;
 
   case 327:
-#line 774 "./util/configparser.y"
-        {
-               OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 767 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4000 "util/configparser.c"
     break;
 
   case 328:
-#line 783 "./util/configparser.y"
-        {
-               OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 776 "./util/configparser.y"
+    {
+               OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4012 "util/configparser.c"
     break;
 
   case 329:
-#line 792 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 785 "./util/configparser.y"
+    {
+               OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4024 "util/configparser.c"
     break;
 
   case 330:
-#line 801 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 794 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4036 "util/configparser.c"
     break;
 
   case 331:
-#line 810 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 803 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4048 "util/configparser.c"
     break;
 
   case 332:
-#line 819 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 812 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4060 "util/configparser.c"
     break;
 
   case 333:
-#line 828 "./util/configparser.y"
-        {
-               OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 821 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4072 "util/configparser.c"
     break;
 
   case 334:
-#line 837 "./util/configparser.y"
-        {
-               OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 830 "./util/configparser.y"
+    {
+               OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4084 "util/configparser.c"
     break;
 
   case 335:
-#line 846 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                               yyerror("number expected");
-               else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+#line 839 "./util/configparser.y"
+    {
+               OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4096 "util/configparser.c"
     break;
 
   case 336:
-#line 855 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+#line 848 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                               yyerror("number expected");
+               else cfg_parser->cfg->tcp_mss = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4108 "util/configparser.c"
     break;
 
   case 337:
-#line 864 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 857 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
+       }
+    break;
+
+  case 338:
+#line 866 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) > 120000)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 120000)
                        cfg_parser->cfg->tcp_idle_timeout = 120000;
-               else if (atoi((yyvsp[0].str)) < 1)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 1)
                        cfg_parser->cfg->tcp_idle_timeout = 1;
-               else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4124 "util/configparser.c"
     break;
 
-  case 338:
-#line 877 "./util/configparser.y"
-        {
-               OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 339:
+#line 879 "./util/configparser.y"
+    {
+               OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) < 1)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 1)
                        cfg_parser->cfg->max_reuse_tcp_queries = 0;
-               else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4138 "util/configparser.c"
     break;
 
-  case 339:
-#line 888 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 340:
+#line 890 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) < 1)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 1)
                        cfg_parser->cfg->tcp_reuse_timeout = 0;
-               else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4152 "util/configparser.c"
     break;
 
-  case 340:
-#line 899 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 341:
+#line 901 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) < 1)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 1)
                        cfg_parser->cfg->tcp_auth_query_timeout = 0;
-               else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4166 "util/configparser.c"
     break;
 
-  case 341:
-#line 910 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 342:
+#line 912 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4178 "util/configparser.c"
     break;
 
-  case 342:
-#line 919 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 343:
+#line 921 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) > 6553500)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 6553500)
                        cfg_parser->cfg->tcp_keepalive_timeout = 6553500;
-               else if (atoi((yyvsp[0].str)) < 1)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 1)
                        cfg_parser->cfg->tcp_keepalive_timeout = 0;
-               else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4194 "util/configparser.c"
     break;
 
-  case 343:
-#line 932 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 344:
+#line 934 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4206 "util/configparser.c"
     break;
 
-  case 344:
-#line 941 "./util/configparser.y"
-        {
-               OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 345:
+#line 943 "./util/configparser.y"
+    {
+               OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4218 "util/configparser.c"
     break;
 
-  case 345:
-#line 950 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 346:
+#line 952 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4230 "util/configparser.c"
     break;
 
-  case 346:
-#line 959 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
+  case 347:
+#line 961 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ssl_service_key);
-               cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
+               cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str);
        }
-#line 4240 "util/configparser.c"
     break;
 
-  case 347:
-#line 966 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
+  case 348:
+#line 968 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ssl_service_pem);
-               cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
+               cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str);
        }
-#line 4250 "util/configparser.c"
     break;
 
-  case 348:
-#line 973 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 349:
+#line 975 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("port number expected");
-               else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4262 "util/configparser.c"
     break;
 
-  case 349:
-#line 982 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
+  case 350:
+#line 984 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->tls_cert_bundle);
-               cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
+               cfg_parser->cfg->tls_cert_bundle = (yyvsp[(2) - (2)].str);
        }
-#line 4272 "util/configparser.c"
     break;
 
-  case 350:
-#line 989 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 351:
+#line 991 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4284 "util/configparser.c"
     break;
 
-  case 351:
-#line 998 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
+  case 352:
+#line 1000 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
-                       (yyvsp[0].str)))
+                       (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 4295 "util/configparser.c"
     break;
 
-  case 352:
-#line 1006 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
+  case 353:
+#line 1008 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->tls_ciphers);
-               cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
+               cfg_parser->cfg->tls_ciphers = (yyvsp[(2) - (2)].str);
        }
-#line 4305 "util/configparser.c"
     break;
 
-  case 353:
-#line 1013 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
+  case 354:
+#line 1015 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->tls_ciphersuites);
-               cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
+               cfg_parser->cfg->tls_ciphersuites = (yyvsp[(2) - (2)].str);
        }
-#line 4315 "util/configparser.c"
     break;
 
-  case 354:
-#line 1020 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
+  case 355:
+#line 1022 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
-                       (yyvsp[0].str)))
+                       (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 4326 "util/configparser.c"
     break;
 
-  case 355:
-#line 1028 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 356:
+#line 1030 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4338 "util/configparser.c"
     break;
 
-  case 356:
-#line 1037 "./util/configparser.y"
-        {
-               OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 357:
+#line 1039 "./util/configparser.y"
+    {
+               OUTYY(("P(server_https_port:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("port number expected");
-               else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->https_port = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4350 "util/configparser.c"
     break;
 
-  case 357:
-#line 1045 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
+  case 358:
+#line 1047 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->http_endpoint);
-               if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') {
-                       cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2);
+               if((yyvsp[(2) - (2)].str) && (yyvsp[(2) - (2)].str)[0] != '/') {
+                       cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[(2) - (2)].str))+2);
                        if(!cfg_parser->cfg->http_endpoint)
                                yyerror("out of memory");
                        cfg_parser->cfg->http_endpoint[0] = '/';
-                       memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str),
-                               strlen((yyvsp[0].str))+1);
-                       free((yyvsp[0].str));
+                       memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[(2) - (2)].str),
+                               strlen((yyvsp[(2) - (2)].str))+1);
+                       free((yyvsp[(2) - (2)].str));
                } else {
-                       cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
+                       cfg_parser->cfg->http_endpoint = (yyvsp[(2) - (2)].str);
                }
        }
-#line 4370 "util/configparser.c"
     break;
 
-  case 358:
-#line 1061 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
-       }
-#line 4382 "util/configparser.c"
-    break;
-
-  case 359:
-#line 1069 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str),
-                       &cfg_parser->cfg->http_query_buffer_size))
-                       yyerror("memory size expected");
-               free((yyvsp[0].str));
+  case 359:
+#line 1063 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->http_max_streams = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4394 "util/configparser.c"
     break;
 
   case 360:
-#line 1077 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str),
-                       &cfg_parser->cfg->http_response_buffer_size))
+#line 1071 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str),
+                       &cfg_parser->cfg->http_query_buffer_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4406 "util/configparser.c"
     break;
 
   case 361:
-#line 1085 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 1079 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str),
+                       &cfg_parser->cfg->http_response_buffer_size))
+                       yyerror("memory size expected");
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4418 "util/configparser.c"
     break;
 
   case 362:
-#line 1093 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1087 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4430 "util/configparser.c"
     break;
 
   case 363:
-#line 1101 "./util/configparser.y"
-        {
-               OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1095 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4442 "util/configparser.c"
     break;
 
   case 364:
-#line 1110 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1103 "./util/configparser.y"
+    {
+               OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4454 "util/configparser.c"
     break;
 
   case 365:
-#line 1119 "./util/configparser.y"
-        {
-               OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1112 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0);
-#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
-               if(strcmp((yyvsp[0].str), "yes") == 0)
-                       yyerror("no syslog services are available. "
-                               "(reconfigure and compile to add)");
-#endif
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4471 "util/configparser.c"
     break;
 
   case 366:
-#line 1133 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1121 "./util/configparser.y"
+    {
+               OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0)
+                       yyerror("no syslog services are available. "
+                               "(reconfigure and compile to add)");
+#endif
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4483 "util/configparser.c"
     break;
 
   case 367:
-#line 1142 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1135 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4495 "util/configparser.c"
     break;
 
   case 368:
-#line 1151 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1144 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->log_queries = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4507 "util/configparser.c"
     break;
 
   case 369:
-#line 1160 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1153 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_replies:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->log_replies = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4519 "util/configparser.c"
     break;
 
   case 370:
-#line 1169 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1162 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4531 "util/configparser.c"
     break;
 
   case 371:
-#line 1178 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1171 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4543 "util/configparser.c"
     break;
 
   case 372:
-#line 1187 "./util/configparser.y"
-        {
-               OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
-               free(cfg_parser->cfg->chrootdir);
-               cfg_parser->cfg->chrootdir = (yyvsp[0].str);
+#line 1180 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4553 "util/configparser.c"
     break;
 
   case 373:
-#line 1194 "./util/configparser.y"
-        {
-               OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
-               free(cfg_parser->cfg->username);
-               cfg_parser->cfg->username = (yyvsp[0].str);
+#line 1189 "./util/configparser.y"
+    {
+               OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
+               free(cfg_parser->cfg->chrootdir);
+               cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str);
        }
-#line 4563 "util/configparser.c"
     break;
 
   case 374:
-#line 1201 "./util/configparser.y"
-        {
-               OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
+#line 1196 "./util/configparser.y"
+    {
+               OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
+               free(cfg_parser->cfg->username);
+               cfg_parser->cfg->username = (yyvsp[(2) - (2)].str);
+       }
+    break;
+
+  case 375:
+#line 1203 "./util/configparser.y"
+    {
+               OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->directory);
-               cfg_parser->cfg->directory = (yyvsp[0].str);
+               cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str);
                /* change there right away for includes relative to this */
-               if((yyvsp[0].str)[0]) {
+               if((yyvsp[(2) - (2)].str)[0]) {
                        char* d;
 #ifdef UB_ON_WINDOWS
                        w_config_adjust_directory(cfg_parser->cfg);
@@ -4588,1232 +4277,1135 @@ yyreduce:
                        }
                }
        }
-#line 4592 "util/configparser.c"
     break;
 
-  case 375:
-#line 1227 "./util/configparser.y"
-        {
-               OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
+  case 376:
+#line 1229 "./util/configparser.y"
+    {
+               OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->logfile);
-               cfg_parser->cfg->logfile = (yyvsp[0].str);
+               cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str);
                cfg_parser->cfg->use_syslog = 0;
        }
-#line 4603 "util/configparser.c"
-    break;
-
-  case 376:
-#line 1235 "./util/configparser.y"
-        {
-               OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
-               free(cfg_parser->cfg->pidfile);
-               cfg_parser->cfg->pidfile = (yyvsp[0].str);
-       }
-#line 4613 "util/configparser.c"
     break;
 
   case 377:
-#line 1242 "./util/configparser.y"
-        {
-               OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
-                       yyerror("out of memory");
+#line 1237 "./util/configparser.y"
+    {
+               OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
+               free(cfg_parser->cfg->pidfile);
+               cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str);
        }
-#line 4623 "util/configparser.c"
     break;
 
   case 378:
-#line 1249 "./util/configparser.y"
-        {
-               OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
-               log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
-               free((yyvsp[0].str));
+#line 1244 "./util/configparser.y"
+    {
+               OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
+                       yyerror("out of memory");
        }
-#line 4633 "util/configparser.c"
     break;
 
   case 379:
-#line 1256 "./util/configparser.y"
-        {
-               OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
-               log_warn("option dlv-anchor ignored: DLV is decommissioned");
-               free((yyvsp[0].str));
+#line 1251 "./util/configparser.y"
+    {
+               OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
+               log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4643 "util/configparser.c"
     break;
 
   case 380:
-#line 1263 "./util/configparser.y"
-        {
-               OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->
-                       auto_trust_anchor_file_list, (yyvsp[0].str)))
-                       yyerror("out of memory");
+#line 1258 "./util/configparser.y"
+    {
+               OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
+               log_warn("option dlv-anchor ignored: DLV is decommissioned");
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4654 "util/configparser.c"
     break;
 
   case 381:
-#line 1271 "./util/configparser.y"
-        {
-               OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
+#line 1265 "./util/configparser.y"
+    {
+               OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
-                       trust_anchor_file_list, (yyvsp[0].str)))
+                       auto_trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 4665 "util/configparser.c"
     break;
 
   case 382:
-#line 1279 "./util/configparser.y"
-        {
-               OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
+#line 1273 "./util/configparser.y"
+    {
+               OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
-                       trusted_keys_file_list, (yyvsp[0].str)))
+                       trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 4676 "util/configparser.c"
     break;
 
   case 383:
-#line 1287 "./util/configparser.y"
-        {
-               OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
+#line 1281 "./util/configparser.y"
+    {
+               OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->
+                       trusted_keys_file_list, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 4686 "util/configparser.c"
     break;
 
   case 384:
-#line 1294 "./util/configparser.y"
-        {
-               OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else
-                       cfg_parser->cfg->trust_anchor_signaling =
-                               (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 1289 "./util/configparser.y"
+    {
+               OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
+                       yyerror("out of memory");
        }
-#line 4700 "util/configparser.c"
     break;
 
   case 385:
-#line 1305 "./util/configparser.y"
-        {
-               OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1296 "./util/configparser.y"
+    {
+               OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else
-                       cfg_parser->cfg->root_key_sentinel =
-                               (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       cfg_parser->cfg->trust_anchor_signaling =
+                               (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4714 "util/configparser.c"
     break;
 
   case 386:
-#line 1316 "./util/configparser.y"
-        {
-               OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
-                       yyerror("out of memory");
+#line 1307 "./util/configparser.y"
+    {
+               OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else
+                       cfg_parser->cfg->root_key_sentinel =
+                               (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4724 "util/configparser.c"
     break;
 
   case 387:
-#line 1323 "./util/configparser.y"
-        {
-               OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 1318 "./util/configparser.y"
+    {
+               OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str)))
+                       yyerror("out of memory");
        }
-#line 4736 "util/configparser.c"
     break;
 
   case 388:
-#line 1332 "./util/configparser.y"
-        {
-               OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1325 "./util/configparser.y"
+    {
+               OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4748 "util/configparser.c"
     break;
 
   case 389:
-#line 1341 "./util/configparser.y"
-        {
-               OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1334 "./util/configparser.y"
+    {
+               OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4760 "util/configparser.c"
     break;
 
   case 390:
-#line 1350 "./util/configparser.y"
-        {
-               OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1343 "./util/configparser.y"
+    {
+               OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4772 "util/configparser.c"
     break;
 
   case 391:
-#line 1359 "./util/configparser.y"
-        {
-               OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
-               free(cfg_parser->cfg->identity);
-               cfg_parser->cfg->identity = (yyvsp[0].str);
+#line 1352 "./util/configparser.y"
+    {
+               OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4782 "util/configparser.c"
     break;
 
   case 392:
-#line 1366 "./util/configparser.y"
-        {
-               OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
-               free(cfg_parser->cfg->version);
-               cfg_parser->cfg->version = (yyvsp[0].str);
+#line 1361 "./util/configparser.y"
+    {
+               OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
+               free(cfg_parser->cfg->identity);
+               cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str);
        }
-#line 4792 "util/configparser.c"
     break;
 
   case 393:
-#line 1373 "./util/configparser.y"
-        {
-               OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str)));
-               free(cfg_parser->cfg->http_user_agent);
-               cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
+#line 1368 "./util/configparser.y"
+    {
+               OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
+               free(cfg_parser->cfg->version);
+               cfg_parser->cfg->version = (yyvsp[(2) - (2)].str);
        }
-#line 4802 "util/configparser.c"
     break;
 
   case 394:
-#line 1380 "./util/configparser.y"
-        {
-               OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
+#line 1375 "./util/configparser.y"
+    {
+               OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[(2) - (2)].str)));
+               free(cfg_parser->cfg->http_user_agent);
+               cfg_parser->cfg->http_user_agent = (yyvsp[(2) - (2)].str);
+       }
+    break;
+
+  case 395:
+#line 1382 "./util/configparser.y"
+    {
+               OUTYY(("P(server_nsid:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->nsid_cfg_str);
-               cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
+               cfg_parser->cfg->nsid_cfg_str = (yyvsp[(2) - (2)].str);
                free(cfg_parser->cfg->nsid);
                cfg_parser->cfg->nsid = NULL;
                cfg_parser->cfg->nsid_len = 0;
-               if (*(yyvsp[0].str) == 0)
+               if (*(yyvsp[(2) - (2)].str) == 0)
                        ; /* pass; empty string is not setting nsid */
                else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
-                                       (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
+                                       (yyvsp[(2) - (2)].str), &cfg_parser->cfg->nsid_len)))
                        yyerror("the NSID must be either a hex string or an "
                            "ascii character string prepended with ascii_.");
        }
-#line 4821 "util/configparser.c"
     break;
 
-  case 395:
-#line 1396 "./util/configparser.y"
-        {
-               OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
+  case 396:
+#line 1398 "./util/configparser.y"
+    {
+               OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf))
                        yyerror("buffer size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4832 "util/configparser.c"
     break;
 
-  case 396:
-#line 1404 "./util/configparser.y"
-        {
-               OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
+  case 397:
+#line 1406 "./util/configparser.y"
+    {
+               OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf))
                        yyerror("buffer size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4843 "util/configparser.c"
     break;
 
-  case 397:
-#line 1412 "./util/configparser.y"
-        {
-               OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 398:
+#line 1414 "./util/configparser.y"
+    {
+               OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->so_reuseport =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4856 "util/configparser.c"
     break;
 
-  case 398:
-#line 1422 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 399:
+#line 1424 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->ip_transparent =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4869 "util/configparser.c"
     break;
 
-  case 399:
-#line 1432 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 400:
+#line 1434 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->ip_freebind =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4882 "util/configparser.c"
     break;
 
-  case 400:
-#line 1442 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 401:
+#line 1444 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) > 63)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 63)
                        yyerror("value too large (max 63)");
-               else if (atoi((yyvsp[0].str)) < 0)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 0)
                        yyerror("value too small (min 0)");
                else
-                       cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+                       cfg_parser->cfg->ip_dscp = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4899 "util/configparser.c"
     break;
 
-  case 401:
-#line 1456 "./util/configparser.y"
-        {
-               OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
+  case 402:
+#line 1458 "./util/configparser.y"
+    {
+               OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->stream_wait_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4910 "util/configparser.c"
     break;
 
-  case 402:
-#line 1464 "./util/configparser.y"
-        {
-               OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 403:
+#line 1466 "./util/configparser.y"
+    {
+               OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) < 12)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 12)
                        yyerror("edns buffer size too small");
-               else if (atoi((yyvsp[0].str)) > 65535)
+               else if (atoi((yyvsp[(2) - (2)].str)) > 65535)
                        cfg_parser->cfg->edns_buffer_size = 65535;
-               else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4926 "util/configparser.c"
     break;
 
-  case 403:
-#line 1477 "./util/configparser.y"
-        {
-               OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 404:
+#line 1479 "./util/configparser.y"
+    {
+               OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else if (atoi((yyvsp[0].str)) < 4096)
+               else if (atoi((yyvsp[(2) - (2)].str)) < 4096)
                        yyerror("message buffer size too small (use 4096)");
-               else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4940 "util/configparser.c"
     break;
 
-  case 404:
-#line 1488 "./util/configparser.y"
-        {
-               OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
+  case 405:
+#line 1490 "./util/configparser.y"
+    {
+               OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4951 "util/configparser.c"
     break;
 
-  case 405:
-#line 1496 "./util/configparser.y"
-        {
-               OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0) {
+  case 406:
+#line 1498 "./util/configparser.y"
+    {
+               OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                        yyerror("number expected");
                } else {
-                       cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str));
                        if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
                                yyerror("must be a power of 2");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4967 "util/configparser.c"
     break;
 
-  case 406:
-#line 1509 "./util/configparser.y"
-        {
-               OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 407:
+#line 1511 "./util/configparser.y"
+    {
+               OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4979 "util/configparser.c"
     break;
 
-  case 407:
-#line 1518 "./util/configparser.y"
-        {
-               OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 408:
+#line 1520 "./util/configparser.y"
+    {
+               OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 4991 "util/configparser.c"
     break;
 
-  case 408:
-#line 1527 "./util/configparser.y"
-        {
-               OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 409:
+#line 1529 "./util/configparser.y"
+    {
+               OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->delay_close = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5003 "util/configparser.c"
     break;
 
-  case 409:
-#line 1536 "./util/configparser.y"
-        {
-               OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 410:
+#line 1538 "./util/configparser.y"
+    {
+               OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5015 "util/configparser.c"
     break;
 
-  case 410:
-#line 1545 "./util/configparser.y"
-        {
-               OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 411:
+#line 1547 "./util/configparser.y"
+    {
+               OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->unblock_lan_zones =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5028 "util/configparser.c"
     break;
 
-  case 411:
-#line 1555 "./util/configparser.y"
-        {
-               OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 412:
+#line 1557 "./util/configparser.y"
+    {
+               OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->insecure_lan_zones =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5041 "util/configparser.c"
     break;
 
-  case 412:
-#line 1565 "./util/configparser.y"
-        {
-               OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
+  case 413:
+#line 1567 "./util/configparser.y"
+    {
+               OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5052 "util/configparser.c"
     break;
 
-  case 413:
-#line 1573 "./util/configparser.y"
-        {
-               OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0) {
+  case 414:
+#line 1575 "./util/configparser.y"
+    {
+               OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                        yyerror("number expected");
                } else {
-                       cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str));
                        if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
                                yyerror("must be a power of 2");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5068 "util/configparser.c"
     break;
 
-  case 414:
-#line 1586 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 415:
+#line 1588 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5080 "util/configparser.c"
     break;
 
-  case 415:
-#line 1595 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
+  case 416:
+#line 1597 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
-                       "removed, use infra-host-ttl)", (yyvsp[0].str));
-               free((yyvsp[0].str));
+                       "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5091 "util/configparser.c"
     break;
 
-  case 416:
-#line 1603 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 417:
+#line 1605 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5103 "util/configparser.c"
     break;
 
-  case 417:
-#line 1612 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
+  case 418:
+#line 1614 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
                verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
-                       "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
-               free((yyvsp[0].str));
+                       "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5114 "util/configparser.c"
     break;
 
-  case 418:
-#line 1620 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0) {
+  case 419:
+#line 1622 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                        yyerror("number expected");
                } else {
-                       cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str));
                        if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
                                yyerror("must be a power of 2");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5130 "util/configparser.c"
     break;
 
-  case 419:
-#line 1633 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 420:
+#line 1635 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5142 "util/configparser.c"
     break;
 
-  case 420:
-#line 1642 "./util/configparser.y"
-        {
-               OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 421:
+#line 1644 "./util/configparser.y"
+    {
+               OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->infra_keep_probing =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5155 "util/configparser.c"
     break;
 
-  case 421:
-#line 1652 "./util/configparser.y"
-        {
-               OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
+  case 422:
+#line 1654 "./util/configparser.y"
+    {
+               OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->target_fetch_policy);
-               cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
+               cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str);
        }
-#line 5165 "util/configparser.c"
     break;
 
-  case 422:
-#line 1659 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 423:
+#line 1661 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_short_bufsize =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5178 "util/configparser.c"
     break;
 
-  case 423:
-#line 1669 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 424:
+#line 1671 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_large_queries =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5191 "util/configparser.c"
     break;
 
-  case 424:
-#line 1679 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 425:
+#line 1681 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_glue =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5204 "util/configparser.c"
     break;
 
-  case 425:
-#line 1689 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 426:
+#line 1691 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_dnssec_stripped =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5217 "util/configparser.c"
     break;
 
-  case 426:
-#line 1699 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 427:
+#line 1701 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_below_nxdomain =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5230 "util/configparser.c"
     break;
 
-  case 427:
-#line 1709 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 428:
+#line 1711 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_referral_path =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5243 "util/configparser.c"
     break;
 
-  case 428:
-#line 1719 "./util/configparser.y"
-        {
-               OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 429:
+#line 1721 "./util/configparser.y"
+    {
+               OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->harden_algo_downgrade =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5256 "util/configparser.c"
     break;
 
-  case 429:
-#line 1729 "./util/configparser.y"
-        {
-               OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 430:
+#line 1731 "./util/configparser.y"
+    {
+               OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->use_caps_bits_for_id =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
-       }
-#line 5269 "util/configparser.c"
-    break;
-
-  case 430:
-#line 1739 "./util/configparser.y"
-        {
-               OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
-                       yyerror("out of memory");
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5279 "util/configparser.c"
     break;
 
   case 431:
-#line 1746 "./util/configparser.y"
-        {
-               OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
+#line 1741 "./util/configparser.y"
+    {
+               OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 5289 "util/configparser.c"
     break;
 
   case 432:
-#line 1753 "./util/configparser.y"
-        {
-               OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
+#line 1748 "./util/configparser.y"
+    {
+               OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 5299 "util/configparser.c"
     break;
 
   case 433:
-#line 1760 "./util/configparser.y"
-        {
-               OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 1755 "./util/configparser.y"
+    {
+               OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
+                       yyerror("out of memory");
        }
-#line 5311 "util/configparser.c"
     break;
 
   case 434:
-#line 1769 "./util/configparser.y"
-        {
-               OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1762 "./util/configparser.y"
+    {
+               OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->prefetch = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5323 "util/configparser.c"
     break;
 
   case 435:
-#line 1778 "./util/configparser.y"
-        {
-               OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1771 "./util/configparser.y"
+    {
+               OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5335 "util/configparser.c"
     break;
 
   case 436:
-#line 1787 "./util/configparser.y"
-        {
-               OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+#line 1780 "./util/configparser.y"
+    {
+               OUTYY(("P(server_deny_any:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->deny_any = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5347 "util/configparser.c"
     break;
 
   case 437:
-#line 1796 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
-                       yyerror("out of memory");
+#line 1789 "./util/configparser.y"
+    {
+               OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5357 "util/configparser.c"
     break;
 
   case 438:
-#line 1803 "./util/configparser.y"
-        {
-               OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1798 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
+                       yyerror("out of memory");
+       }
+    break;
+
+  case 439:
+#line 1805 "./util/configparser.y"
+    {
+               OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->donotquery_localhost =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5370 "util/configparser.c"
     break;
 
-  case 439:
-#line 1813 "./util/configparser.y"
-        {
-               OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 &&
-                       strcmp((yyvsp[0].str), "deny_non_local")!=0 &&
-                       strcmp((yyvsp[0].str), "refuse_non_local")!=0 &&
-                       strcmp((yyvsp[0].str), "allow_setrd")!=0 &&
-                       strcmp((yyvsp[0].str), "allow")!=0 &&
-                       strcmp((yyvsp[0].str), "allow_snoop")!=0) {
+  case 440:
+#line 1815 "./util/configparser.y"
+    {
+               OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
+                       strcmp((yyvsp[(3) - (3)].str), "deny_non_local")!=0 &&
+                       strcmp((yyvsp[(3) - (3)].str), "refuse_non_local")!=0 &&
+                       strcmp((yyvsp[(3) - (3)].str), "allow_setrd")!=0 &&
+                       strcmp((yyvsp[(3) - (3)].str), "allow")!=0 &&
+                       strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) {
                        yyerror("expected deny, refuse, deny_non_local, "
                                "refuse_non_local, allow, allow_setrd or "
                                "allow_snoop in access control action");
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
                } else {
-                       if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
+                       if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                                fatal_exit("out of memory adding acl");
                }
        }
-#line 5393 "util/configparser.c"
     break;
 
-  case 440:
-#line 1833 "./util/configparser.y"
-        {
-               OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
+  case 441:
+#line 1835 "./util/configparser.y"
+    {
+               OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->module_conf);
-               cfg_parser->cfg->module_conf = (yyvsp[0].str);
+               cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str);
        }
-#line 5403 "util/configparser.c"
     break;
 
-  case 441:
-#line 1840 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
-               if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
+  case 442:
+#line 1842 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
                        cfg_parser->cfg->val_date_override = 0;
-               } else if(strlen((yyvsp[0].str)) == 14) {
+               } else if(strlen((yyvsp[(2) - (2)].str)) == 14) {
                        cfg_parser->cfg->val_date_override =
-                               cfg_convert_timeval((yyvsp[0].str));
+                               cfg_convert_timeval((yyvsp[(2) - (2)].str));
                        if(!cfg_parser->cfg->val_date_override)
                                yyerror("bad date/time specification");
                } else {
-                       if(atoi((yyvsp[0].str)) == 0)
+                       if(atoi((yyvsp[(2) - (2)].str)) == 0)
                                yyerror("number expected");
-                       cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str));
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5424 "util/configparser.c"
     break;
 
-  case 442:
-#line 1858 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
-               if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
+  case 443:
+#line 1860 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
                        cfg_parser->cfg->val_sig_skew_min = 0;
                } else {
-                       cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str));
                        if(!cfg_parser->cfg->val_sig_skew_min)
                                yyerror("number expected");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5440 "util/configparser.c"
     break;
 
-  case 443:
-#line 1871 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
-               if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
+  case 444:
+#line 1873 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
                        cfg_parser->cfg->val_sig_skew_max = 0;
                } else {
-                       cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str));
                        if(!cfg_parser->cfg->val_sig_skew_max)
                                yyerror("number expected");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5456 "util/configparser.c"
     break;
 
-  case 444:
-#line 1884 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str)));
-               if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
+  case 445:
+#line 1886 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
                        cfg_parser->cfg->val_max_restart = 0;
                } else {
-                       cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->val_max_restart = atoi((yyvsp[(2) - (2)].str));
                        if(!cfg_parser->cfg->val_max_restart)
-                               yyerror("number expected");
-               }
-               free((yyvsp[0].str));
-       }
-#line 5472 "util/configparser.c"
-    break;
-
-  case 445:
-#line 1897 "./util/configparser.y"
-        {
-               OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+                               yyerror("number expected");
+               }
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5484 "util/configparser.c"
     break;
 
   case 446:
-#line 1906 "./util/configparser.y"
-        {
-               OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 1899 "./util/configparser.y"
+    {
+               OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5496 "util/configparser.c"
     break;
 
   case 447:
-#line 1915 "./util/configparser.y"
-        {
-               OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 1908 "./util/configparser.y"
+    {
+               OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5508 "util/configparser.c"
     break;
 
   case 448:
-#line 1924 "./util/configparser.y"
-        {
-               OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 1917 "./util/configparser.y"
+    {
+               OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->min_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5520 "util/configparser.c"
     break;
 
   case 449:
-#line 1933 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->val_clean_additional =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 1926 "./util/configparser.y"
+    {
+               OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5533 "util/configparser.c"
     break;
 
   case 450:
-#line 1943 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1935 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->val_permissive_mode =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->val_clean_additional =
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5546 "util/configparser.c"
     break;
 
   case 451:
-#line 1953 "./util/configparser.y"
-        {
-               OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1945 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else
-                       cfg_parser->cfg->aggressive_nsec =
-                               (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->val_permissive_mode =
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5560 "util/configparser.c"
     break;
 
   case 452:
-#line 1964 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1955 "./util/configparser.y"
+    {
+               OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else
+                       cfg_parser->cfg->aggressive_nsec =
+                               (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5572 "util/configparser.c"
     break;
 
   case 453:
-#line 1973 "./util/configparser.y"
-        {
-               OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 1966 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5584 "util/configparser.c"
     break;
 
   case 454:
-#line 1982 "./util/configparser.y"
-        {
-               OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+#line 1975 "./util/configparser.y"
+    {
+               OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5596 "util/configparser.c"
     break;
 
   case 455:
-#line 1991 "./util/configparser.y"
-        {
-               OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 1984 "./util/configparser.y"
+    {
+               OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5608 "util/configparser.c"
     break;
 
   case 456:
-#line 2000 "./util/configparser.y"
-        {
-               OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
-                       yyerror("number expected");
-               else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+#line 1993 "./util/configparser.y"
+    {
+               OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5620 "util/configparser.c"
     break;
 
   case 457:
-#line 2009 "./util/configparser.y"
-        {
-               OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+#line 2002 "./util/configparser.y"
+    {
+               OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5632 "util/configparser.c"
     break;
 
   case 458:
-#line 2018 "./util/configparser.y"
-        {
-               OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
-                       yyerror("expected yes or no.");
-               else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+#line 2011 "./util/configparser.y"
+    {
+               OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5644 "util/configparser.c"
     break;
 
   case 459:
-#line 2027 "./util/configparser.y"
-        {
-               OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+#line 2020 "./util/configparser.y"
+    {
+               OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
+       }
+    break;
+
+  case 460:
+#line 2029 "./util/configparser.y"
+    {
+               OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
 #if defined(HAVE_SSL) || defined(HAVE_NETTLE)
-               else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0);
+               else fake_dsa = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
                if(fake_dsa)
                        log_warn("test option fake_dsa is enabled");
 #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5660 "util/configparser.c"
     break;
 
-  case 460:
-#line 2040 "./util/configparser.y"
-        {
-               OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 461:
+#line 2042 "./util/configparser.y"
+    {
+               OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
 #if defined(HAVE_SSL) || defined(HAVE_NETTLE)
-               else fake_sha1 = (strcmp((yyvsp[0].str), "yes")==0);
+               else fake_sha1 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
                if(fake_sha1)
                        log_warn("test option fake_sha1 is enabled");
 #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5676 "util/configparser.c"
     break;
 
-  case 461:
-#line 2053 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 462:
+#line 2055 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5688 "util/configparser.c"
     break;
 
-  case 462:
-#line 2062 "./util/configparser.y"
-        {
-               OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
+  case 463:
+#line 2064 "./util/configparser.y"
+    {
+               OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->val_nsec3_key_iterations);
-               cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
+               cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str);
        }
-#line 5698 "util/configparser.c"
     break;
 
-  case 463:
-#line 2069 "./util/configparser.y"
-        {
-               OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 464:
+#line 2071 "./util/configparser.y"
+    {
+               OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else    cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else    cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5710 "util/configparser.c"
     break;
 
-  case 464:
-#line 2078 "./util/configparser.y"
-        {
-               OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 465:
+#line 2080 "./util/configparser.y"
+    {
+               OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->add_holddown = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5722 "util/configparser.c"
     break;
 
-  case 465:
-#line 2087 "./util/configparser.y"
-        {
-               OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 466:
+#line 2089 "./util/configparser.y"
+    {
+               OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->del_holddown = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5734 "util/configparser.c"
     break;
 
-  case 466:
-#line 2096 "./util/configparser.y"
-        {
-               OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 467:
+#line 2098 "./util/configparser.y"
+    {
+               OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->keep_missing = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5746 "util/configparser.c"
     break;
 
-  case 467:
-#line 2105 "./util/configparser.y"
-        {
-               OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 468:
+#line 2107 "./util/configparser.y"
+    {
+               OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->permit_small_holddown =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5759 "util/configparser.c"
     break;
 
-  case 468:
-#line 2114 "./util/configparser.y"
-        {
-               OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
+  case 469:
+#line 2116 "./util/configparser.y"
+    {
+               OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5770 "util/configparser.c"
     break;
 
-  case 469:
-#line 2122 "./util/configparser.y"
-        {
-               OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0) {
+  case 470:
+#line 2124 "./util/configparser.y"
+    {
+               OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                        yyerror("number expected");
                } else {
-                       cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str));
                        if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
                                yyerror("must be a power of 2");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5786 "util/configparser.c"
     break;
 
-  case 470:
-#line 2135 "./util/configparser.y"
-        {
-               OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
+  case 471:
+#line 2137 "./util/configparser.y"
+    {
+               OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5797 "util/configparser.c"
     break;
 
-  case 471:
-#line 2143 "./util/configparser.y"
-        {
-               OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
-                  strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
-                  strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
-                  && strcmp((yyvsp[0].str), "typetransparent")!=0
-                  && strcmp((yyvsp[0].str), "always_transparent")!=0
-                  && strcmp((yyvsp[0].str), "always_refuse")!=0
-                  && strcmp((yyvsp[0].str), "always_nxdomain")!=0
-                  && strcmp((yyvsp[0].str), "always_nodata")!=0
-                  && strcmp((yyvsp[0].str), "always_deny")!=0
-                  && strcmp((yyvsp[0].str), "always_null")!=0
-                  && strcmp((yyvsp[0].str), "noview")!=0
-                  && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
-                  && strcmp((yyvsp[0].str), "inform_redirect") != 0
-                        && strcmp((yyvsp[0].str), "ipset") != 0) {
+  case 472:
+#line 2145 "./util/configparser.y"
+    {
+               OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
+                  strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 &&
+                  strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_transparent")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_refuse")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_nxdomain")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_nodata")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_deny")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_null")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "noview")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "inform")!=0 && strcmp((yyvsp[(3) - (3)].str), "inform_deny")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "inform_redirect") != 0
+                        && strcmp((yyvsp[(3) - (3)].str), "ipset") != 0) {
                        yyerror("local-zone type: expected static, deny, "
                                "refuse, redirect, transparent, "
                                "typetransparent, inform, inform_deny, "
@@ -5821,46 +5413,44 @@ yyreduce:
                                "always_refuse, always_nxdomain, "
                                "always_nodata, always_deny, always_null, "
                                "noview, nodefault or ipset");
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
-               } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
+                       free((yyvsp[(2) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
+               } else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) {
                        if(!cfg_strlist_insert(&cfg_parser->cfg->
-                               local_zones_nodefault, (yyvsp[-1].str)))
+                               local_zones_nodefault, (yyvsp[(2) - (3)].str)))
                                fatal_exit("out of memory adding local-zone");
-                       free((yyvsp[0].str));
+                       free((yyvsp[(3) - (3)].str));
 #ifdef USE_IPSET
-               } else if(strcmp((yyvsp[0].str), "ipset")==0) {
+               } else if(strcmp((yyvsp[(3) - (3)].str), "ipset")==0) {
                        if(!cfg_strlist_insert(&cfg_parser->cfg->
-                               local_zones_ipset, (yyvsp[-1].str)))
+                               local_zones_ipset, (yyvsp[(2) - (3)].str)))
                                fatal_exit("out of memory adding local-zone");
-                       free((yyvsp[0].str));
+                       free((yyvsp[(3) - (3)].str));
 #endif
                } else {
                        if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
-                               (yyvsp[-1].str), (yyvsp[0].str)))
+                               (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 5845 "util/configparser.c"
     break;
 
-  case 472:
-#line 2188 "./util/configparser.y"
-        {
-               OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
+  case 473:
+#line 2190 "./util/configparser.y"
+    {
+               OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding local-data");
        }
-#line 5855 "util/configparser.c"
     break;
 
-  case 473:
-#line 2195 "./util/configparser.y"
-        {
+  case 474:
+#line 2197 "./util/configparser.y"
+    {
                char* ptr;
-               OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
-               ptr = cfg_ptr_reverse((yyvsp[0].str));
-               free((yyvsp[0].str));
+               OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
+               ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
                if(ptr) {
                        if(!cfg_strlist_insert(&cfg_parser->cfg->
                                local_data, ptr))
@@ -5869,93 +5459,98 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 5873 "util/configparser.c"
     break;
 
-  case 474:
-#line 2210 "./util/configparser.y"
-        {
-               OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 475:
+#line 2212 "./util/configparser.y"
+    {
+               OUTYY(("P(server_local_zone_do_ede:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if(strcmp((yyvsp[(3) - (3)].str), "yes") != 0 && strcmp((yyvsp[(3) - (3)].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               if(!cfg_str2list_insert(&cfg_parser->cfg->local_zone_do_ede,
+                       (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) {
+                       yyerror("out of memory adding local-zone-do-ede");
+               }
+       }
+    break;
+
+  case 476:
+#line 2223 "./util/configparser.y"
+    {
+               OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->minimal_responses =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5886 "util/configparser.c"
     break;
 
-  case 475:
-#line 2220 "./util/configparser.y"
-        {
-               OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 477:
+#line 2233 "./util/configparser.y"
+    {
+               OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->rrset_roundrobin =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5899 "util/configparser.c"
     break;
 
-  case 476:
-#line 2230 "./util/configparser.y"
-        {
-               OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
-               cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+  case 478:
+#line 2243 "./util/configparser.y"
+    {
+               OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[(2) - (2)].str)));
+               cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5909 "util/configparser.c"
     break;
 
-  case 477:
-#line 2237 "./util/configparser.y"
-        {
-               OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
-               cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+  case 479:
+#line 2250 "./util/configparser.y"
+    {
+               OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5919 "util/configparser.c"
     break;
 
-  case 478:
-#line 2244 "./util/configparser.y"
-        {
-               OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
+  case 480:
+#line 2257 "./util/configparser.y"
+    {
+               OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dns64_prefix);
-               cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
+               cfg_parser->cfg->dns64_prefix = (yyvsp[(2) - (2)].str);
        }
-#line 5929 "util/configparser.c"
     break;
 
-  case 479:
-#line 2251 "./util/configparser.y"
-        {
-               OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 481:
+#line 2264 "./util/configparser.y"
+    {
+               OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5941 "util/configparser.c"
     break;
 
-  case 480:
-#line 2260 "./util/configparser.y"
-        {
-               OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
+  case 482:
+#line 2273 "./util/configparser.y"
+    {
+               OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
-                       (yyvsp[0].str)))
+                       (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding dns64-ignore-aaaa");
        }
-#line 5952 "util/configparser.c"
     break;
 
-  case 481:
-#line 2268 "./util/configparser.y"
-        {
-               char* p, *s = (yyvsp[0].str);
-               OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
+  case 483:
+#line 2281 "./util/configparser.y"
+    {
+               char* p, *s = (yyvsp[(2) - (2)].str);
+               OUTYY(("P(server_define_tag:%s)\n", (yyvsp[(2) - (2)].str)));
                while((p=strsep(&s, " \t\n")) != NULL) {
                        if(*p) {
                                if(!config_add_tag(cfg_parser->cfg, p))
@@ -5963,851 +5558,789 @@ yyreduce:
                                                "out of memory");
                        }
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 5969 "util/configparser.c"
     break;
 
-  case 482:
-#line 2282 "./util/configparser.y"
-        {
+  case 484:
+#line 2295 "./util/configparser.y"
+    {
                size_t len = 0;
-               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
+               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str),
                        &len);
-               free((yyvsp[0].str));
-               OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[-1].str)));
+               free((yyvsp[(3) - (3)].str));
+               OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[(2) - (3)].str)));
                if(!bitlist) {
                        yyerror("could not parse tags, (define-tag them first)");
-                       free((yyvsp[-1].str));
+                       free((yyvsp[(2) - (3)].str));
                }
                if(bitlist) {
                        if(!cfg_strbytelist_insert(
                                &cfg_parser->cfg->local_zone_tags,
-                               (yyvsp[-1].str), bitlist, len)) {
+                               (yyvsp[(2) - (3)].str), bitlist, len)) {
                                yyerror("out of memory");
-                               free((yyvsp[-1].str));
+                               free((yyvsp[(2) - (3)].str));
                        }
                }
        }
-#line 5993 "util/configparser.c"
     break;
 
-  case 483:
-#line 2303 "./util/configparser.y"
-        {
+  case 485:
+#line 2316 "./util/configparser.y"
+    {
                size_t len = 0;
-               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
+               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str),
                        &len);
-               free((yyvsp[0].str));
-               OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str)));
+               free((yyvsp[(3) - (3)].str));
+               OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[(2) - (3)].str)));
                if(!bitlist) {
                        yyerror("could not parse tags, (define-tag them first)");
-                       free((yyvsp[-1].str));
+                       free((yyvsp[(2) - (3)].str));
                }
                if(bitlist) {
                        if(!cfg_strbytelist_insert(
                                &cfg_parser->cfg->acl_tags,
-                               (yyvsp[-1].str), bitlist, len)) {
+                               (yyvsp[(2) - (3)].str), bitlist, len)) {
                                yyerror("out of memory");
-                               free((yyvsp[-1].str));
+                               free((yyvsp[(2) - (3)].str));
                        }
                }
        }
-#line 6017 "util/configparser.c"
     break;
 
-  case 484:
-#line 2324 "./util/configparser.y"
-        {
-               OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
+  case 486:
+#line 2337 "./util/configparser.y"
+    {
+               OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
-                       (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
+                       (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) {
                        yyerror("out of memory");
-                       free((yyvsp[-2].str));
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (4)].str));
+                       free((yyvsp[(3) - (4)].str));
+                       free((yyvsp[(4) - (4)].str));
                }
        }
-#line 6032 "util/configparser.c"
     break;
 
-  case 485:
-#line 2336 "./util/configparser.y"
-        {
-               OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
+  case 487:
+#line 2349 "./util/configparser.y"
+    {
+               OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
-                       (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
+                       (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) {
                        yyerror("out of memory");
-                       free((yyvsp[-2].str));
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (4)].str));
+                       free((yyvsp[(3) - (4)].str));
+                       free((yyvsp[(4) - (4)].str));
                }
        }
-#line 6047 "util/configparser.c"
     break;
 
-  case 486:
-#line 2348 "./util/configparser.y"
-        {
-               OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
+  case 488:
+#line 2361 "./util/configparser.y"
+    {
+               OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
-                       (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
+                       (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) {
                        yyerror("out of memory");
-                       free((yyvsp[-2].str));
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (4)].str));
+                       free((yyvsp[(3) - (4)].str));
+                       free((yyvsp[(4) - (4)].str));
                }
        }
-#line 6062 "util/configparser.c"
     break;
 
-  case 487:
-#line 2360 "./util/configparser.y"
-        {
-               OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
+  case 489:
+#line 2373 "./util/configparser.y"
+    {
+               OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
                if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
-                       (yyvsp[-1].str), (yyvsp[0].str))) {
+                       (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) {
                        yyerror("out of memory");
                }
        }
-#line 6074 "util/configparser.c"
     break;
 
-  case 488:
-#line 2369 "./util/configparser.y"
-        {
+  case 490:
+#line 2382 "./util/configparser.y"
+    {
                size_t len = 0;
-               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
+               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str),
                        &len);
-               free((yyvsp[0].str));
-               OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[-1].str)));
+               free((yyvsp[(3) - (3)].str));
+               OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[(2) - (3)].str)));
                if(!bitlist) {
                        yyerror("could not parse tags, (define-tag them first)");
-                       free((yyvsp[-1].str));
+                       free((yyvsp[(2) - (3)].str));
                }
                if(bitlist) {
                        if(!cfg_strbytelist_insert(
                                &cfg_parser->cfg->respip_tags,
-                               (yyvsp[-1].str), bitlist, len)) {
+                               (yyvsp[(2) - (3)].str), bitlist, len)) {
                                yyerror("out of memory");
-                               free((yyvsp[-1].str));
+                               free((yyvsp[(2) - (3)].str));
                        }
                }
        }
-#line 6098 "util/configparser.c"
     break;
 
-  case 489:
-#line 2390 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 491:
+#line 2403 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6110 "util/configparser.c"
     break;
 
-  case 490:
-#line 2399 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 492:
+#line 2412 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ratelimit = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6122 "util/configparser.c"
     break;
 
-  case 491:
-#line 2408 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
+  case 493:
+#line 2421 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ip_ratelimit_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6133 "util/configparser.c"
     break;
 
-  case 492:
-#line 2416 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
-               if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
+  case 494:
+#line 2429 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ratelimit_size))
                        yyerror("memory size expected");
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6144 "util/configparser.c"
     break;
 
-  case 493:
-#line 2424 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0) {
+  case 495:
+#line 2437 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                        yyerror("number expected");
                } else {
-                       cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[(2) - (2)].str));
                        if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
                                yyerror("must be a power of 2");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6160 "util/configparser.c"
     break;
 
-  case 494:
-#line 2437 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0) {
+  case 496:
+#line 2450 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                        yyerror("number expected");
                } else {
-                       cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str));
+                       cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[(2) - (2)].str));
                        if(!is_pow2(cfg_parser->cfg->ratelimit_slabs))
                                yyerror("must be a power of 2");
                }
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6176 "util/configparser.c"
     break;
 
-  case 495:
-#line 2450 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
+  case 497:
+#line 2463 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) {
                        yyerror("number expected");
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
                } else {
                        if(!cfg_str2list_insert(&cfg_parser->cfg->
-                               ratelimit_for_domain, (yyvsp[-1].str), (yyvsp[0].str)))
+                               ratelimit_for_domain, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                                fatal_exit("out of memory adding "
                                        "ratelimit-for-domain");
                }
        }
-#line 6194 "util/configparser.c"
     break;
 
-  case 496:
-#line 2465 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
+  case 498:
+#line 2478 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) {
                        yyerror("number expected");
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
                } else {
                        if(!cfg_str2list_insert(&cfg_parser->cfg->
-                               ratelimit_below_domain, (yyvsp[-1].str), (yyvsp[0].str)))
+                               ratelimit_below_domain, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                                fatal_exit("out of memory adding "
                                        "ratelimit-below-domain");
                }
        }
-#line 6212 "util/configparser.c"
     break;
 
-  case 497:
-#line 2480 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 499:
+#line 2493 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6224 "util/configparser.c"
     break;
 
-  case 498:
-#line 2489 "./util/configparser.y"
-        {
-               OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 500:
+#line 2502 "./util/configparser.y"
+    {
+               OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6236 "util/configparser.c"
     break;
 
-  case 499:
-#line 2498 "./util/configparser.y"
-        {
-               OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 501:
+#line 2511 "./util/configparser.y"
+    {
+               OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6248 "util/configparser.c"
     break;
 
-  case 500:
-#line 2507 "./util/configparser.y"
-        {
+  case 502:
+#line 2520 "./util/configparser.y"
+    {
                OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6257 "util/configparser.c"
     break;
 
-  case 501:
-#line 2513 "./util/configparser.y"
-        {
-               OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) <= 0)
+  case 503:
+#line 2526 "./util/configparser.y"
+    {
+               OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) <= 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->fast_server_num = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6269 "util/configparser.c"
     break;
 
-  case 502:
-#line 2522 "./util/configparser.y"
-        {
-               OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 504:
+#line 2535 "./util/configparser.y"
+    {
+               OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6281 "util/configparser.c"
     break;
 
-  case 503:
-#line 2531 "./util/configparser.y"
-        {
-               OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 505:
+#line 2544 "./util/configparser.y"
+    {
+               OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->qname_minimisation =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6294 "util/configparser.c"
     break;
 
-  case 504:
-#line 2541 "./util/configparser.y"
-        {
-               OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 506:
+#line 2554 "./util/configparser.y"
+    {
+               OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->qname_minimisation_strict =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6307 "util/configparser.c"
     break;
 
-  case 505:
-#line 2551 "./util/configparser.y"
-        {
-               OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 507:
+#line 2564 "./util/configparser.y"
+    {
+               OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->pad_responses = 
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6320 "util/configparser.c"
     break;
 
-  case 506:
-#line 2561 "./util/configparser.y"
-        {
-               OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 508:
+#line 2574 "./util/configparser.y"
+    {
+               OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6332 "util/configparser.c"
     break;
 
-  case 507:
-#line 2570 "./util/configparser.y"
-        {
-               OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 509:
+#line 2583 "./util/configparser.y"
+    {
+               OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->pad_queries = 
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6345 "util/configparser.c"
     break;
 
-  case 508:
-#line 2580 "./util/configparser.y"
-        {
-               OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 510:
+#line 2593 "./util/configparser.y"
+    {
+               OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6357 "util/configparser.c"
     break;
 
-  case 509:
-#line 2589 "./util/configparser.y"
-        {
+  case 511:
+#line 2602 "./util/configparser.y"
+    {
        #ifdef USE_IPSECMOD
-               OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+               OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0);
+               else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
        #else
                OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6373 "util/configparser.c"
     break;
 
-  case 510:
-#line 2602 "./util/configparser.y"
-        {
+  case 512:
+#line 2615 "./util/configparser.y"
+    {
        #ifdef USE_IPSECMOD
-               OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+               OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0);
+               else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
        #else
                OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6389 "util/configparser.c"
     break;
 
-  case 511:
-#line 2615 "./util/configparser.y"
-        {
+  case 513:
+#line 2628 "./util/configparser.y"
+    {
        #ifdef USE_IPSECMOD
-               OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
+               OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ipsecmod_hook);
-               cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str);
+               cfg_parser->cfg->ipsecmod_hook = (yyvsp[(2) - (2)].str);
        #else
                OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 6404 "util/configparser.c"
     break;
 
-  case 512:
-#line 2627 "./util/configparser.y"
-        {
+  case 514:
+#line 2640 "./util/configparser.y"
+    {
        #ifdef USE_IPSECMOD
-               OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+               OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("number expected");
-               else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 6421 "util/configparser.c"
     break;
 
-  case 513:
-#line 2641 "./util/configparser.y"
-        {
+  case 515:
+#line 2654 "./util/configparser.y"
+    {
        #ifdef USE_IPSECMOD
-               OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
+               OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        #else
                OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 6436 "util/configparser.c"
     break;
 
-  case 514:
-#line 2653 "./util/configparser.y"
-        {
+  case 516:
+#line 2666 "./util/configparser.y"
+    {
        #ifdef USE_IPSECMOD
-               OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+               OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 6453 "util/configparser.c"
     break;
 
-  case 515:
-#line 2667 "./util/configparser.y"
-        {
-               OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
+  case 517:
+#line 2680 "./util/configparser.y"
+    {
+               OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
                if(!cfg_str2list_insert(
-                       &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str)))
+                       &cfg_parser->cfg->edns_client_strings, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                        fatal_exit("out of memory adding "
                                "edns-client-string");
        }
-#line 6465 "util/configparser.c"
     break;
 
-  case 516:
-#line 2676 "./util/configparser.y"
-        {
-               OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+  case 518:
+#line 2689 "./util/configparser.y"
+    {
+               OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
                        yyerror("option code expected");
-               else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0)
+               else if(atoi((yyvsp[(2) - (2)].str)) > 65535 || atoi((yyvsp[(2) - (2)].str)) < 0)
                        yyerror("option code must be in interval [0, 65535]");
-               else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
 
        }
-#line 6480 "util/configparser.c"
     break;
 
-  case 517:
-#line 2688 "./util/configparser.y"
-        {
-               OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
+  case 519:
+#line 2701 "./util/configparser.y"
+    {
+               OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->stubs->name)
                        yyerror("stub name override, there must be one name "
                                "for one stub-zone");
                free(cfg_parser->cfg->stubs->name);
-               cfg_parser->cfg->stubs->name = (yyvsp[0].str);
+               cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str);
        }
-#line 6493 "util/configparser.c"
     break;
 
-  case 518:
-#line 2698 "./util/configparser.y"
-        {
-               OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
+  case 520:
+#line 2711 "./util/configparser.y"
+    {
+               OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6503 "util/configparser.c"
     break;
 
-  case 519:
-#line 2705 "./util/configparser.y"
-        {
-               OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
+  case 521:
+#line 2718 "./util/configparser.y"
+    {
+               OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6513 "util/configparser.c"
     break;
 
-  case 520:
-#line 2712 "./util/configparser.y"
-        {
-               OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 522:
+#line 2725 "./util/configparser.y"
+    {
+               OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6525 "util/configparser.c"
     break;
 
-  case 521:
-#line 2721 "./util/configparser.y"
-        {
-               OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 523:
+#line 2734 "./util/configparser.y"
+    {
+               OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6537 "util/configparser.c"
     break;
 
-  case 522:
-#line 2730 "./util/configparser.y"
-        {
-               OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 524:
+#line 2743 "./util/configparser.y"
+    {
+               OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->stubs->ssl_upstream =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6550 "util/configparser.c"
     break;
 
-  case 523:
-#line 2740 "./util/configparser.y"
-        {
-                OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str)));
-                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 525:
+#line 2753 "./util/configparser.y"
+    {
+                OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                         yyerror("expected yes or no.");
                 else cfg_parser->cfg->stubs->tcp_upstream =
-                        (strcmp((yyvsp[0].str), "yes")==0);
-                free((yyvsp[0].str));
+                        (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+                free((yyvsp[(2) - (2)].str));
         }
-#line 6563 "util/configparser.c"
     break;
 
-  case 524:
-#line 2750 "./util/configparser.y"
-        {
-               OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 526:
+#line 2763 "./util/configparser.y"
+    {
+               OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->stubs->isprime =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6576 "util/configparser.c"
     break;
 
-  case 525:
-#line 2760 "./util/configparser.y"
-        {
-               OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
+  case 527:
+#line 2773 "./util/configparser.y"
+    {
+               OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->forwards->name)
                        yyerror("forward name override, there must be one "
                                "name for one forward-zone");
                free(cfg_parser->cfg->forwards->name);
-               cfg_parser->cfg->forwards->name = (yyvsp[0].str);
+               cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str);
        }
-#line 6589 "util/configparser.c"
     break;
 
-  case 526:
-#line 2770 "./util/configparser.y"
-        {
-               OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
+  case 528:
+#line 2783 "./util/configparser.y"
+    {
+               OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6599 "util/configparser.c"
     break;
 
-  case 527:
-#line 2777 "./util/configparser.y"
-        {
-               OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
+  case 529:
+#line 2790 "./util/configparser.y"
+    {
+               OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6609 "util/configparser.c"
     break;
 
-  case 528:
-#line 2784 "./util/configparser.y"
-        {
-               OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 530:
+#line 2797 "./util/configparser.y"
+    {
+               OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6621 "util/configparser.c"
     break;
 
-  case 529:
-#line 2793 "./util/configparser.y"
-        {
-               OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 531:
+#line 2806 "./util/configparser.y"
+    {
+               OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6633 "util/configparser.c"
     break;
 
-  case 530:
-#line 2802 "./util/configparser.y"
-        {
-               OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 532:
+#line 2815 "./util/configparser.y"
+    {
+               OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->forwards->ssl_upstream =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6646 "util/configparser.c"
     break;
 
-  case 531:
-#line 2812 "./util/configparser.y"
-        {
-                OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str)));
-                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 533:
+#line 2825 "./util/configparser.y"
+    {
+                OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                         yyerror("expected yes or no.");
                 else cfg_parser->cfg->forwards->tcp_upstream =
-                        (strcmp((yyvsp[0].str), "yes")==0);
-                free((yyvsp[0].str));
+                        (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+                free((yyvsp[(2) - (2)].str));
         }
-#line 6659 "util/configparser.c"
     break;
 
-  case 532:
-#line 2822 "./util/configparser.y"
-        {
-               OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
+  case 534:
+#line 2835 "./util/configparser.y"
+    {
+               OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->auths->name)
                        yyerror("auth name override, there must be one name "
                                "for one auth-zone");
                free(cfg_parser->cfg->auths->name);
-               cfg_parser->cfg->auths->name = (yyvsp[0].str);
+               cfg_parser->cfg->auths->name = (yyvsp[(2) - (2)].str);
        }
-#line 6672 "util/configparser.c"
     break;
 
-  case 533:
-#line 2832 "./util/configparser.y"
-        {
-               OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
+  case 535:
+#line 2845 "./util/configparser.y"
+    {
+               OUTYY(("P(zonefile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->auths->zonefile);
-               cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
+               cfg_parser->cfg->auths->zonefile = (yyvsp[(2) - (2)].str);
        }
-#line 6682 "util/configparser.c"
     break;
 
-  case 534:
-#line 2839 "./util/configparser.y"
-        {
-               OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
+  case 536:
+#line 2852 "./util/configparser.y"
+    {
+               OUTYY(("P(master:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6692 "util/configparser.c"
     break;
 
-  case 535:
-#line 2846 "./util/configparser.y"
-        {
-               OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
+  case 537:
+#line 2859 "./util/configparser.y"
+    {
+               OUTYY(("P(url:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6702 "util/configparser.c"
     break;
 
-  case 536:
-#line 2853 "./util/configparser.y"
-        {
-               OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
+  case 538:
+#line 2866 "./util/configparser.y"
+    {
+               OUTYY(("P(allow-notify:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
-                       (yyvsp[0].str)))
+                       (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6713 "util/configparser.c"
     break;
 
-  case 537:
-#line 2861 "./util/configparser.y"
-        {
-               OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 539:
+#line 2874 "./util/configparser.y"
+    {
+               OUTYY(("P(zonemd-check:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->auths->zonemd_check =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6726 "util/configparser.c"
     break;
 
-  case 538:
-#line 2871 "./util/configparser.y"
-        {
-               OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 540:
+#line 2884 "./util/configparser.y"
+    {
+               OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->auths->zonemd_reject_absence =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6739 "util/configparser.c"
     break;
 
-  case 539:
-#line 2881 "./util/configparser.y"
-        {
-               OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 541:
+#line 2894 "./util/configparser.y"
+    {
+               OUTYY(("P(for-downstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->auths->for_downstream =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6752 "util/configparser.c"
     break;
 
-  case 540:
-#line 2891 "./util/configparser.y"
-        {
-               OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 542:
+#line 2904 "./util/configparser.y"
+    {
+               OUTYY(("P(for-upstream:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->auths->for_upstream =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6765 "util/configparser.c"
     break;
 
-  case 541:
-#line 2901 "./util/configparser.y"
-        {
-               OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 543:
+#line 2914 "./util/configparser.y"
+    {
+               OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->auths->fallback_enabled =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6778 "util/configparser.c"
     break;
 
-  case 542:
-#line 2911 "./util/configparser.y"
-        {
-               OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
+  case 544:
+#line 2924 "./util/configparser.y"
+    {
+               OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->views->name)
                        yyerror("view name override, there must be one "
                                "name for one view");
                free(cfg_parser->cfg->views->name);
-               cfg_parser->cfg->views->name = (yyvsp[0].str);
+               cfg_parser->cfg->views->name = (yyvsp[(2) - (2)].str);
        }
-#line 6791 "util/configparser.c"
     break;
 
-  case 543:
-#line 2921 "./util/configparser.y"
-        {
-               OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
-                  strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
-                  strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
-                  && strcmp((yyvsp[0].str), "typetransparent")!=0
-                  && strcmp((yyvsp[0].str), "always_transparent")!=0
-                  && strcmp((yyvsp[0].str), "always_refuse")!=0
-                  && strcmp((yyvsp[0].str), "always_nxdomain")!=0
-                  && strcmp((yyvsp[0].str), "always_nodata")!=0
-                  && strcmp((yyvsp[0].str), "always_deny")!=0
-                  && strcmp((yyvsp[0].str), "always_null")!=0
-                  && strcmp((yyvsp[0].str), "noview")!=0
-                  && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
-                  && strcmp((yyvsp[0].str), "inform_redirect") != 0
-                  && strcmp((yyvsp[0].str), "ipset") != 0) {
+  case 545:
+#line 2934 "./util/configparser.y"
+    {
+               OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
+                  strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 &&
+                  strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_transparent")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_refuse")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_nxdomain")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_nodata")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_deny")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "always_null")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "noview")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "inform")!=0 && strcmp((yyvsp[(3) - (3)].str), "inform_deny")!=0
+                  && strcmp((yyvsp[(3) - (3)].str), "inform_redirect") != 0
+                  && strcmp((yyvsp[(3) - (3)].str), "ipset") != 0) {
                        yyerror("local-zone type: expected static, deny, "
                                "refuse, redirect, transparent, "
                                "typetransparent, inform, inform_deny, "
@@ -6815,72 +6348,68 @@ yyreduce:
                                "always_refuse, always_nxdomain, "
                                "always_nodata, always_deny, always_null, "
                                "noview, nodefault or ipset");
-                       free((yyvsp[-1].str));
-                       free((yyvsp[0].str));
-               } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
+                       free((yyvsp[(2) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
+               } else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) {
                        if(!cfg_strlist_insert(&cfg_parser->cfg->views->
-                               local_zones_nodefault, (yyvsp[-1].str)))
+                               local_zones_nodefault, (yyvsp[(2) - (3)].str)))
                                fatal_exit("out of memory adding local-zone");
-                       free((yyvsp[0].str));
+                       free((yyvsp[(3) - (3)].str));
 #ifdef USE_IPSET
-               } else if(strcmp((yyvsp[0].str), "ipset")==0) {
+               } else if(strcmp((yyvsp[(3) - (3)].str), "ipset")==0) {
                        if(!cfg_strlist_insert(&cfg_parser->cfg->views->
-                               local_zones_ipset, (yyvsp[-1].str)))
+                               local_zones_ipset, (yyvsp[(2) - (3)].str)))
                                fatal_exit("out of memory adding local-zone");
-                       free((yyvsp[0].str));
+                       free((yyvsp[(3) - (3)].str));
 #endif
                } else {
                        if(!cfg_str2list_insert(
                                &cfg_parser->cfg->views->local_zones,
-                               (yyvsp[-1].str), (yyvsp[0].str)))
+                               (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 6840 "util/configparser.c"
     break;
 
-  case 544:
-#line 2967 "./util/configparser.y"
-        {
-               OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               validate_respip_action((yyvsp[0].str));
+  case 546:
+#line 2980 "./util/configparser.y"
+    {
+               OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               validate_respip_action((yyvsp[(3) - (3)].str));
                if(!cfg_str2list_insert(
-                       &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str)))
+                       &cfg_parser->cfg->views->respip_actions, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                        fatal_exit("out of memory adding per-view "
                                "response-ip action");
        }
-#line 6853 "util/configparser.c"
     break;
 
-  case 545:
-#line 2977 "./util/configparser.y"
-        {
-               OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
+  case 547:
+#line 2990 "./util/configparser.y"
+    {
+               OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[(2) - (3)].str)));
                if(!cfg_str2list_insert(
-                       &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
+                       &cfg_parser->cfg->views->respip_data, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                        fatal_exit("out of memory adding response-ip-data");
        }
-#line 6864 "util/configparser.c"
     break;
 
-  case 546:
-#line 2985 "./util/configparser.y"
-        {
-               OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
+  case 548:
+#line 2998 "./util/configparser.y"
+    {
+               OUTYY(("P(view_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[(2) - (2)].str))) {
                        fatal_exit("out of memory adding local-data");
                }
        }
-#line 6875 "util/configparser.c"
     break;
 
-  case 547:
-#line 2993 "./util/configparser.y"
-        {
+  case 549:
+#line 3006 "./util/configparser.y"
+    {
                char* ptr;
-               OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
-               ptr = cfg_ptr_reverse((yyvsp[0].str));
-               free((yyvsp[0].str));
+               OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
+               ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
                if(ptr) {
                        if(!cfg_strlist_insert(&cfg_parser->cfg->views->
                                local_data, ptr))
@@ -6889,785 +6418,749 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 6893 "util/configparser.c"
     break;
 
-  case 548:
-#line 3008 "./util/configparser.y"
-        {
-               OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 550:
+#line 3021 "./util/configparser.y"
+    {
+               OUTYY(("P(view-first:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6905 "util/configparser.c"
     break;
 
-  case 549:
-#line 3017 "./util/configparser.y"
-        {
+  case 551:
+#line 3030 "./util/configparser.y"
+    {
                OUTYY(("\nP(remote-control:)\n"));
        }
-#line 6913 "util/configparser.c"
     break;
 
-  case 560:
-#line 3028 "./util/configparser.y"
-        {
-               OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 562:
+#line 3041 "./util/configparser.y"
+    {
+               OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->remote_control_enable =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6926 "util/configparser.c"
     break;
 
-  case 561:
-#line 3038 "./util/configparser.y"
-        {
-               OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 563:
+#line 3051 "./util/configparser.y"
+    {
+               OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("control port number expected");
-               else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6938 "util/configparser.c"
     break;
 
-  case 562:
-#line 3047 "./util/configparser.y"
-        {
-               OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
+  case 564:
+#line 3060 "./util/configparser.y"
+    {
+               OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 6948 "util/configparser.c"
     break;
 
-  case 563:
-#line 3054 "./util/configparser.y"
-        {
-               OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
-               cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+  case 565:
+#line 3067 "./util/configparser.y"
+    {
+               OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str)));
+               cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 6958 "util/configparser.c"
     break;
 
-  case 564:
-#line 3061 "./util/configparser.y"
-        {
-               OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
+  case 566:
+#line 3074 "./util/configparser.y"
+    {
+               OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_key_file);
-               cfg_parser->cfg->server_key_file = (yyvsp[0].str);
+               cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str);
        }
-#line 6968 "util/configparser.c"
     break;
 
-  case 565:
-#line 3068 "./util/configparser.y"
-        {
-               OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
+  case 567:
+#line 3081 "./util/configparser.y"
+    {
+               OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_cert_file);
-               cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
+               cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str);
        }
-#line 6978 "util/configparser.c"
     break;
 
-  case 566:
-#line 3075 "./util/configparser.y"
-        {
-               OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
+  case 568:
+#line 3088 "./util/configparser.y"
+    {
+               OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_key_file);
-               cfg_parser->cfg->control_key_file = (yyvsp[0].str);
+               cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str);
        }
-#line 6988 "util/configparser.c"
     break;
 
-  case 567:
-#line 3082 "./util/configparser.y"
-        {
-               OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
+  case 569:
+#line 3095 "./util/configparser.y"
+    {
+               OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_cert_file);
-               cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
+               cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str);
        }
-#line 6998 "util/configparser.c"
     break;
 
-  case 568:
-#line 3089 "./util/configparser.y"
-        {
+  case 570:
+#line 3102 "./util/configparser.y"
+    {
                OUTYY(("\nP(dnstap:)\n"));
        }
-#line 7006 "util/configparser.c"
     break;
 
-  case 590:
-#line 3109 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 592:
+#line 3122 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dnstap = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7018 "util/configparser.c"
     break;
 
-  case 591:
-#line 3118 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 593:
+#line 3131 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_bidirectional =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7031 "util/configparser.c"
     break;
 
-  case 592:
-#line 3128 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
+  case 594:
+#line 3141 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_socket_path);
-               cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_socket_path = (yyvsp[(2) - (2)].str);
        }
-#line 7041 "util/configparser.c"
     break;
 
-  case 593:
-#line 3135 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str)));
+  case 595:
+#line 3148 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_ip);
-               cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_ip = (yyvsp[(2) - (2)].str);
        }
-#line 7051 "util/configparser.c"
     break;
 
-  case 594:
-#line 3142 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 596:
+#line 3155 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7063 "util/configparser.c"
     break;
 
-  case 595:
-#line 3151 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str)));
+  case 597:
+#line 3164 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_tls_server_name);
-               cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[(2) - (2)].str);
        }
-#line 7073 "util/configparser.c"
     break;
 
-  case 596:
-#line 3158 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
+  case 598:
+#line 3171 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_tls_cert_bundle);
-               cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[(2) - (2)].str);
        }
-#line 7083 "util/configparser.c"
     break;
 
-  case 597:
-#line 3165 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str)));
+  case 599:
+#line 3178 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_tls_client_key_file);
-               cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[(2) - (2)].str);
        }
-#line 7093 "util/configparser.c"
     break;
 
-  case 598:
-#line 3172 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str)));
+  case 600:
+#line 3185 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_tls_client_cert_file);
-               cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[(2) - (2)].str);
        }
-#line 7103 "util/configparser.c"
     break;
 
-  case 599:
-#line 3179 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 601:
+#line 3192 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7115 "util/configparser.c"
     break;
 
-  case 600:
-#line 3188 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 602:
+#line 3201 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7127 "util/configparser.c"
     break;
 
-  case 601:
-#line 3197 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
+  case 603:
+#line 3210 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_identity);
-               cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_identity = (yyvsp[(2) - (2)].str);
        }
-#line 7137 "util/configparser.c"
     break;
 
-  case 602:
-#line 3204 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
+  case 604:
+#line 3217 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_version);
-               cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
+               cfg_parser->cfg->dnstap_version = (yyvsp[(2) - (2)].str);
        }
-#line 7147 "util/configparser.c"
     break;
 
-  case 603:
-#line 3211 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 605:
+#line 3224 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_log_resolver_query_messages =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7160 "util/configparser.c"
     break;
 
-  case 604:
-#line 3221 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 606:
+#line 3234 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_log_resolver_response_messages =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7173 "util/configparser.c"
     break;
 
-  case 605:
-#line 3231 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 607:
+#line 3244 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_log_client_query_messages =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7186 "util/configparser.c"
     break;
 
-  case 606:
-#line 3241 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 608:
+#line 3254 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_log_client_response_messages =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7199 "util/configparser.c"
     break;
 
-  case 607:
-#line 3251 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 609:
+#line 3264 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7212 "util/configparser.c"
     break;
 
-  case 608:
-#line 3261 "./util/configparser.y"
-        {
-               OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 610:
+#line 3274 "./util/configparser.y"
+    {
+               OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7225 "util/configparser.c"
     break;
 
-  case 609:
-#line 3271 "./util/configparser.y"
-        {
+  case 611:
+#line 3284 "./util/configparser.y"
+    {
                OUTYY(("\nP(python:)\n"));
        }
-#line 7233 "util/configparser.c"
     break;
 
-  case 613:
-#line 3280 "./util/configparser.y"
-        {
-               OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
+  case 615:
+#line 3293 "./util/configparser.y"
+    {
+               OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 7243 "util/configparser.c"
     break;
 
-  case 614:
-#line 3286 "./util/configparser.y"
-        
+  case 616:
+#line 3299 "./util/configparser.y"
+    { 
                OUTYY(("\nP(dynlib:)\n")); 
        }
-#line 7251 "util/configparser.c"
     break;
 
-  case 618:
-#line 3295 "./util/configparser.y"
-        {
-               OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
+  case 620:
+#line 3308 "./util/configparser.y"
+    {
+               OUTYY(("P(dynlib-file:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[(2) - (2)].str)))
                        yyerror("out of memory");
        }
-#line 7261 "util/configparser.c"
     break;
 
-  case 619:
-#line 3301 "./util/configparser.y"
-        {
-               OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
-               if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 621:
+#line 3314 "./util/configparser.y"
+    {
+               OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[(2) - (2)].str)));
+               if (strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->disable_dnssec_lame_check =
-                       (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+                       (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7274 "util/configparser.c"
     break;
 
-  case 620:
-#line 3311 "./util/configparser.y"
-        {
-               OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
+  case 622:
+#line 3324 "./util/configparser.y"
+    {
+               OUTYY(("P(server_log_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->log_identity);
-               cfg_parser->cfg->log_identity = (yyvsp[0].str);
+               cfg_parser->cfg->log_identity = (yyvsp[(2) - (2)].str);
        }
-#line 7284 "util/configparser.c"
     break;
 
-  case 621:
-#line 3318 "./util/configparser.y"
-        {
-               OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               validate_respip_action((yyvsp[0].str));
+  case 623:
+#line 3331 "./util/configparser.y"
+    {
+               OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               validate_respip_action((yyvsp[(3) - (3)].str));
                if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions,
-                       (yyvsp[-1].str), (yyvsp[0].str)))
+                       (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                        fatal_exit("out of memory adding response-ip");
        }
-#line 7296 "util/configparser.c"
     break;
 
-  case 622:
-#line 3327 "./util/configparser.y"
-        {
-               OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
+  case 624:
+#line 3340 "./util/configparser.y"
+    {
+               OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[(2) - (3)].str)));
                if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
-                       (yyvsp[-1].str), (yyvsp[0].str)))
+                       (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                        fatal_exit("out of memory adding response-ip-data");
        }
-#line 7307 "util/configparser.c"
     break;
 
-  case 623:
-#line 3335 "./util/configparser.y"
-        {
+  case 625:
+#line 3348 "./util/configparser.y"
+    {
                OUTYY(("\nP(dnscrypt:)\n"));
        }
-#line 7315 "util/configparser.c"
     break;
 
-  case 636:
-#line 3351 "./util/configparser.y"
-        {
-               OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+  case 638:
+#line 3364 "./util/configparser.y"
+    {
+               OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7327 "util/configparser.c"
     break;
 
-  case 637:
-#line 3361 "./util/configparser.y"
-        {
-               OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+  case 639:
+#line 3374 "./util/configparser.y"
+    {
+               OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("port number expected");
-               else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
-               free((yyvsp[0].str));
+               else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[(2) - (2)].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7339 "util/configparser.c"
     break;
 
-  case 638:
-#line 3370 "./util/configparser.y"
-        {
-               OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
+  case 640:
+#line 3383 "./util/configparser.y"
+    {
+               OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnscrypt_provider);
-               cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
+               cfg_parser->cfg->dnscrypt_provider = (yyvsp[(2) - (2)].str);
        }
-#line 7349 "util/configparser.c"
     break;
 
-  case 639:
-#line 3377 "./util/configparser.y"
-        {
-               OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
-               if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
-                       log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
+  case 641:
+#line 3390 "./util/configparser.y"
+    {
+               OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[(2) - (2)].str)))
+                       log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[(2) - (2)].str));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding dnscrypt-provider-cert");
        }
-#line 7361 "util/configparser.c"
     break;
 
-  case 640:
-#line 3386 "./util/configparser.y"
-        {
-               OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
+  case 642:
+#line 3399 "./util/configparser.y"
+    {
+               OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
        }
-#line 7371 "util/configparser.c"
     break;
 
-  case 641:
-#line 3393 "./util/configparser.y"
-        {
-               OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
-               if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
-                       log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
+  case 643:
+#line 3406 "./util/configparser.y"
+    {
+               OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[(2) - (2)].str)))
+                       log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[(2) - (2)].str));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[(2) - (2)].str)))
                        fatal_exit("out of memory adding dnscrypt-secret-key");
        }
-#line 7383 "util/configparser.c"
     break;
 
-  case 642:
-#line 3402 "./util/configparser.y"
-  {
-       OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
-       if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
+  case 644:
+#line 3415 "./util/configparser.y"
+    {
+       OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
+       if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
                yyerror("memory size expected");
-       free((yyvsp[0].str));
+       free((yyvsp[(2) - (2)].str));
   }
-#line 7394 "util/configparser.c"
     break;
 
-  case 643:
-#line 3410 "./util/configparser.y"
-  {
-       OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
-       if(atoi((yyvsp[0].str)) == 0) {
+  case 645:
+#line 3423 "./util/configparser.y"
+    {
+       OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+       if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                yyerror("number expected");
        } else {
-               cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str));
+               cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[(2) - (2)].str));
                if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
                        yyerror("must be a power of 2");
        }
-       free((yyvsp[0].str));
+       free((yyvsp[(2) - (2)].str));
   }
-#line 7410 "util/configparser.c"
     break;
 
-  case 644:
-#line 3423 "./util/configparser.y"
-  {
-       OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
-       if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
+  case 646:
+#line 3436 "./util/configparser.y"
+    {
+       OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
+       if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
                yyerror("memory size expected");
-       free((yyvsp[0].str));
+       free((yyvsp[(2) - (2)].str));
   }
-#line 7421 "util/configparser.c"
     break;
 
-  case 645:
-#line 3431 "./util/configparser.y"
-  {
-       OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
-       if(atoi((yyvsp[0].str)) == 0) {
+  case 647:
+#line 3444 "./util/configparser.y"
+    {
+       OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
+       if(atoi((yyvsp[(2) - (2)].str)) == 0) {
                yyerror("number expected");
        } else {
-               cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str));
+               cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[(2) - (2)].str));
                if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
                        yyerror("must be a power of 2");
        }
-       free((yyvsp[0].str));
+       free((yyvsp[(2) - (2)].str));
   }
-#line 7437 "util/configparser.c"
     break;
 
-  case 646:
-#line 3444 "./util/configparser.y"
-        {
+  case 648:
+#line 3457 "./util/configparser.y"
+    {
                OUTYY(("\nP(cachedb:)\n"));
        }
-#line 7445 "util/configparser.c"
     break;
 
-  case 655:
-#line 3455 "./util/configparser.y"
-        {
+  case 657:
+#line 3468 "./util/configparser.y"
+    {
        #ifdef USE_CACHEDB
-               OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
+               OUTYY(("P(backend:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->cachedb_backend);
-               cfg_parser->cfg->cachedb_backend = (yyvsp[0].str);
+               cfg_parser->cfg->cachedb_backend = (yyvsp[(2) - (2)].str);
        #else
                OUTYY(("P(Compiled without cachedb, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 7460 "util/configparser.c"
     break;
 
-  case 656:
-#line 3467 "./util/configparser.y"
-        {
+  case 658:
+#line 3480 "./util/configparser.y"
+    {
        #ifdef USE_CACHEDB
-               OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
+               OUTYY(("P(secret-seed:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->cachedb_secret);
-               cfg_parser->cfg->cachedb_secret = (yyvsp[0].str);
+               cfg_parser->cfg->cachedb_secret = (yyvsp[(2) - (2)].str);
        #else
                OUTYY(("P(Compiled without cachedb, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 7475 "util/configparser.c"
     break;
 
-  case 657:
-#line 3479 "./util/configparser.y"
-        {
+  case 659:
+#line 3492 "./util/configparser.y"
+    {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
-               OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
+               OUTYY(("P(redis_server_host:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->redis_server_host);
-               cfg_parser->cfg->redis_server_host = (yyvsp[0].str);
+               cfg_parser->cfg->redis_server_host = (yyvsp[(2) - (2)].str);
        #else
                OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        #endif
        }
-#line 7490 "util/configparser.c"
     break;
 
-  case 658:
-#line 3491 "./util/configparser.y"
-        {
+  case 660:
+#line 3504 "./util/configparser.y"
+    {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
                int port;
-               OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str)));
-               port = atoi((yyvsp[0].str));
+               OUTYY(("P(redis_server_port:%s)\n", (yyvsp[(2) - (2)].str)));
+               port = atoi((yyvsp[(2) - (2)].str));
                if(port == 0 || port < 0 || port > 65535)
                        yyerror("valid redis server port number expected");
                else cfg_parser->cfg->redis_server_port = port;
        #else
                OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7508 "util/configparser.c"
     break;
 
-  case 659:
-#line 3506 "./util/configparser.y"
-        {
+  case 661:
+#line 3519 "./util/configparser.y"
+    {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
-               OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
-               if(atoi((yyvsp[0].str)) == 0)
+               OUTYY(("P(redis_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(atoi((yyvsp[(2) - (2)].str)) == 0)
                        yyerror("redis timeout value expected");
-               else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str));
+               else cfg_parser->cfg->redis_timeout = atoi((yyvsp[(2) - (2)].str));
        #else
                OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7524 "util/configparser.c"
     break;
 
-  case 660:
-#line 3519 "./util/configparser.y"
-        {
+  case 662:
+#line 3532 "./util/configparser.y"
+    {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
-               OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str)));
-               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+               OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[(2) - (2)].str)));
+               if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
                        yyerror("expected yes or no.");
-               else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0);
+               else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
        #else
                OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
        #endif
-               free((yyvsp[0].str));
+               free((yyvsp[(2) - (2)].str));
        }
-#line 7540 "util/configparser.c"
     break;
 
-  case 661:
-#line 3532 "./util/configparser.y"
-        {
-               OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
-               if (atoi((yyvsp[0].str)) < 0)
+  case 663:
+#line 3545 "./util/configparser.y"
+    {
+               OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
+               if (atoi((yyvsp[(3) - (3)].str)) < 0)
                        yyerror("positive number expected");
                else {
-                       if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str)))
+                       if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
                                fatal_exit("out of memory adding tcp connection limit");
                }
        }
-#line 7554 "util/configparser.c"
     break;
 
-  case 662:
-#line 3543 "./util/configparser.y"
-                {
+  case 664:
+#line 3556 "./util/configparser.y"
+    {
                        OUTYY(("\nP(ipset:)\n"));
                }
-#line 7562 "util/configparser.c"
     break;
 
-  case 667:
-#line 3552 "./util/configparser.y"
-                {
+  case 669:
+#line 3565 "./util/configparser.y"
+    {
                #ifdef USE_IPSET
-                       OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str)));
+                       OUTYY(("P(name-v4:%s)\n", (yyvsp[(2) - (2)].str)));
                        if(cfg_parser->cfg->ipset_name_v4)
                                yyerror("ipset name v4 override, there must be one "
                                        "name for ip v4");
                        free(cfg_parser->cfg->ipset_name_v4);
-                       cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str);
+                       cfg_parser->cfg->ipset_name_v4 = (yyvsp[(2) - (2)].str);
                #else
                        OUTYY(("P(Compiled without ipset, ignoring)\n"));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (2)].str));
                #endif
                }
-#line 7580 "util/configparser.c"
     break;
 
-  case 668:
-#line 3567 "./util/configparser.y"
-        {
+  case 670:
+#line 3580 "./util/configparser.y"
+    {
                #ifdef USE_IPSET
-                       OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str)));
+                       OUTYY(("P(name-v6:%s)\n", (yyvsp[(2) - (2)].str)));
                        if(cfg_parser->cfg->ipset_name_v6)
                                yyerror("ipset name v6 override, there must be one "
                                        "name for ip v6");
                        free(cfg_parser->cfg->ipset_name_v6);
-                       cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str);
+                       cfg_parser->cfg->ipset_name_v6 = (yyvsp[(2) - (2)].str);
                #else
                        OUTYY(("P(Compiled without ipset, ignoring)\n"));
-                       free((yyvsp[0].str));
+                       free((yyvsp[(2) - (2)].str));
                #endif
                }
-#line 7598 "util/configparser.c"
     break;
 
 
-#line 7602 "util/configparser.c"
-
+/* Line 1267 of yacc.c.  */
+#line 7071 "util/configparser.c"
       default: break;
     }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
   YYPOPSTACK (yylen);
   yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
-  /* Now 'shift' the result of the reduction.  Determine what state
+
+  /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
-  {
-    const int yylhs = yyr1[yyn] - YYNTOKENS;
-    const int yyi = yypgoto[yylhs] + *yyssp;
-    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
-               ? yytable[yyi]
-               : yydefgoto[yylhs]);
-  }
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
 
-/*--------------------------------------.
-| yyerrlab -- here on detecting error |
-`--------------------------------------*/
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
 yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
       ++yynerrs;
+#if ! YYERROR_VERBOSE
       yyerror (YY_("syntax error"));
+#else
+      {
+       YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+       if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+         {
+           YYSIZE_T yyalloc = 2 * yysize;
+           if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+             yyalloc = YYSTACK_ALLOC_MAXIMUM;
+           if (yymsg != yymsgbuf)
+             YYSTACK_FREE (yymsg);
+           yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+           if (yymsg)
+             yymsg_alloc = yyalloc;
+           else
+             {
+               yymsg = yymsgbuf;
+               yymsg_alloc = sizeof yymsgbuf;
+             }
+         }
+
+       if (0 < yysize && yysize <= yymsg_alloc)
+         {
+           (void) yysyntax_error (yymsg, yystate, yychar);
+           yyerror (yymsg);
+         }
+       else
+         {
+           yyerror (YY_("syntax error"));
+           if (yysize != 0)
+             goto yyexhaustedlab;
+         }
+      }
+#endif
     }
 
+
+
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
+      /* If just tried and failed to reuse look-ahead token after an
+        error, discard it.  */
 
       if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
+       {
+         /* Return failure if at end of input.  */
+         if (yychar == YYEOF)
+           YYABORT;
+       }
       else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval);
-          yychar = YYEMPTY;
-        }
+       {
+         yydestruct ("Error: discarding",
+                     yytoken, &yylval);
+         yychar = YYEMPTY;
+       }
     }
 
-  /* Else will try to reuse lookahead token after shifting the error
+  /* Else will try to reuse look-ahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -7676,12 +7169,14 @@ yyerrlab:
 | yyerrorlab -- error raised explicitly by YYERROR.  |
 `---------------------------------------------------*/
 yyerrorlab:
-  /* Pacify compilers when the user code never invokes YYERROR and the
-     label yyerrorlab therefore never appears in user code.  */
-  if (0)
-    YYERROR;
 
-  /* Do not reclaim the symbols of the rule whose action triggered
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  /* Do not reclaim the symbols of the rule which action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
   yylen = 0;
@@ -7694,42 +7189,42 @@ yyerrorlab:
 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
-  /* Pop stack until we find a state that shifts the error token.  */
   for (;;)
     {
       yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYSYMBOL_YYerror;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-        YYABORT;
+       YYABORT;
 
 
       yydestruct ("Error: popping",
-                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
+                 yystos[yystate], yyvsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
   *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
   /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
 
   yystate = yyn;
   goto yynewstate;
@@ -7742,7 +7237,6 @@ yyacceptlab:
   yyresult = 0;
   goto yyreturn;
 
-
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
@@ -7750,8 +7244,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-
-#if !defined yyoverflow
+#ifndef yyoverflow
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -7761,38 +7254,34 @@ yyexhaustedlab:
   /* Fall through.  */
 #endif
 
-
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result.  |
-`-----------------------------------------------------*/
 yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval);
-    }
-  /* Do not reclaim the symbols of the rule whose action triggered
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+                yytoken, &yylval);
+  /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
   YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
+                 yystos[*yyssp], yyvsp);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
 #endif
-
-  return yyresult;
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
 }
 
-#line 3581 "./util/configparser.y"
+
+#line 3594 "./util/configparser.y"
 
 
 /* parse helper routines could be here */
@@ -7814,3 +7303,4 @@ validate_respip_action(const char* action)
 }
 
 
+
index 54a862af30375b973b57b759bb61b56f8242bef0..551da2338a9f669993595f718bfbffceb6f2324d 100644 (file)
@@ -1,14 +1,14 @@
-/* A Bison parser, made by GNU Bison 3.6.4.  */
+/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Bison interface for Yacc-like parsers in C
+/* Skeleton interface for Bison's Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
-   Inc.
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
-   This program is free software: you can redistribute it and/or modify
+   This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,7 +16,9 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
-   especially those whose name start with YY_ or yy_.  They are
-   private implementation details that can be changed or removed.  */
-
-#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
-# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
-/* Token kinds.  */
+/* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-  enum yytokentype
-  {
-    YYEMPTY = -2,
-    YYEOF = 0,                     /* "end of file"  */
-    YYerror = 256,                 /* error  */
-    YYUNDEF = 257,                 /* "invalid token"  */
-    SPACE = 258,                   /* SPACE  */
-    LETTER = 259,                  /* LETTER  */
-    NEWLINE = 260,                 /* NEWLINE  */
-    COMMENT = 261,                 /* COMMENT  */
-    COLON = 262,                   /* COLON  */
-    ANY = 263,                     /* ANY  */
-    ZONESTR = 264,                 /* ZONESTR  */
-    STRING_ARG = 265,              /* STRING_ARG  */
-    VAR_FORCE_TOPLEVEL = 266,      /* VAR_FORCE_TOPLEVEL  */
-    VAR_SERVER = 267,              /* VAR_SERVER  */
-    VAR_VERBOSITY = 268,           /* VAR_VERBOSITY  */
-    VAR_NUM_THREADS = 269,         /* VAR_NUM_THREADS  */
-    VAR_PORT = 270,                /* VAR_PORT  */
-    VAR_OUTGOING_RANGE = 271,      /* VAR_OUTGOING_RANGE  */
-    VAR_INTERFACE = 272,           /* VAR_INTERFACE  */
-    VAR_PREFER_IP4 = 273,          /* VAR_PREFER_IP4  */
-    VAR_DO_IP4 = 274,              /* VAR_DO_IP4  */
-    VAR_DO_IP6 = 275,              /* VAR_DO_IP6  */
-    VAR_PREFER_IP6 = 276,          /* VAR_PREFER_IP6  */
-    VAR_DO_UDP = 277,              /* VAR_DO_UDP  */
-    VAR_DO_TCP = 278,              /* VAR_DO_TCP  */
-    VAR_TCP_MSS = 279,             /* VAR_TCP_MSS  */
-    VAR_OUTGOING_TCP_MSS = 280,    /* VAR_OUTGOING_TCP_MSS  */
-    VAR_TCP_IDLE_TIMEOUT = 281,    /* VAR_TCP_IDLE_TIMEOUT  */
-    VAR_EDNS_TCP_KEEPALIVE = 282,  /* VAR_EDNS_TCP_KEEPALIVE  */
-    VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT  */
-    VAR_CHROOT = 284,              /* VAR_CHROOT  */
-    VAR_USERNAME = 285,            /* VAR_USERNAME  */
-    VAR_DIRECTORY = 286,           /* VAR_DIRECTORY  */
-    VAR_LOGFILE = 287,             /* VAR_LOGFILE  */
-    VAR_PIDFILE = 288,             /* VAR_PIDFILE  */
-    VAR_MSG_CACHE_SIZE = 289,      /* VAR_MSG_CACHE_SIZE  */
-    VAR_MSG_CACHE_SLABS = 290,     /* VAR_MSG_CACHE_SLABS  */
-    VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD  */
-    VAR_RRSET_CACHE_SIZE = 292,    /* VAR_RRSET_CACHE_SIZE  */
-    VAR_RRSET_CACHE_SLABS = 293,   /* VAR_RRSET_CACHE_SLABS  */
-    VAR_OUTGOING_NUM_TCP = 294,    /* VAR_OUTGOING_NUM_TCP  */
-    VAR_INFRA_HOST_TTL = 295,      /* VAR_INFRA_HOST_TTL  */
-    VAR_INFRA_LAME_TTL = 296,      /* VAR_INFRA_LAME_TTL  */
-    VAR_INFRA_CACHE_SLABS = 297,   /* VAR_INFRA_CACHE_SLABS  */
-    VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS  */
-    VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE  */
-    VAR_NAME = 300,                /* VAR_NAME  */
-    VAR_STUB_ZONE = 301,           /* VAR_STUB_ZONE  */
-    VAR_STUB_HOST = 302,           /* VAR_STUB_HOST  */
-    VAR_STUB_ADDR = 303,           /* VAR_STUB_ADDR  */
-    VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY  */
-    VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE  */
-    VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES  */
-    VAR_FORWARD_ZONE = 307,        /* VAR_FORWARD_ZONE  */
-    VAR_FORWARD_HOST = 308,        /* VAR_FORWARD_HOST  */
-    VAR_FORWARD_ADDR = 309,        /* VAR_FORWARD_ADDR  */
-    VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS  */
-    VAR_HIDE_IDENTITY = 311,       /* VAR_HIDE_IDENTITY  */
-    VAR_HIDE_VERSION = 312,        /* VAR_HIDE_VERSION  */
-    VAR_IDENTITY = 313,            /* VAR_IDENTITY  */
-    VAR_VERSION = 314,             /* VAR_VERSION  */
-    VAR_HARDEN_GLUE = 315,         /* VAR_HARDEN_GLUE  */
-    VAR_MODULE_CONF = 316,         /* VAR_MODULE_CONF  */
-    VAR_TRUST_ANCHOR_FILE = 317,   /* VAR_TRUST_ANCHOR_FILE  */
-    VAR_TRUST_ANCHOR = 318,        /* VAR_TRUST_ANCHOR  */
-    VAR_VAL_OVERRIDE_DATE = 319,   /* VAR_VAL_OVERRIDE_DATE  */
-    VAR_BOGUS_TTL = 320,           /* VAR_BOGUS_TTL  */
-    VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL  */
-    VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE  */
-    VAR_INCOMING_NUM_TCP = 323,    /* VAR_INCOMING_NUM_TCP  */
-    VAR_MSG_BUFFER_SIZE = 324,     /* VAR_MSG_BUFFER_SIZE  */
-    VAR_KEY_CACHE_SIZE = 325,      /* VAR_KEY_CACHE_SIZE  */
-    VAR_KEY_CACHE_SLABS = 326,     /* VAR_KEY_CACHE_SLABS  */
-    VAR_TRUSTED_KEYS_FILE = 327,   /* VAR_TRUSTED_KEYS_FILE  */
-    VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS  */
-    VAR_USE_SYSLOG = 329,          /* VAR_USE_SYSLOG  */
-    VAR_OUTGOING_INTERFACE = 330,  /* VAR_OUTGOING_INTERFACE  */
-    VAR_ROOT_HINTS = 331,          /* VAR_ROOT_HINTS  */
-    VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST  */
-    VAR_CACHE_MAX_TTL = 333,       /* VAR_CACHE_MAX_TTL  */
-    VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED  */
-    VAR_ACCESS_CONTROL = 335,      /* VAR_ACCESS_CONTROL  */
-    VAR_LOCAL_ZONE = 336,          /* VAR_LOCAL_ZONE  */
-    VAR_LOCAL_DATA = 337,          /* VAR_LOCAL_DATA  */
-    VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC  */
-    VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL  */
-    VAR_DO_DAEMONIZE = 340,        /* VAR_DO_DAEMONIZE  */
-    VAR_USE_CAPS_FOR_ID = 341,     /* VAR_USE_CAPS_FOR_ID  */
-    VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE  */
-    VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT  */
-    VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID  */
-    VAR_DLV_ANCHOR_FILE = 345,     /* VAR_DLV_ANCHOR_FILE  */
-    VAR_DLV_ANCHOR = 346,          /* VAR_DLV_ANCHOR  */
-    VAR_NEG_CACHE_SIZE = 347,      /* VAR_NEG_CACHE_SIZE  */
-    VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH  */
-    VAR_PRIVATE_ADDRESS = 349,     /* VAR_PRIVATE_ADDRESS  */
-    VAR_PRIVATE_DOMAIN = 350,      /* VAR_PRIVATE_DOMAIN  */
-    VAR_REMOTE_CONTROL = 351,      /* VAR_REMOTE_CONTROL  */
-    VAR_CONTROL_ENABLE = 352,      /* VAR_CONTROL_ENABLE  */
-    VAR_CONTROL_INTERFACE = 353,   /* VAR_CONTROL_INTERFACE  */
-    VAR_CONTROL_PORT = 354,        /* VAR_CONTROL_PORT  */
-    VAR_SERVER_KEY_FILE = 355,     /* VAR_SERVER_KEY_FILE  */
-    VAR_SERVER_CERT_FILE = 356,    /* VAR_SERVER_CERT_FILE  */
-    VAR_CONTROL_KEY_FILE = 357,    /* VAR_CONTROL_KEY_FILE  */
-    VAR_CONTROL_CERT_FILE = 358,   /* VAR_CONTROL_CERT_FILE  */
-    VAR_CONTROL_USE_CERT = 359,    /* VAR_CONTROL_USE_CERT  */
-    VAR_TCP_REUSE_TIMEOUT = 360,   /* VAR_TCP_REUSE_TIMEOUT  */
-    VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES  */
-    VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS  */
-    VAR_LOCAL_DATA_PTR = 363,      /* VAR_LOCAL_DATA_PTR  */
-    VAR_JOSTLE_TIMEOUT = 364,      /* VAR_JOSTLE_TIMEOUT  */
-    VAR_STUB_PRIME = 365,          /* VAR_STUB_PRIME  */
-    VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD  */
-    VAR_LOG_TIME_ASCII = 367,      /* VAR_LOG_TIME_ASCII  */
-    VAR_DOMAIN_INSECURE = 368,     /* VAR_DOMAIN_INSECURE  */
-    VAR_PYTHON = 369,              /* VAR_PYTHON  */
-    VAR_PYTHON_SCRIPT = 370,       /* VAR_PYTHON_SCRIPT  */
-    VAR_VAL_SIG_SKEW_MIN = 371,    /* VAR_VAL_SIG_SKEW_MIN  */
-    VAR_VAL_SIG_SKEW_MAX = 372,    /* VAR_VAL_SIG_SKEW_MAX  */
-    VAR_VAL_MAX_RESTART = 373,     /* VAR_VAL_MAX_RESTART  */
-    VAR_CACHE_MIN_TTL = 374,       /* VAR_CACHE_MIN_TTL  */
-    VAR_VAL_LOG_LEVEL = 375,       /* VAR_VAL_LOG_LEVEL  */
-    VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE  */
-    VAR_KEEP_MISSING = 377,        /* VAR_KEEP_MISSING  */
-    VAR_ADD_HOLDDOWN = 378,        /* VAR_ADD_HOLDDOWN  */
-    VAR_DEL_HOLDDOWN = 379,        /* VAR_DEL_HOLDDOWN  */
-    VAR_SO_RCVBUF = 380,           /* VAR_SO_RCVBUF  */
-    VAR_EDNS_BUFFER_SIZE = 381,    /* VAR_EDNS_BUFFER_SIZE  */
-    VAR_PREFETCH = 382,            /* VAR_PREFETCH  */
-    VAR_PREFETCH_KEY = 383,        /* VAR_PREFETCH_KEY  */
-    VAR_SO_SNDBUF = 384,           /* VAR_SO_SNDBUF  */
-    VAR_SO_REUSEPORT = 385,        /* VAR_SO_REUSEPORT  */
-    VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN  */
-    VAR_IGNORE_CD_FLAG = 387,      /* VAR_IGNORE_CD_FLAG  */
-    VAR_LOG_QUERIES = 388,         /* VAR_LOG_QUERIES  */
-    VAR_LOG_REPLIES = 389,         /* VAR_LOG_REPLIES  */
-    VAR_LOG_LOCAL_ACTIONS = 390,   /* VAR_LOG_LOCAL_ACTIONS  */
-    VAR_TCP_UPSTREAM = 391,        /* VAR_TCP_UPSTREAM  */
-    VAR_SSL_UPSTREAM = 392,        /* VAR_SSL_UPSTREAM  */
-    VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT  */
-    VAR_SSL_SERVICE_KEY = 394,     /* VAR_SSL_SERVICE_KEY  */
-    VAR_SSL_SERVICE_PEM = 395,     /* VAR_SSL_SERVICE_PEM  */
-    VAR_SSL_PORT = 396,            /* VAR_SSL_PORT  */
-    VAR_FORWARD_FIRST = 397,       /* VAR_FORWARD_FIRST  */
-    VAR_STUB_SSL_UPSTREAM = 398,   /* VAR_STUB_SSL_UPSTREAM  */
-    VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM  */
-    VAR_TLS_CERT_BUNDLE = 400,     /* VAR_TLS_CERT_BUNDLE  */
-    VAR_STUB_TCP_UPSTREAM = 401,   /* VAR_STUB_TCP_UPSTREAM  */
-    VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM  */
-    VAR_HTTPS_PORT = 403,          /* VAR_HTTPS_PORT  */
-    VAR_HTTP_ENDPOINT = 404,       /* VAR_HTTP_ENDPOINT  */
-    VAR_HTTP_MAX_STREAMS = 405,    /* VAR_HTTP_MAX_STREAMS  */
-    VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE  */
-    VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE  */
-    VAR_HTTP_NODELAY = 408,        /* VAR_HTTP_NODELAY  */
-    VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM  */
-    VAR_STUB_FIRST = 410,          /* VAR_STUB_FIRST  */
-    VAR_MINIMAL_RESPONSES = 411,   /* VAR_MINIMAL_RESPONSES  */
-    VAR_RRSET_ROUNDROBIN = 412,    /* VAR_RRSET_ROUNDROBIN  */
-    VAR_MAX_UDP_SIZE = 413,        /* VAR_MAX_UDP_SIZE  */
-    VAR_DELAY_CLOSE = 414,         /* VAR_DELAY_CLOSE  */
-    VAR_UDP_CONNECT = 415,         /* VAR_UDP_CONNECT  */
-    VAR_UNBLOCK_LAN_ZONES = 416,   /* VAR_UNBLOCK_LAN_ZONES  */
-    VAR_INSECURE_LAN_ZONES = 417,  /* VAR_INSECURE_LAN_ZONES  */
-    VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT  */
-    VAR_INFRA_KEEP_PROBING = 419,  /* VAR_INFRA_KEEP_PROBING  */
-    VAR_DNS64_PREFIX = 420,        /* VAR_DNS64_PREFIX  */
-    VAR_DNS64_SYNTHALL = 421,      /* VAR_DNS64_SYNTHALL  */
-    VAR_DNS64_IGNORE_AAAA = 422,   /* VAR_DNS64_IGNORE_AAAA  */
-    VAR_DNSTAP = 423,              /* VAR_DNSTAP  */
-    VAR_DNSTAP_ENABLE = 424,       /* VAR_DNSTAP_ENABLE  */
-    VAR_DNSTAP_SOCKET_PATH = 425,  /* VAR_DNSTAP_SOCKET_PATH  */
-    VAR_DNSTAP_IP = 426,           /* VAR_DNSTAP_IP  */
-    VAR_DNSTAP_TLS = 427,          /* VAR_DNSTAP_TLS  */
-    VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME  */
-    VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE  */
-    VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE  */
-    VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE  */
-    VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY  */
-    VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION  */
-    VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL  */
-    VAR_DNSTAP_IDENTITY = 435,     /* VAR_DNSTAP_IDENTITY  */
-    VAR_DNSTAP_VERSION = 436,      /* VAR_DNSTAP_VERSION  */
-    VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES  */
-    VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES  */
-    VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES  */
-    VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES  */
-    VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES  */
-    VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES  */
-    VAR_RESPONSE_IP_TAG = 443,     /* VAR_RESPONSE_IP_TAG  */
-    VAR_RESPONSE_IP = 444,         /* VAR_RESPONSE_IP  */
-    VAR_RESPONSE_IP_DATA = 445,    /* VAR_RESPONSE_IP_DATA  */
-    VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE  */
-    VAR_IP_TRANSPARENT = 447,      /* VAR_IP_TRANSPARENT  */
-    VAR_IP_DSCP = 448,             /* VAR_IP_DSCP  */
-    VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK  */
-    VAR_IP_RATELIMIT = 450,        /* VAR_IP_RATELIMIT  */
-    VAR_IP_RATELIMIT_SLABS = 451,  /* VAR_IP_RATELIMIT_SLABS  */
-    VAR_IP_RATELIMIT_SIZE = 452,   /* VAR_IP_RATELIMIT_SIZE  */
-    VAR_RATELIMIT = 453,           /* VAR_RATELIMIT  */
-    VAR_RATELIMIT_SLABS = 454,     /* VAR_RATELIMIT_SLABS  */
-    VAR_RATELIMIT_SIZE = 455,      /* VAR_RATELIMIT_SIZE  */
-    VAR_OUTBOUND_MSG_RETRY = 456,  /* VAR_OUTBOUND_MSG_RETRY  */
-    VAR_RATELIMIT_FOR_DOMAIN = 457, /* VAR_RATELIMIT_FOR_DOMAIN  */
-    VAR_RATELIMIT_BELOW_DOMAIN = 458, /* VAR_RATELIMIT_BELOW_DOMAIN  */
-    VAR_IP_RATELIMIT_FACTOR = 459, /* VAR_IP_RATELIMIT_FACTOR  */
-    VAR_RATELIMIT_FACTOR = 460,    /* VAR_RATELIMIT_FACTOR  */
-    VAR_SEND_CLIENT_SUBNET = 461,  /* VAR_SEND_CLIENT_SUBNET  */
-    VAR_CLIENT_SUBNET_ZONE = 462,  /* VAR_CLIENT_SUBNET_ZONE  */
-    VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD  */
-    VAR_CLIENT_SUBNET_OPCODE = 464, /* VAR_CLIENT_SUBNET_OPCODE  */
-    VAR_MAX_CLIENT_SUBNET_IPV4 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV4  */
-    VAR_MAX_CLIENT_SUBNET_IPV6 = 466, /* VAR_MAX_CLIENT_SUBNET_IPV6  */
-    VAR_MIN_CLIENT_SUBNET_IPV4 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV4  */
-    VAR_MIN_CLIENT_SUBNET_IPV6 = 468, /* VAR_MIN_CLIENT_SUBNET_IPV6  */
-    VAR_MAX_ECS_TREE_SIZE_IPV4 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV4  */
-    VAR_MAX_ECS_TREE_SIZE_IPV6 = 470, /* VAR_MAX_ECS_TREE_SIZE_IPV6  */
-    VAR_CAPS_WHITELIST = 471,      /* VAR_CAPS_WHITELIST  */
-    VAR_CACHE_MAX_NEGATIVE_TTL = 472, /* VAR_CACHE_MAX_NEGATIVE_TTL  */
-    VAR_PERMIT_SMALL_HOLDDOWN = 473, /* VAR_PERMIT_SMALL_HOLDDOWN  */
-    VAR_QNAME_MINIMISATION = 474,  /* VAR_QNAME_MINIMISATION  */
-    VAR_QNAME_MINIMISATION_STRICT = 475, /* VAR_QNAME_MINIMISATION_STRICT  */
-    VAR_IP_FREEBIND = 476,         /* VAR_IP_FREEBIND  */
-    VAR_DEFINE_TAG = 477,          /* VAR_DEFINE_TAG  */
-    VAR_LOCAL_ZONE_TAG = 478,      /* VAR_LOCAL_ZONE_TAG  */
-    VAR_ACCESS_CONTROL_TAG = 479,  /* VAR_ACCESS_CONTROL_TAG  */
-    VAR_LOCAL_ZONE_OVERRIDE = 480, /* VAR_LOCAL_ZONE_OVERRIDE  */
-    VAR_ACCESS_CONTROL_TAG_ACTION = 481, /* VAR_ACCESS_CONTROL_TAG_ACTION  */
-    VAR_ACCESS_CONTROL_TAG_DATA = 482, /* VAR_ACCESS_CONTROL_TAG_DATA  */
-    VAR_VIEW = 483,                /* VAR_VIEW  */
-    VAR_ACCESS_CONTROL_VIEW = 484, /* VAR_ACCESS_CONTROL_VIEW  */
-    VAR_VIEW_FIRST = 485,          /* VAR_VIEW_FIRST  */
-    VAR_SERVE_EXPIRED = 486,       /* VAR_SERVE_EXPIRED  */
-    VAR_SERVE_EXPIRED_TTL = 487,   /* VAR_SERVE_EXPIRED_TTL  */
-    VAR_SERVE_EXPIRED_TTL_RESET = 488, /* VAR_SERVE_EXPIRED_TTL_RESET  */
-    VAR_SERVE_EXPIRED_REPLY_TTL = 489, /* VAR_SERVE_EXPIRED_REPLY_TTL  */
-    VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT  */
-    VAR_SERVE_ORIGINAL_TTL = 491,  /* VAR_SERVE_ORIGINAL_TTL  */
-    VAR_FAKE_DSA = 492,            /* VAR_FAKE_DSA  */
-    VAR_FAKE_SHA1 = 493,           /* VAR_FAKE_SHA1  */
-    VAR_LOG_IDENTITY = 494,        /* VAR_LOG_IDENTITY  */
-    VAR_HIDE_TRUSTANCHOR = 495,    /* VAR_HIDE_TRUSTANCHOR  */
-    VAR_HIDE_HTTP_USER_AGENT = 496, /* VAR_HIDE_HTTP_USER_AGENT  */
-    VAR_HTTP_USER_AGENT = 497,     /* VAR_HTTP_USER_AGENT  */
-    VAR_TRUST_ANCHOR_SIGNALING = 498, /* VAR_TRUST_ANCHOR_SIGNALING  */
-    VAR_AGGRESSIVE_NSEC = 499,     /* VAR_AGGRESSIVE_NSEC  */
-    VAR_USE_SYSTEMD = 500,         /* VAR_USE_SYSTEMD  */
-    VAR_SHM_ENABLE = 501,          /* VAR_SHM_ENABLE  */
-    VAR_SHM_KEY = 502,             /* VAR_SHM_KEY  */
-    VAR_ROOT_KEY_SENTINEL = 503,   /* VAR_ROOT_KEY_SENTINEL  */
-    VAR_DNSCRYPT = 504,            /* VAR_DNSCRYPT  */
-    VAR_DNSCRYPT_ENABLE = 505,     /* VAR_DNSCRYPT_ENABLE  */
-    VAR_DNSCRYPT_PORT = 506,       /* VAR_DNSCRYPT_PORT  */
-    VAR_DNSCRYPT_PROVIDER = 507,   /* VAR_DNSCRYPT_PROVIDER  */
-    VAR_DNSCRYPT_SECRET_KEY = 508, /* VAR_DNSCRYPT_SECRET_KEY  */
-    VAR_DNSCRYPT_PROVIDER_CERT = 509, /* VAR_DNSCRYPT_PROVIDER_CERT  */
-    VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED  */
-    VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE  */
-    VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS  */
-    VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE  */
-    VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS  */
-    VAR_PAD_RESPONSES = 515,       /* VAR_PAD_RESPONSES  */
-    VAR_PAD_RESPONSES_BLOCK_SIZE = 516, /* VAR_PAD_RESPONSES_BLOCK_SIZE  */
-    VAR_PAD_QUERIES = 517,         /* VAR_PAD_QUERIES  */
-    VAR_PAD_QUERIES_BLOCK_SIZE = 518, /* VAR_PAD_QUERIES_BLOCK_SIZE  */
-    VAR_IPSECMOD_ENABLED = 519,    /* VAR_IPSECMOD_ENABLED  */
-    VAR_IPSECMOD_HOOK = 520,       /* VAR_IPSECMOD_HOOK  */
-    VAR_IPSECMOD_IGNORE_BOGUS = 521, /* VAR_IPSECMOD_IGNORE_BOGUS  */
-    VAR_IPSECMOD_MAX_TTL = 522,    /* VAR_IPSECMOD_MAX_TTL  */
-    VAR_IPSECMOD_WHITELIST = 523,  /* VAR_IPSECMOD_WHITELIST  */
-    VAR_IPSECMOD_STRICT = 524,     /* VAR_IPSECMOD_STRICT  */
-    VAR_CACHEDB = 525,             /* VAR_CACHEDB  */
-    VAR_CACHEDB_BACKEND = 526,     /* VAR_CACHEDB_BACKEND  */
-    VAR_CACHEDB_SECRETSEED = 527,  /* VAR_CACHEDB_SECRETSEED  */
-    VAR_CACHEDB_REDISHOST = 528,   /* VAR_CACHEDB_REDISHOST  */
-    VAR_CACHEDB_REDISPORT = 529,   /* VAR_CACHEDB_REDISPORT  */
-    VAR_CACHEDB_REDISTIMEOUT = 530, /* VAR_CACHEDB_REDISTIMEOUT  */
-    VAR_CACHEDB_REDISEXPIRERECORDS = 531, /* VAR_CACHEDB_REDISEXPIRERECORDS  */
-    VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM  */
-    VAR_FOR_UPSTREAM = 533,        /* VAR_FOR_UPSTREAM  */
-    VAR_AUTH_ZONE = 534,           /* VAR_AUTH_ZONE  */
-    VAR_ZONEFILE = 535,            /* VAR_ZONEFILE  */
-    VAR_MASTER = 536,              /* VAR_MASTER  */
-    VAR_URL = 537,                 /* VAR_URL  */
-    VAR_FOR_DOWNSTREAM = 538,      /* VAR_FOR_DOWNSTREAM  */
-    VAR_FALLBACK_ENABLED = 539,    /* VAR_FALLBACK_ENABLED  */
-    VAR_TLS_ADDITIONAL_PORT = 540, /* VAR_TLS_ADDITIONAL_PORT  */
-    VAR_LOW_RTT = 541,             /* VAR_LOW_RTT  */
-    VAR_LOW_RTT_PERMIL = 542,      /* VAR_LOW_RTT_PERMIL  */
-    VAR_FAST_SERVER_PERMIL = 543,  /* VAR_FAST_SERVER_PERMIL  */
-    VAR_FAST_SERVER_NUM = 544,     /* VAR_FAST_SERVER_NUM  */
-    VAR_ALLOW_NOTIFY = 545,        /* VAR_ALLOW_NOTIFY  */
-    VAR_TLS_WIN_CERT = 546,        /* VAR_TLS_WIN_CERT  */
-    VAR_TCP_CONNECTION_LIMIT = 547, /* VAR_TCP_CONNECTION_LIMIT  */
-    VAR_FORWARD_NO_CACHE = 548,    /* VAR_FORWARD_NO_CACHE  */
-    VAR_STUB_NO_CACHE = 549,       /* VAR_STUB_NO_CACHE  */
-    VAR_LOG_SERVFAIL = 550,        /* VAR_LOG_SERVFAIL  */
-    VAR_DENY_ANY = 551,            /* VAR_DENY_ANY  */
-    VAR_UNKNOWN_SERVER_TIME_LIMIT = 552, /* VAR_UNKNOWN_SERVER_TIME_LIMIT  */
-    VAR_LOG_TAG_QUERYREPLY = 553,  /* VAR_LOG_TAG_QUERYREPLY  */
-    VAR_STREAM_WAIT_SIZE = 554,    /* VAR_STREAM_WAIT_SIZE  */
-    VAR_TLS_CIPHERS = 555,         /* VAR_TLS_CIPHERS  */
-    VAR_TLS_CIPHERSUITES = 556,    /* VAR_TLS_CIPHERSUITES  */
-    VAR_TLS_USE_SNI = 557,         /* VAR_TLS_USE_SNI  */
-    VAR_IPSET = 558,               /* VAR_IPSET  */
-    VAR_IPSET_NAME_V4 = 559,       /* VAR_IPSET_NAME_V4  */
-    VAR_IPSET_NAME_V6 = 560,       /* VAR_IPSET_NAME_V6  */
-    VAR_TLS_SESSION_TICKET_KEYS = 561, /* VAR_TLS_SESSION_TICKET_KEYS  */
-    VAR_RPZ = 562,                 /* VAR_RPZ  */
-    VAR_TAGS = 563,                /* VAR_TAGS  */
-    VAR_RPZ_ACTION_OVERRIDE = 564, /* VAR_RPZ_ACTION_OVERRIDE  */
-    VAR_RPZ_CNAME_OVERRIDE = 565,  /* VAR_RPZ_CNAME_OVERRIDE  */
-    VAR_RPZ_LOG = 566,             /* VAR_RPZ_LOG  */
-    VAR_RPZ_LOG_NAME = 567,        /* VAR_RPZ_LOG_NAME  */
-    VAR_DYNLIB = 568,              /* VAR_DYNLIB  */
-    VAR_DYNLIB_FILE = 569,         /* VAR_DYNLIB_FILE  */
-    VAR_EDNS_CLIENT_STRING = 570,  /* VAR_EDNS_CLIENT_STRING  */
-    VAR_EDNS_CLIENT_STRING_OPCODE = 571, /* VAR_EDNS_CLIENT_STRING_OPCODE  */
-    VAR_NSID = 572,                /* VAR_NSID  */
-    VAR_ZONEMD_PERMISSIVE_MODE = 573, /* VAR_ZONEMD_PERMISSIVE_MODE  */
-    VAR_ZONEMD_CHECK = 574,        /* VAR_ZONEMD_CHECK  */
-    VAR_ZONEMD_REJECT_ABSENCE = 575 /* VAR_ZONEMD_REJECT_ABSENCE  */
-  };
-  typedef enum yytokentype yytoken_kind_t;
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     SPACE = 258,
+     LETTER = 259,
+     NEWLINE = 260,
+     COMMENT = 261,
+     COLON = 262,
+     ANY = 263,
+     ZONESTR = 264,
+     STRING_ARG = 265,
+     VAR_FORCE_TOPLEVEL = 266,
+     VAR_SERVER = 267,
+     VAR_VERBOSITY = 268,
+     VAR_NUM_THREADS = 269,
+     VAR_PORT = 270,
+     VAR_OUTGOING_RANGE = 271,
+     VAR_INTERFACE = 272,
+     VAR_PREFER_IP4 = 273,
+     VAR_DO_IP4 = 274,
+     VAR_DO_IP6 = 275,
+     VAR_PREFER_IP6 = 276,
+     VAR_DO_UDP = 277,
+     VAR_DO_TCP = 278,
+     VAR_TCP_MSS = 279,
+     VAR_OUTGOING_TCP_MSS = 280,
+     VAR_TCP_IDLE_TIMEOUT = 281,
+     VAR_EDNS_TCP_KEEPALIVE = 282,
+     VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283,
+     VAR_CHROOT = 284,
+     VAR_USERNAME = 285,
+     VAR_DIRECTORY = 286,
+     VAR_LOGFILE = 287,
+     VAR_PIDFILE = 288,
+     VAR_MSG_CACHE_SIZE = 289,
+     VAR_MSG_CACHE_SLABS = 290,
+     VAR_NUM_QUERIES_PER_THREAD = 291,
+     VAR_RRSET_CACHE_SIZE = 292,
+     VAR_RRSET_CACHE_SLABS = 293,
+     VAR_OUTGOING_NUM_TCP = 294,
+     VAR_INFRA_HOST_TTL = 295,
+     VAR_INFRA_LAME_TTL = 296,
+     VAR_INFRA_CACHE_SLABS = 297,
+     VAR_INFRA_CACHE_NUMHOSTS = 298,
+     VAR_INFRA_CACHE_LAME_SIZE = 299,
+     VAR_NAME = 300,
+     VAR_STUB_ZONE = 301,
+     VAR_STUB_HOST = 302,
+     VAR_STUB_ADDR = 303,
+     VAR_TARGET_FETCH_POLICY = 304,
+     VAR_HARDEN_SHORT_BUFSIZE = 305,
+     VAR_HARDEN_LARGE_QUERIES = 306,
+     VAR_FORWARD_ZONE = 307,
+     VAR_FORWARD_HOST = 308,
+     VAR_FORWARD_ADDR = 309,
+     VAR_DO_NOT_QUERY_ADDRESS = 310,
+     VAR_HIDE_IDENTITY = 311,
+     VAR_HIDE_VERSION = 312,
+     VAR_IDENTITY = 313,
+     VAR_VERSION = 314,
+     VAR_HARDEN_GLUE = 315,
+     VAR_MODULE_CONF = 316,
+     VAR_TRUST_ANCHOR_FILE = 317,
+     VAR_TRUST_ANCHOR = 318,
+     VAR_VAL_OVERRIDE_DATE = 319,
+     VAR_BOGUS_TTL = 320,
+     VAR_VAL_CLEAN_ADDITIONAL = 321,
+     VAR_VAL_PERMISSIVE_MODE = 322,
+     VAR_INCOMING_NUM_TCP = 323,
+     VAR_MSG_BUFFER_SIZE = 324,
+     VAR_KEY_CACHE_SIZE = 325,
+     VAR_KEY_CACHE_SLABS = 326,
+     VAR_TRUSTED_KEYS_FILE = 327,
+     VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328,
+     VAR_USE_SYSLOG = 329,
+     VAR_OUTGOING_INTERFACE = 330,
+     VAR_ROOT_HINTS = 331,
+     VAR_DO_NOT_QUERY_LOCALHOST = 332,
+     VAR_CACHE_MAX_TTL = 333,
+     VAR_HARDEN_DNSSEC_STRIPPED = 334,
+     VAR_ACCESS_CONTROL = 335,
+     VAR_LOCAL_ZONE = 336,
+     VAR_LOCAL_DATA = 337,
+     VAR_INTERFACE_AUTOMATIC = 338,
+     VAR_STATISTICS_INTERVAL = 339,
+     VAR_DO_DAEMONIZE = 340,
+     VAR_USE_CAPS_FOR_ID = 341,
+     VAR_STATISTICS_CUMULATIVE = 342,
+     VAR_OUTGOING_PORT_PERMIT = 343,
+     VAR_OUTGOING_PORT_AVOID = 344,
+     VAR_DLV_ANCHOR_FILE = 345,
+     VAR_DLV_ANCHOR = 346,
+     VAR_NEG_CACHE_SIZE = 347,
+     VAR_HARDEN_REFERRAL_PATH = 348,
+     VAR_PRIVATE_ADDRESS = 349,
+     VAR_PRIVATE_DOMAIN = 350,
+     VAR_REMOTE_CONTROL = 351,
+     VAR_CONTROL_ENABLE = 352,
+     VAR_CONTROL_INTERFACE = 353,
+     VAR_CONTROL_PORT = 354,
+     VAR_SERVER_KEY_FILE = 355,
+     VAR_SERVER_CERT_FILE = 356,
+     VAR_CONTROL_KEY_FILE = 357,
+     VAR_CONTROL_CERT_FILE = 358,
+     VAR_CONTROL_USE_CERT = 359,
+     VAR_TCP_REUSE_TIMEOUT = 360,
+     VAR_MAX_REUSE_TCP_QUERIES = 361,
+     VAR_EXTENDED_STATISTICS = 362,
+     VAR_LOCAL_DATA_PTR = 363,
+     VAR_JOSTLE_TIMEOUT = 364,
+     VAR_STUB_PRIME = 365,
+     VAR_UNWANTED_REPLY_THRESHOLD = 366,
+     VAR_LOG_TIME_ASCII = 367,
+     VAR_DOMAIN_INSECURE = 368,
+     VAR_PYTHON = 369,
+     VAR_PYTHON_SCRIPT = 370,
+     VAR_VAL_SIG_SKEW_MIN = 371,
+     VAR_VAL_SIG_SKEW_MAX = 372,
+     VAR_VAL_MAX_RESTART = 373,
+     VAR_CACHE_MIN_TTL = 374,
+     VAR_VAL_LOG_LEVEL = 375,
+     VAR_AUTO_TRUST_ANCHOR_FILE = 376,
+     VAR_KEEP_MISSING = 377,
+     VAR_ADD_HOLDDOWN = 378,
+     VAR_DEL_HOLDDOWN = 379,
+     VAR_SO_RCVBUF = 380,
+     VAR_EDNS_BUFFER_SIZE = 381,
+     VAR_PREFETCH = 382,
+     VAR_PREFETCH_KEY = 383,
+     VAR_SO_SNDBUF = 384,
+     VAR_SO_REUSEPORT = 385,
+     VAR_HARDEN_BELOW_NXDOMAIN = 386,
+     VAR_IGNORE_CD_FLAG = 387,
+     VAR_LOG_QUERIES = 388,
+     VAR_LOG_REPLIES = 389,
+     VAR_LOG_LOCAL_ACTIONS = 390,
+     VAR_TCP_UPSTREAM = 391,
+     VAR_SSL_UPSTREAM = 392,
+     VAR_TCP_AUTH_QUERY_TIMEOUT = 393,
+     VAR_SSL_SERVICE_KEY = 394,
+     VAR_SSL_SERVICE_PEM = 395,
+     VAR_SSL_PORT = 396,
+     VAR_FORWARD_FIRST = 397,
+     VAR_STUB_SSL_UPSTREAM = 398,
+     VAR_FORWARD_SSL_UPSTREAM = 399,
+     VAR_TLS_CERT_BUNDLE = 400,
+     VAR_STUB_TCP_UPSTREAM = 401,
+     VAR_FORWARD_TCP_UPSTREAM = 402,
+     VAR_HTTPS_PORT = 403,
+     VAR_HTTP_ENDPOINT = 404,
+     VAR_HTTP_MAX_STREAMS = 405,
+     VAR_HTTP_QUERY_BUFFER_SIZE = 406,
+     VAR_HTTP_RESPONSE_BUFFER_SIZE = 407,
+     VAR_HTTP_NODELAY = 408,
+     VAR_HTTP_NOTLS_DOWNSTREAM = 409,
+     VAR_STUB_FIRST = 410,
+     VAR_MINIMAL_RESPONSES = 411,
+     VAR_RRSET_ROUNDROBIN = 412,
+     VAR_MAX_UDP_SIZE = 413,
+     VAR_DELAY_CLOSE = 414,
+     VAR_UDP_CONNECT = 415,
+     VAR_UNBLOCK_LAN_ZONES = 416,
+     VAR_INSECURE_LAN_ZONES = 417,
+     VAR_INFRA_CACHE_MIN_RTT = 418,
+     VAR_INFRA_KEEP_PROBING = 419,
+     VAR_DNS64_PREFIX = 420,
+     VAR_DNS64_SYNTHALL = 421,
+     VAR_DNS64_IGNORE_AAAA = 422,
+     VAR_DNSTAP = 423,
+     VAR_DNSTAP_ENABLE = 424,
+     VAR_DNSTAP_SOCKET_PATH = 425,
+     VAR_DNSTAP_IP = 426,
+     VAR_DNSTAP_TLS = 427,
+     VAR_DNSTAP_TLS_SERVER_NAME = 428,
+     VAR_DNSTAP_TLS_CERT_BUNDLE = 429,
+     VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430,
+     VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431,
+     VAR_DNSTAP_SEND_IDENTITY = 432,
+     VAR_DNSTAP_SEND_VERSION = 433,
+     VAR_DNSTAP_BIDIRECTIONAL = 434,
+     VAR_DNSTAP_IDENTITY = 435,
+     VAR_DNSTAP_VERSION = 436,
+     VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437,
+     VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438,
+     VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439,
+     VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440,
+     VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441,
+     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442,
+     VAR_RESPONSE_IP_TAG = 443,
+     VAR_RESPONSE_IP = 444,
+     VAR_RESPONSE_IP_DATA = 445,
+     VAR_HARDEN_ALGO_DOWNGRADE = 446,
+     VAR_IP_TRANSPARENT = 447,
+     VAR_IP_DSCP = 448,
+     VAR_DISABLE_DNSSEC_LAME_CHECK = 449,
+     VAR_IP_RATELIMIT = 450,
+     VAR_IP_RATELIMIT_SLABS = 451,
+     VAR_IP_RATELIMIT_SIZE = 452,
+     VAR_RATELIMIT = 453,
+     VAR_RATELIMIT_SLABS = 454,
+     VAR_RATELIMIT_SIZE = 455,
+     VAR_OUTBOUND_MSG_RETRY = 456,
+     VAR_RATELIMIT_FOR_DOMAIN = 457,
+     VAR_RATELIMIT_BELOW_DOMAIN = 458,
+     VAR_IP_RATELIMIT_FACTOR = 459,
+     VAR_RATELIMIT_FACTOR = 460,
+     VAR_SEND_CLIENT_SUBNET = 461,
+     VAR_CLIENT_SUBNET_ZONE = 462,
+     VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463,
+     VAR_CLIENT_SUBNET_OPCODE = 464,
+     VAR_MAX_CLIENT_SUBNET_IPV4 = 465,
+     VAR_MAX_CLIENT_SUBNET_IPV6 = 466,
+     VAR_MIN_CLIENT_SUBNET_IPV4 = 467,
+     VAR_MIN_CLIENT_SUBNET_IPV6 = 468,
+     VAR_MAX_ECS_TREE_SIZE_IPV4 = 469,
+     VAR_MAX_ECS_TREE_SIZE_IPV6 = 470,
+     VAR_CAPS_WHITELIST = 471,
+     VAR_CACHE_MAX_NEGATIVE_TTL = 472,
+     VAR_PERMIT_SMALL_HOLDDOWN = 473,
+     VAR_QNAME_MINIMISATION = 474,
+     VAR_QNAME_MINIMISATION_STRICT = 475,
+     VAR_IP_FREEBIND = 476,
+     VAR_DEFINE_TAG = 477,
+     VAR_LOCAL_ZONE_TAG = 478,
+     VAR_ACCESS_CONTROL_TAG = 479,
+     VAR_LOCAL_ZONE_OVERRIDE = 480,
+     VAR_ACCESS_CONTROL_TAG_ACTION = 481,
+     VAR_ACCESS_CONTROL_TAG_DATA = 482,
+     VAR_VIEW = 483,
+     VAR_ACCESS_CONTROL_VIEW = 484,
+     VAR_VIEW_FIRST = 485,
+     VAR_SERVE_EXPIRED = 486,
+     VAR_SERVE_EXPIRED_TTL = 487,
+     VAR_SERVE_EXPIRED_TTL_RESET = 488,
+     VAR_SERVE_EXPIRED_REPLY_TTL = 489,
+     VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490,
+     VAR_SERVE_ORIGINAL_TTL = 491,
+     VAR_FAKE_DSA = 492,
+     VAR_FAKE_SHA1 = 493,
+     VAR_LOG_IDENTITY = 494,
+     VAR_HIDE_TRUSTANCHOR = 495,
+     VAR_HIDE_HTTP_USER_AGENT = 496,
+     VAR_HTTP_USER_AGENT = 497,
+     VAR_TRUST_ANCHOR_SIGNALING = 498,
+     VAR_AGGRESSIVE_NSEC = 499,
+     VAR_USE_SYSTEMD = 500,
+     VAR_SHM_ENABLE = 501,
+     VAR_SHM_KEY = 502,
+     VAR_ROOT_KEY_SENTINEL = 503,
+     VAR_DNSCRYPT = 504,
+     VAR_DNSCRYPT_ENABLE = 505,
+     VAR_DNSCRYPT_PORT = 506,
+     VAR_DNSCRYPT_PROVIDER = 507,
+     VAR_DNSCRYPT_SECRET_KEY = 508,
+     VAR_DNSCRYPT_PROVIDER_CERT = 509,
+     VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510,
+     VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511,
+     VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512,
+     VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513,
+     VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514,
+     VAR_PAD_RESPONSES = 515,
+     VAR_PAD_RESPONSES_BLOCK_SIZE = 516,
+     VAR_PAD_QUERIES = 517,
+     VAR_PAD_QUERIES_BLOCK_SIZE = 518,
+     VAR_IPSECMOD_ENABLED = 519,
+     VAR_IPSECMOD_HOOK = 520,
+     VAR_IPSECMOD_IGNORE_BOGUS = 521,
+     VAR_IPSECMOD_MAX_TTL = 522,
+     VAR_IPSECMOD_WHITELIST = 523,
+     VAR_IPSECMOD_STRICT = 524,
+     VAR_CACHEDB = 525,
+     VAR_CACHEDB_BACKEND = 526,
+     VAR_CACHEDB_SECRETSEED = 527,
+     VAR_CACHEDB_REDISHOST = 528,
+     VAR_CACHEDB_REDISPORT = 529,
+     VAR_CACHEDB_REDISTIMEOUT = 530,
+     VAR_CACHEDB_REDISEXPIRERECORDS = 531,
+     VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532,
+     VAR_FOR_UPSTREAM = 533,
+     VAR_AUTH_ZONE = 534,
+     VAR_ZONEFILE = 535,
+     VAR_MASTER = 536,
+     VAR_URL = 537,
+     VAR_FOR_DOWNSTREAM = 538,
+     VAR_FALLBACK_ENABLED = 539,
+     VAR_TLS_ADDITIONAL_PORT = 540,
+     VAR_LOW_RTT = 541,
+     VAR_LOW_RTT_PERMIL = 542,
+     VAR_FAST_SERVER_PERMIL = 543,
+     VAR_FAST_SERVER_NUM = 544,
+     VAR_ALLOW_NOTIFY = 545,
+     VAR_TLS_WIN_CERT = 546,
+     VAR_TCP_CONNECTION_LIMIT = 547,
+     VAR_FORWARD_NO_CACHE = 548,
+     VAR_STUB_NO_CACHE = 549,
+     VAR_LOG_SERVFAIL = 550,
+     VAR_DENY_ANY = 551,
+     VAR_UNKNOWN_SERVER_TIME_LIMIT = 552,
+     VAR_LOG_TAG_QUERYREPLY = 553,
+     VAR_STREAM_WAIT_SIZE = 554,
+     VAR_TLS_CIPHERS = 555,
+     VAR_TLS_CIPHERSUITES = 556,
+     VAR_TLS_USE_SNI = 557,
+     VAR_IPSET = 558,
+     VAR_IPSET_NAME_V4 = 559,
+     VAR_IPSET_NAME_V6 = 560,
+     VAR_TLS_SESSION_TICKET_KEYS = 561,
+     VAR_RPZ = 562,
+     VAR_TAGS = 563,
+     VAR_RPZ_ACTION_OVERRIDE = 564,
+     VAR_RPZ_CNAME_OVERRIDE = 565,
+     VAR_RPZ_LOG = 566,
+     VAR_RPZ_LOG_NAME = 567,
+     VAR_DYNLIB = 568,
+     VAR_DYNLIB_FILE = 569,
+     VAR_EDNS_CLIENT_STRING = 570,
+     VAR_EDNS_CLIENT_STRING_OPCODE = 571,
+     VAR_NSID = 572,
+     VAR_ZONEMD_PERMISSIVE_MODE = 573,
+     VAR_ZONEMD_CHECK = 574,
+     VAR_ZONEMD_REJECT_ABSENCE = 575,
+     VAR_LOCAL_DATA_DO_EDE = 576
+   };
 #endif
-/* Token kinds.  */
-#define YYEOF 0
-#define YYerror 256
-#define YYUNDEF 257
+/* Tokens.  */
 #define SPACE 258
 #define LETTER 259
 #define NEWLINE 260
@@ -697,26 +679,24 @@ extern int yydebug;
 #define VAR_ZONEMD_PERMISSIVE_MODE 573
 #define VAR_ZONEMD_CHECK 574
 #define VAR_ZONEMD_REJECT_ABSENCE 575
+#define VAR_LOCAL_DATA_DO_EDE 576
 
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-union YYSTYPE
-{
-#line 66 "./util/configparser.y"
 
-       char*   str;
 
-#line 710 "util/configparser.h"
 
-};
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 66 "./util/configparser.y"
+{
+       char*   str;
+}
+/* Line 1529 of yacc.c.  */
+#line 695 "util/configparser.h"
+       YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
-
 extern YYSTYPE yylval;
 
-int yyparse (void);
-
-#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED  */