]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- #731: tcp-mss, outgoing-tcp-mss options for unbound.conf, patch
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 5 Jan 2016 10:03:59 +0000 (10:03 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 5 Jan 2016 10:03:59 +0000 (10:03 +0000)
  from Daisuke Higashi.

git-svn-id: file:///svn/unbound/trunk@3591 be551aaa-1e26-0410-a405-d3ace91eadb9

21 files changed:
config.h.in
configure
configure.ac
daemon/remote.c
daemon/worker.c
doc/Changelog
doc/example.conf.in
doc/unbound.conf.5.in
libunbound/libworker.c
services/listen_dnsport.c
services/listen_dnsport.h
services/outside_network.c
services/outside_network.h
testcode/fake_event.c
util/config_file.c
util/config_file.h
util/configlexer.c
util/configlexer.lex
util/configparser.c
util/configparser.h
util/configparser.y

index 6a3039a61d509aa699b2e73c799e978c0c990217..7a2cece7d27e528f45a3b79890d29d82e68601b4 100644 (file)
 /* Define to 1 if you have the <netinet/in.h> header file. */
 #undef HAVE_NETINET_IN_H
 
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#undef HAVE_NETINET_TCP_H
+
 /* Use libnettle for crypto */
 #undef HAVE_NETTLE
 
 #include <netinet/in.h>
 #endif
 
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
 #endif
index 2c454cf0d4ea3beb9fcacfcce7976b9b03a745a6..a6c336b8540d213e1f5c58317139270cf62dd424 100755 (executable)
--- a/configure
+++ b/configure
@@ -13846,7 +13846,7 @@ CC="$lt_save_CC"
 
 
 # Checks for header files.
-for ac_header in stdarg.h stdbool.h netinet/in.h sys/param.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h
+for ac_header in stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
@@ -18083,6 +18083,10 @@ $ac_includes_default
 #include <netinet/in.h>
 #endif
 
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
 #endif
index d3f4ef67284fdcab7ee6926a10cca1c5d9696d52..af69f9ce6eff16535299d4da9655fc7220813054 100644 (file)
@@ -277,7 +277,7 @@ AC_CHECK_TOOL(STRIP, strip)
 ACX_LIBTOOL_C_ONLY
 
 # Checks for header files.
-AC_CHECK_HEADERS([stdarg.h stdbool.h netinet/in.h sys/param.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h],,, [AC_INCLUDES_DEFAULT])
+AC_CHECK_HEADERS([stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h],,, [AC_INCLUDES_DEFAULT])
 
 # check for types.  
 # Using own tests for int64* because autoconf builtin only give 32bit.
@@ -1030,6 +1030,10 @@ AC_INCLUDES_DEFAULT
 #include <netinet/in.h>
 #endif
 
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
 #endif
@@ -1294,6 +1298,10 @@ dnl includes
 #include <netinet/in.h>
 #endif
 
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
 #endif
index d533e0867fff29129e8543474af30e1039086ae9..c2112dec130a3040bdff1e04e6b9546f8d43d4ce 100644 (file)
@@ -389,7 +389,7 @@ add_open(const char* ip, int nr, struct listen_port** list, int noproto_is_err,
 
                /* open fd */
                fd = create_tcp_accept_sock(res, 1, &noproto, 0,
-                       cfg->ip_transparent);
+                       cfg->ip_transparent, 0);
                freeaddrinfo(res);
        }
 
index c90a65998bec23dd137697eec63990e694f6a930..a74931f02c9ba52bf208322ed1e448a8be6281a6 100644 (file)
@@ -1217,7 +1217,8 @@ worker_init(struct worker* worker, struct config_file *cfg,
                cfg->do_tcp?cfg->outgoing_num_tcp:0, 
                worker->daemon->env->infra_cache, worker->rndstate,
                cfg->use_caps_bits_for_id, worker->ports, worker->numports,
-               cfg->unwanted_threshold, &worker_alloc_cleanup, worker,
+               cfg->unwanted_threshold, cfg->outgoing_tcp_mss,
+               &worker_alloc_cleanup, worker,
                cfg->do_udp, worker->daemon->connect_sslctx, cfg->delay_close,
                dtenv);
        if(!worker->back) {
index 4c472e5093843f17825a879241ae0b1a73475bda..c556d64efdefa23412efe7d8daa8aee02d47a426 100644 (file)
@@ -1,3 +1,7 @@
+05 January 2016: Wouter
+       - #731: tcp-mss, outgoing-tcp-mss options for unbound.conf, patch
+         from Daisuke Higashi.
+
 04 January 2016: Wouter
        - Define DEFAULT_SOURCE together with BSD_SOURCE when that is defined,
          for Linux glibc 2.20.
index af8f92bd30b9a923a1691c55ea3f6f0df664cad6..68a2596ec6ddd3caff18f8292987f0677fdb17df 100644 (file)
@@ -173,6 +173,14 @@ server:
        # useful for tunneling scenarios, default no.
        # tcp-upstream: no
 
+       # Maximum segment size (MSS) of TCP socket on which the server
+       # responds to queries. Default is 0, system default MSS.
+       # tcp-mss: 0
+
+       # Maximum segment size (MSS) of TCP socket for outgoing queries.
+       # Default is 0, system default MSS.
+       # outgoing-tcp-mss: 0
+
        # Detach from the terminal, run in background, "yes" or "no".
        # do-daemonize: yes
 
index 70291443bcd68470987d0c74a904295f27afac0d..08fc5e735af097c84910ca031ad1152c3a9fed7e 100644 (file)
@@ -338,6 +338,22 @@ Enable or disable whether UDP queries are answered or issued. Default is yes.
 .B do\-tcp: \fI<yes or no>
 Enable or disable whether TCP queries are answered or issued. Default is yes.
 .TP
+.B tcp\-mss: \fI<number>
+Maximum segment size (MSS) of TCP socket on which the server responds
+to queries. Value lower than common MSS on Ethernet 
+(1220 for example) will address path MTU problem.
+Note that not all platform supports socket option to set MSS (TCP_MAXSEG).
+Default is system default MSS determined by interface MTU and
+negotiation between server and client.
+.TP
+.B outgoing\-tcp\-mss: \fI<number>
+Maximum segment size (MSS) of TCP socket for outgoing queries
+(from Unbound to other servers). Value lower than
+common MSS on Ethernet (1220 for example) will address path MTU problem.
+Note that not all platform supports socket option to set MSS (TCP_MAXSEG).
+Default is system default MSS determined by interface MTU and
+negotiation between Unbound and other servers.
+.TP
 .B tcp\-upstream: \fI<yes or no>
 Enable or disable whether the upstream queries use TCP only for transport.
 Default is no.  Useful in tunneling scenarios.
index 72b615313a4bee94fc449d381a28f3678d90721d..ad1f84ce97d98384660e1861f0b08e14865b0a45 100644 (file)
@@ -232,6 +232,7 @@ libworker_setup(struct ub_ctx* ctx, int is_bg, struct event_base* eb)
                cfg->do_tcp?cfg->outgoing_num_tcp:0,
                w->env->infra_cache, w->env->rnd, cfg->use_caps_bits_for_id,
                ports, numports, cfg->unwanted_threshold,
+               cfg->outgoing_tcp_mss,
                &libworker_alloc_cleanup, w, cfg->do_udp, w->sslctx,
                cfg->delay_close, NULL);
        if(!w->is_bg || w->is_bg_thread) {
index 276c0fb32ecd10d8d7d0bff8a0ddb932806d1e97..561c0f21af632f56fcacaf690b7c75ff54814a25 100644 (file)
@@ -483,7 +483,7 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 
 int
 create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
-       int* reuseport, int transparent)
+       int* reuseport, int transparent, int mss)
 {
        int s;
 #if defined(SO_REUSEADDR) || defined(SO_REUSEPORT) || defined(IPV6_V6ONLY) || defined(IP_TRANSPARENT)
@@ -512,6 +512,25 @@ create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
 #endif
                return -1;
        }
+       if (mss > 0) {
+#if defined(IPPROTO_TCP) && defined(TCP_MAXSEG)
+               if(setsockopt(s, IPPROTO_TCP, TCP_MAXSEG, (void*)&mss,
+                       (socklen_t)sizeof(mss)) < 0) {
+                       #ifndef USE_WINSOCK
+                       log_err(" setsockopt(.. TCP_MAXSEG ..) failed: %s",
+                               strerror(errno));
+                       #else
+                       log_err(" setsockopt(.. TCP_MAXSEG ..) failed: %s",
+                               wsa_strerror(WSAGetLastError()));
+                       #endif
+               } else {
+                       verbose(VERB_ALGO,
+                               " tcp socket mss set to %d", mss);
+               }
+#else
+               log_warn(" setsockopt(TCP_MAXSEG) unsupported");
+#endif /* defined(IPPROTO_TCP) && defined(TCP_MAXSEG) */
+       }
 #ifdef SO_REUSEADDR
        if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void*)&on, 
                (socklen_t)sizeof(on)) < 0) {
@@ -678,7 +697,7 @@ create_local_accept_sock(const char *path, int* noproto)
 static int
 make_sock(int stype, const char* ifname, const char* port, 
        struct addrinfo *hints, int v6only, int* noip6, size_t rcv, size_t snd,
-       int* reuseport, int transparent)
+       int* reuseport, int transparent, int tcp_mss)
 {
        struct addrinfo *res = NULL;
        int r, s, inuse, noproto;
@@ -714,7 +733,7 @@ make_sock(int stype, const char* ifname, const char* port,
                }
        } else  {
                s = create_tcp_accept_sock(res, v6only, &noproto, reuseport,
-                       transparent);
+                       transparent, tcp_mss);
                if(s == -1 && noproto && hints->ai_family == AF_INET6){
                        *noip6 = 1;
                }
@@ -727,7 +746,7 @@ make_sock(int stype, const char* ifname, const char* port,
 static int
 make_sock_port(int stype, const char* ifname, const char* port, 
        struct addrinfo *hints, int v6only, int* noip6, size_t rcv, size_t snd,
-       int* reuseport, int transparent)
+       int* reuseport, int transparent, int tcp_mss)
 {
        char* s = strchr(ifname, '@');
        if(s) {
@@ -749,10 +768,10 @@ make_sock_port(int stype, const char* ifname, const char* port,
                (void)strlcpy(p, s+1, sizeof(p));
                p[strlen(s+1)]=0;
                return make_sock(stype, newif, p, hints, v6only, noip6,
-                       rcv, snd, reuseport, transparent);
+                       rcv, snd, reuseport, transparent, tcp_mss);
        }
        return make_sock(stype, ifname, port, hints, v6only, noip6, rcv, snd,
-               reuseport, transparent);
+               reuseport, transparent, tcp_mss);
 }
 
 /**
@@ -847,19 +866,22 @@ set_recvpktinfo(int s, int family)
  * @param reuseport: try to set SO_REUSEPORT if nonNULL and true.
  *     set to false on exit if reuseport failed due to no kernel support.
  * @param transparent: set IP_TRANSPARENT socket option.
+ * @param tcp_mss: maximum segment size of tcp socket. default if zero.
  * @return: returns false on error.
  */
 static int
 ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp, 
        struct addrinfo *hints, const char* port, struct listen_port** list,
-       size_t rcv, size_t snd, int ssl_port, int* reuseport, int transparent)
+       size_t rcv, size_t snd, int ssl_port, int* reuseport, int transparent,
+       int tcp_mss)
 {
        int s, noip6=0;
        if(!do_udp && !do_tcp)
                return 0;
        if(do_auto) {
                if((s = make_sock_port(SOCK_DGRAM, ifname, port, hints, 1, 
-                       &noip6, rcv, snd, reuseport, transparent)) == -1) {
+                       &noip6, rcv, snd, reuseport, transparent,
+                       tcp_mss)) == -1) {
                        if(noip6) {
                                log_warn("IPv6 protocol not available");
                                return 1;
@@ -886,7 +908,8 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
        } else if(do_udp) {
                /* regular udp socket */
                if((s = make_sock_port(SOCK_DGRAM, ifname, port, hints, 1, 
-                       &noip6, rcv, snd, reuseport, transparent)) == -1) {
+                       &noip6, rcv, snd, reuseport, transparent,
+                       tcp_mss)) == -1) {
                        if(noip6) {
                                log_warn("IPv6 protocol not available");
                                return 1;
@@ -907,7 +930,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                        atoi(strchr(ifname, '@')+1) == ssl_port) ||
                        (!strchr(ifname, '@') && atoi(port) == ssl_port));
                if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1, 
-                       &noip6, 0, 0, reuseport, transparent)) == -1) {
+                       &noip6, 0, 0, reuseport, transparent, tcp_mss)) == -1) {
                        if(noip6) {
                                /*log_warn("IPv6 protocol not available");*/
                                return 1;
@@ -1064,7 +1087,8 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
                                &hints, portbuf, &list,
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, reuseport,
-                               cfg->ip_transparent)) {
+                               cfg->ip_transparent,
+                               cfg->tcp_mss)) {
                                listening_ports_free(list);
                                return NULL;
                        }
@@ -1076,7 +1100,8 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
                                &hints, portbuf, &list,
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, reuseport,
-                               cfg->ip_transparent)) {
+                               cfg->ip_transparent,
+                               cfg->tcp_mss)) {
                                listening_ports_free(list);
                                return NULL;
                        }
@@ -1090,7 +1115,8 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
                                do_tcp, &hints, portbuf, &list, 
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, reuseport,
-                               cfg->ip_transparent)) {
+                               cfg->ip_transparent,
+                               cfg->tcp_mss)) {
                                listening_ports_free(list);
                                return NULL;
                        }
@@ -1102,7 +1128,8 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
                                do_tcp, &hints, portbuf, &list, 
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, reuseport,
-                               cfg->ip_transparent)) {
+                               cfg->ip_transparent,
+                               cfg->tcp_mss)) {
                                listening_ports_free(list);
                                return NULL;
                        }
index 676f0c638ca4858da91a9623ccc806f719646cfb..3a46e41b8de6657b880e7afe6e07aeae6bd1d76a 100644 (file)
@@ -204,10 +204,11 @@ int create_udp_sock(int family, int socktype, struct sockaddr* addr,
  * @param reuseport: if nonNULL and true, try to set SO_REUSEPORT on
  *     listening UDP port.  Set to false on return if it failed to do so.
  * @param transparent: set IP_TRANSPARENT socket option.
+ * @param mss: maximum segment size of the socket. if zero, leaves the default. 
  * @return: the socket. -1 on error.
  */
 int create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
-       int* reuseport, int transparent);
+       int* reuseport, int transparent, int mss);
 
 /**
  * Create and bind local listening socket
index f105bc0d48b0bf610dfec29ed98324698000e36f..69c5c2c00187675cb82f321f1a7be9f1b6800382 100644 (file)
@@ -222,6 +222,21 @@ outnet_tcp_take_into_use(struct waiting_tcp* w, uint8_t* pkt, size_t pkt_len)
 #endif
                return 0;
        }
+
+       if (w->outnet->tcp_mss > 0) {
+#if defined(IPPROTO_TCP) && defined(TCP_MAXSEG)
+               if(setsockopt(s, IPPROTO_TCP, TCP_MAXSEG,
+                       (void*)&w->outnet->tcp_mss,
+                       (socklen_t)sizeof(w->outnet->tcp_mss)) < 0) {
+                       verbose(VERB_ALGO, "outgoing tcp:"
+                               " setsockopt(.. SO_REUSEADDR ..) failed");
+               }
+#else
+               verbose(VERB_ALGO, "outgoing tcp:"
+                       " setsockopt(TCP_MAXSEG) unsupported");
+#endif /* defined(IPPROTO_TCP) && defined(TCP_MAXSEG) */
+       }
+
        if(!pick_outgoing_tcp(w, s))
                return 0;
 
@@ -590,7 +605,7 @@ outside_network_create(struct comm_base *base, size_t bufsize,
        size_t num_ports, char** ifs, int num_ifs, int do_ip4, 
        int do_ip6, size_t num_tcp, struct infra_cache* infra,
        struct ub_randstate* rnd, int use_caps_for_id, int* availports, 
-       int numavailports, size_t unwanted_threshold,
+       int numavailports, size_t unwanted_threshold, size_t tcp_mss,
        void (*unwanted_action)(void*), void* unwanted_param, int do_udp,
        void* sslctx, int delayclose, struct dt_env* dtenv)
 {
@@ -620,6 +635,7 @@ outside_network_create(struct comm_base *base, size_t bufsize,
        outnet->unwanted_param = unwanted_param;
        outnet->use_caps_for_id = use_caps_for_id;
        outnet->do_udp = do_udp;
+       outnet->tcp_mss = tcp_mss;
 #ifndef S_SPLINT_S
        if(delayclose) {
                outnet->delayclose = 1;
index 9959676d33f4aaa9526dc5654003726568f0d6ed..49fdf01ee8e0a9c10500829ed257653a6afb4551 100644 (file)
@@ -132,6 +132,8 @@ struct outside_network {
        /** dnstap environment */
        struct dt_env* dtenv;
 #endif
+       /** maximum segment size of tcp socket */
+       int tcp_mss;
 
        /**
         * Array of tcp pending used for outgoing TCP connections.
@@ -392,6 +394,7 @@ struct serviced_query {
  * @param unwanted_threshold: when to take defensive action.
  * @param unwanted_action: the action to take.
  * @param unwanted_param: user parameter to action.
+ * @param tcp_mss: maximum segment size of tcp socket.
  * @param do_udp: if udp is done.
  * @param sslctx: context to create outgoing connections with (if enabled).
  * @param delayclose: if not 0, udp sockets are delayed before timeout closure.
@@ -403,7 +406,7 @@ struct outside_network* outside_network_create(struct comm_base* base,
        size_t bufsize, size_t num_ports, char** ifs, int num_ifs,
        int do_ip4, int do_ip6, size_t num_tcp, struct infra_cache* infra, 
        struct ub_randstate* rnd, int use_caps_for_id, int* availports, 
-       int numavailports, size_t unwanted_threshold,
+       int numavailports, size_t unwanted_threshold, size_t tcp_mss,
        void (*unwanted_action)(void*), void* unwanted_param, int do_udp,
        void* sslctx, int delayclose, struct dt_env *dtenv);
 
index e371cfdaabcd4b11fa091929e38bde506e7475f3..a1ea47b1e2e5cff046ea200022b63652dee87906 100644 (file)
@@ -900,6 +900,7 @@ outside_network_create(struct comm_base* base, size_t bufsize,
        struct ub_randstate* ATTR_UNUSED(rnd), 
        int ATTR_UNUSED(use_caps_for_id), int* ATTR_UNUSED(availports),
        int ATTR_UNUSED(numavailports), size_t ATTR_UNUSED(unwanted_threshold),
+       size_t ATTR_UNUSED(outgoing_tcp_mss),
        void (*unwanted_action)(void*), void* ATTR_UNUSED(unwanted_param),
        int ATTR_UNUSED(do_udp), void* ATTR_UNUSED(sslctx),
        int ATTR_UNUSED(delayclose), struct dt_env* ATTR_UNUSED(dtenv))
index cc7d99086b81b23674c3aa09cae6c92b5c0e2b29..1abd2260d0f9affd74ae6b997767b5e08fcc90d7 100644 (file)
@@ -98,6 +98,8 @@ config_create(void)
        cfg->do_udp = 1;
        cfg->do_tcp = 1;
        cfg->tcp_upstream = 0;
+       cfg->tcp_mss = 0;
+       cfg->outgoing_tcp_mss = 0;
        cfg->ssl_service_key = NULL;
        cfg->ssl_service_pem = NULL;
        cfg->ssl_port = 853;
@@ -368,6 +370,8 @@ int config_set_option(struct config_file* cfg, const char* opt,
        else S_YNO("do-udp:", do_udp)
        else S_YNO("do-tcp:", do_tcp)
        else S_YNO("tcp-upstream:", tcp_upstream)
+       else S_NUMBER_NONZERO("tcp-mss:", tcp_mss)
+       else S_NUMBER_NONZERO("outgoing-tcp-mss:", outgoing_tcp_mss)
        else S_YNO("ssl-upstream:", ssl_upstream)
        else S_STR("ssl-service-key:", ssl_service_key)
        else S_STR("ssl-service-pem:", ssl_service_pem)
@@ -675,6 +679,8 @@ config_get_option(struct config_file* cfg, const char* opt,
        else O_YNO(opt, "do-udp", do_udp)
        else O_YNO(opt, "do-tcp", do_tcp)
        else O_YNO(opt, "tcp-upstream", tcp_upstream)
+       else O_DEC(opt, "tcp-mss", tcp_mss)
+       else O_DEC(opt, "outgoing-tcp-mss", outgoing_tcp_mss)
        else O_YNO(opt, "ssl-upstream", ssl_upstream)
        else O_STR(opt, "ssl-service-key", ssl_service_key)
        else O_STR(opt, "ssl-service-pem", ssl_service_pem)
index 8fa163ed7cc9c6cd68e61e6c610b06c4bcc21d50..3b8b38e4236adeb8c9797c7045a2e84a71a34f61 100644 (file)
@@ -78,6 +78,10 @@ struct config_file {
        int do_tcp;
        /** tcp upstream queries (no UDP upstream queries) */
        int tcp_upstream;
+       /** maximum segment size of tcp socket which queries are answered */
+       size_t tcp_mss;
+       /** maximum segment size of tcp socket for outgoing queries */
+       size_t outgoing_tcp_mss;
 
        /** private key file for dnstcp-ssl service (enabled if not NULL) */
        char* ssl_service_key;
index a9fe541214f05e0ffcd69de1298861981978ad83..63ac1920d4d133eb316f5111747fce355664a1db 100644 (file)
@@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 176
-#define YY_END_OF_BUFFER 177
+#define YY_NUM_RULES 178
+#define YY_END_OF_BUFFER 179
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -372,202 +372,204 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[1771] =
+static yyconst flex_int16_t yy_accept[1783] =
     {   0,
-        1,    1,  158,  158,  162,  162,  166,  166,  170,  170,
-        1,    1,  177,  174,    1,  156,  156,  175,    2,  175,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      158,  159,  159,  160,  175,  162,  163,  163,  164,  175,
-      169,  166,  167,  167,  168,  175,  170,  171,  171,  172,
-      175,  173,  157,    2,  161,  175,  173,  174,    0,    1,
-        2,    2,    2,    2,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  158,    0,  162,    0,
-      169,    0,  166,  170,    0,  173,    0,    2,    2,  173,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  173,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  173,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-       71,  174,  174,  174,  174,  174,  174,    7,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  173,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  173,  174,  174,  174,  174,  174,
-       31,  174,  174,  174,  174,  174,  174,  174,  174,  137,
-      174,   13,   14,  174,   16,   15,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  130,  174,  174,  174,  174,
-      174,  174,  174,    3,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  173,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      165,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  174,   34,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,   35,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,   86,  165,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,   85,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,   69,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,   21,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-       32,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,   33,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,   23,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  150,  174,  174,  174,
-      174,  174,  174,   27,  174,   28,  174,  174,  174,   72,
-      174,   73,  174,   70,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,    6,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,   88,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,   24,
-      174,  174,  174,  174,  174,  114,  113,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,   36,  174,  174,  174,  174,  174,  174,  174,  174,
-       75,   74,  174,  174,  174,  174,  174,  174,  174,  110,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,   54,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,   58,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  112,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,    5,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  106,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,  123,  174,  107,  174,  135,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,   22,
-      174,  174,  174,  174,   77,  174,   78,   76,  174,  174,
-      174,  174,  174,  174,  174,   84,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  108,  174,  174,
-      174,  174,  134,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,   68,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-       29,  174,  174,   18,  174,  174,  174,   17,  174,   93,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,   43,   45,  174,  174,  174,  174,
-      174,  174,  174,  174,  138,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,   79,  174,
-      174,  174,  174,  174,  174,   83,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,   87,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  129,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,   97,  174,
-      101,  174,  174,  174,  174,   82,  174,  174,   64,  174,
-
-      121,  174,  174,  174,  174,  136,  174,  174,  174,  174,
-      174,  174,  174,  143,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  100,  174,  174,  174,  174,
-      174,   46,   47,  174,   30,   53,  102,  174,  115,  111,
-      174,  174,   39,  174,  104,  174,  174,  174,  174,  174,
-        8,  174,  174,   67,  174,  174,  174,  174,  152,  174,
-      120,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,   89,  142,
-      174,  174,  174,  174,  174,  174,  174,  174,  131,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  103,  174,   38,   40,  174,  174,  174,
-      174,  174,  174,   66,  174,  174,  174,  174,  151,  174,
-      174,  174,  174,  125,   19,   20,  174,  174,  174,  174,
-      174,  174,  174,   63,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  127,  124,  174,  174,  174,  174,
-      174,  174,  174,  174,   37,  174,  174,  174,  174,  174,
-      174,  174,   12,  174,  174,  174,  174,  174,  174,  174,
-      174,   11,  174,  174,  174,  174,  174,  155,  174,   41,
-      174,  133,  126,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174,  174,   96,   95,  174,  174,  128,  122,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,   48,  174,
-      132,  174,  174,  174,  174,  174,  174,  174,  174,   42,
-      174,  174,  174,   90,   92,  116,  174,  174,  174,   94,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  139,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,   25,  174,  174,  174,    4,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  141,  174,  174,  119,  174,
-
-      174,  174,  174,  174,  174,  174,   51,  174,   26,  174,
-       10,  174,  174,  174,  174,  174,  117,   55,  174,  174,
-      174,   99,  174,  174,  174,  174,  174,  174,  174,  140,
-       80,  174,  174,  174,  174,   57,   61,   56,  174,   49,
-      174,    9,  174,  174,  153,  174,  174,   98,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,   62,   60,
-      174,   50,  174,  109,  174,  118,  174,  174,   91,   44,
-      174,  174,  174,  174,  174,  174,   81,   59,   52,  154,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,   65,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  105,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  146,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  144,  174,
-      147,  148,  174,  174,  174,  174,  174,  145,  149,    0
+        1,    1,  160,  160,  164,  164,  168,  168,  172,  172,
+        1,    1,  179,  176,    1,  158,  158,  177,    2,  177,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      160,  161,  161,  162,  177,  164,  165,  165,  166,  177,
+      171,  168,  169,  169,  170,  177,  172,  173,  173,  174,
+      177,  175,  159,    2,  163,  177,  175,  176,    0,    1,
+        2,    2,    2,    2,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  160,    0,  164,    0,
+      171,    0,  168,  172,    0,  175,    0,    2,    2,  175,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  175,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  175,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+       73,  176,  176,  176,  176,  176,  176,    7,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  175,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  175,  176,  176,  176,
+      176,  176,   33,  176,  176,  176,  176,  176,  176,  176,
+      176,  139,  176,   13,   14,  176,   16,   15,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  132,  176,  176,
+      176,  176,  176,  176,  176,    3,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  175,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  167,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,   36,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,   37,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,   18,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,   88,  167,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,   87,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,   71,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,   23,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,   34,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,   35,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,   25,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  152,  176,  176,  176,  176,  176,  176,   29,  176,
+       30,  176,  176,  176,   74,  176,   75,  176,   72,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,    6,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,   90,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,   26,  176,  176,  176,  176,  176,
+      116,  115,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,   38,  176,  176,
+      176,  176,  176,  176,  176,  176,   77,   76,  176,  176,
+      176,  176,  176,  176,  176,  112,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,   56,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,   60,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  114,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,    5,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  108,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  125,  176,  109,  176,  137,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,   24,  176,  176,  176,
+      176,   79,  176,   80,   78,  176,  176,  176,  176,  176,
+      176,  176,   86,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  110,  176,  176,  176,  176,  136,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,   70,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,   31,  176,
+      176,   20,  176,  176,  176,   17,  176,   95,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,   45,   47,  176,  176,  176,  176,  176,  176,
+      176,  176,  140,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,   81,  176,  176,  176,
+      176,  176,  176,   85,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+       89,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  131,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,   99,  176,  103,
+
+      176,  176,  176,  176,   84,  176,  176,   66,  176,  123,
+      176,  176,  176,  176,  138,  176,  176,  176,  176,  176,
+      176,  176,  145,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  102,  176,  176,  176,  176,  176,
+       48,   49,  176,   32,   55,  104,  176,  117,  113,  176,
+      176,   41,  176,  106,  176,  176,  176,  176,  176,    8,
+      176,  176,  176,   69,  176,  176,  176,  176,  154,  176,
+      122,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,   91,  144,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  133,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  105,  176,   40,   42,  176,  176,  176,
+      176,  176,  176,  176,   68,  176,  176,  176,  176,  153,
+      176,  176,  176,  176,  127,   21,   22,  176,  176,  176,
+      176,  176,  176,  176,   65,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  129,  126,  176,  176,  176,
+      176,  176,  176,  176,  176,   39,  176,  176,  176,  176,
+      176,  176,  176,   12,  176,  176,  176,  176,  176,  176,
+      176,  176,   11,  176,  176,   19,  176,  176,  176,  157,
+
+      176,   43,  176,  135,  128,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,   98,   97,  176,  176,
+      130,  124,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+       50,  176,  134,  176,  176,  176,  176,  176,  176,  176,
+      176,   44,  176,  176,  176,   92,   94,  118,  176,  176,
+      176,   96,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  141,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,   27,  176,  176,  176,
+        4,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  143,  176,  176,
+      121,  176,  176,  176,  176,  176,  176,  176,   53,  176,
+       28,  176,   10,  176,  176,  176,  176,  176,  119,   57,
+      176,  176,  176,  101,  176,  176,  176,  176,  176,  176,
+      176,  142,   82,  176,  176,  176,  176,   59,   63,   58,
+      176,   51,  176,    9,  176,  176,  155,  176,  176,  100,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+       64,   62,  176,   52,  176,  111,  176,  120,  176,  176,
+       93,   46,  176,  176,  176,  176,  176,  176,   83,   61,
+       54,  156,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,   67,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  107,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  148,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      146,  176,  149,  150,  176,  176,  176,  176,  176,  147,
+      151,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -610,22 +612,22 @@ static yyconst flex_int32_t yy_meta[40] =
         1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1785] =
+static yyconst flex_int16_t yy_base[1797] =
     {   0,
         0,    0,   37,   40,   44,   51,   63,   75,   56,   68,
-       87,  108, 2403, 1986,   50, 3503, 3503, 3503,  129,   94,
+       87,  108, 2901, 2687,   50, 3522, 3522, 3522,  129,   94,
        70,  104,  130,   90,   92,  115,  127,   95,   84,  111,
       137,  148,   50,  170,  122,  150,  157,  160,  140,  166,
-     1934, 3503, 3503, 3503,   70, 1883, 3503, 3503, 3503,   42,
-     1800, 1768, 3503, 3503, 3503,  192, 1510, 3503, 3503, 3503,
-      141,  849, 3503,  198, 3503,  202,  197,  811,  210,  120,
+     2325, 3522, 3522, 3522,   70, 2077, 3522, 3522, 3522,   42,
+     1892, 1777, 3522, 3522, 3522,  192, 1515, 3522, 3522, 3522,
+      141, 1235, 3522,  198, 3522,  202,  197, 1089,  210,  120,
         0,  223,    0,    0,  103,  203,  180,  205,  164,  206,
       213,  210,  125,  216,  224,  218,  226,  227,  229,  230,
       231,  238,  248,  244,  240,  250,  253,  233,  249,  258,
 
       264,  261,  265,  266,  267,  270,  269,  276,  277,  278,
       173,  280,  283,  284,  285,  289,  295,  281,  291,  297,
-      301,  302,  303,  306,  308,  309,  668,  250,  392,  319,
+      301,  302,  303,  306,  308,  309,  737,  250,  392,  319,
       382,  327,  363,  322,  333,  243,  339,  343,    0,  336,
       340,  346,  314,  342,  338,  344,  347,  353,  351,  360,
       363,  384,  364,  349,  366,   49,  358,  369,  372,  370,
@@ -641,376 +643,380 @@ static yyconst flex_int16_t yy_base[1785] =
       535,  548,  550,  551,  558,  564,  559,  565,  566,  568,
       570,  573,  571,  574,  581,  582,  583,  590,  584,  587,
       588,  595,  596,  597,  605,  602,  598,  601,  599,  608,
-      610,  611,  630,  616,  618,  620,  624,  623,  628,  639,
-      635,  636,  637,  640,  659,  647,  650,  662,  653,  660,
-      673,  661,  663,  666,  672,  674,  680,  675,  677,  678,
-
-      683,  685,  694,  688,  701,  689,  699,  704,  702,  706,
-      708,  715,  711,  712,  713,  714,  716,  722,  720,  723,
-     3503,  728,  726,  730,  731,  733,  734, 3503,  735,  736,
-      737,  744,  743,  745,  749,  759,  742,  748,  758,  761,
-      762,  763,  764,  766,  786,  769,  767,  776,  772,  773,
-      790,  626,  795,  782,  788,  784,  798,  801,  803,  804,
-      805,  806,  774,  814,  807,  810,  816,  818,  831,  815,
-      820,  822,  833,  834,  835,  841,  839,  843,  845,  855,
-      847,  857,  858,  838,  860,  862,  868,  867,  864,  861,
-      875,  872,  873,  876,  882,  874,  880,  890,  886,  893,
-
-      897,  898,  878,  899,  889,  900,  907,  908,  906,  910,
-      911,  915,  917,  924,  920,  918,  922,  935,  926,  928,
-      937,  929,  940,  947,  948,  936,  949,  944,  945,  952,
-      953,  956,  957,  954,  959,  961,  970,  964,  967,  974,
-      975,  979,  972,  980,  981,  982,  985,  991,  987,  995,
-      993,  996,  997, 1001, 1002, 1005, 1009, 1004, 1017, 1010,
-     3503, 1021, 1020, 1022, 1012, 1023, 1014, 1027, 1053, 3503,
-     1028, 3503, 3503, 1029, 3503, 3503, 1033, 1035, 1036, 1044,
-     1076, 1045, 1037, 1038, 1048, 1057, 1047, 1059, 1049, 1066,
-     1068, 1069, 1070, 1061, 1073, 1079, 1084, 1082, 1086, 1091,
-
-     1099, 1105, 1106, 1090, 1102, 1103, 1107, 1109, 1112, 1113,
-     1110, 1119, 1114, 1121, 1123, 3503, 1124, 1125, 1128, 1126,
-     1135, 1130, 1138, 3503, 1132, 1139, 1137, 1143, 1146, 1147,
-     1148, 1150, 1151, 1152, 1155, 1156, 1159, 1160, 1161, 1177,
-     1178, 1162, 1174, 1176, 1179, 1181, 1182, 1190, 1186, 1187,
-     1191, 1197, 1194, 1196, 1199, 1200, 1203, 1201, 1206, 1208,
-     1209, 1231, 1212, 1210, 1213, 1211, 1218, 1219, 1221, 1224,
-     1217, 1239, 1241, 1237, 1227, 1243, 1249, 1250, 1258, 1253,
-     1256, 1260, 1263, 1267, 1271, 1262, 1269, 1272, 1278, 1281,
-     3503, 1287, 1286, 1273, 1280, 1290, 1279, 1288, 1294, 1296,
-
-     1297, 1299, 1300, 1301, 1311, 3503, 1305, 1307, 1308, 1312,
-     1313, 1316, 1320, 1326, 1333, 1309, 3503, 1335, 1336, 1338,
-     1331, 1332, 1339, 1342, 1343, 1344, 1348, 1350, 1351, 1347,
-     1358, 1360, 1361, 1349, 1366, 1356, 1368, 1371, 1372, 1373,
-     1375, 1376, 1379, 1377, 1381, 1389, 1395, 1383, 1397, 1386,
-     1392, 1399, 1404, 1401, 1403, 1402, 1407, 3503,  158, 1408,
-     1409, 1410, 1418, 1420, 1423, 1426, 1425, 1427, 1429, 1433,
-     1416, 1436, 1437, 1443, 1440, 1438, 1445, 1446, 1449, 1450,
-     1452, 1414, 1453, 1455, 1462, 1459, 1463, 1460, 1469, 1461,
-     1472, 1474, 1475, 1476, 1477, 1480, 1481, 1484, 1483, 1485,
-
-     1486, 3503, 1497, 1493, 1494, 1491, 1503, 1514, 1500, 1515,
-     1504, 1512, 1523, 1524, 1522, 1526, 1528, 1530, 1532, 1506,
-     1533, 1540, 1541, 1538, 1542, 1544, 1547, 1534, 3503, 1550,
-     1549, 1552, 1556, 1568, 1555, 1557, 1566, 1559, 1561, 1571,
-     1578, 1572, 1581, 3503, 1582, 1583, 1575, 1590, 1584, 1592,
-     1593, 1600, 1586, 1597, 1595, 1605, 1607, 1601, 1609, 1611,
-     3503, 1617, 1621, 1620, 1627, 1614, 1613, 1624, 1629, 1626,
-     1630, 1636, 1634, 1637, 1633, 1638, 1639, 1641, 1642, 1644,
-     1647, 1643, 1650, 3503, 1664, 1649, 1660, 1669, 1651, 1675,
-     1672, 1673, 1674, 1677, 1678, 1680, 1679, 1681, 1682, 1687,
-
-     1683, 1690, 1691, 1692, 1689, 1694, 1688, 1709, 1698, 1710,
-     1700, 1711, 1712, 1713, 1725, 1726, 1722, 3503, 1728, 1724,
-     1729, 1730, 1731, 1737, 1739, 1735, 1740, 1741, 1743, 1745,
-     1752, 1746, 1749, 1753, 1755, 1756, 1748, 1758, 1760, 1763,
-     1766, 1776, 1764, 1778, 1779, 1782, 3503, 1783, 1786, 1789,
-     1791, 1790, 1798, 3503, 1781, 3503, 1797, 1804, 1811, 3503,
-     1808, 3503, 1813, 3503, 1814, 1815, 1809, 1796, 1818, 1820,
-     1819, 1823, 1826, 1827, 1829, 1830, 1831, 1833, 1837, 3503,
-     1836, 1839, 1843, 1840, 1838, 1847, 1848, 1849, 1859, 1850,
-     1865, 1856, 1868, 1864, 1871, 1866, 3503, 1862, 1873, 1875,
-
-     1877, 1882, 1884, 1889, 1881, 1891, 1880, 1892, 1898, 1901,
-     1899, 1903, 1904, 1906, 1912, 1908, 1909, 1916, 1913, 1910,
-     1919, 1920, 1921, 1925, 1923, 1932, 1926, 1929, 1930, 3503,
-     1933, 1941, 1943, 1945, 1942, 3503, 3503, 1948, 1952, 1959,
-     1944, 1953, 1961, 1963, 1965, 1971, 1968, 1969, 1970, 1973,
-     1976, 1981, 1977, 1978, 1984, 1979, 1988, 1982, 1998, 1992,
-     1994, 3503, 2005, 2003, 2011, 2008, 2007, 2015, 2009, 2016,
-     3503, 3503, 2018, 2017, 2020, 2023, 2029, 2028, 2031, 3503,
-     2032, 2033, 2034, 2035, 2036, 2045, 2043, 2046, 2048, 2050,
-     2051, 2053, 2055, 2056, 2062, 2059, 2060, 2063, 2073, 2074,
-
-     2080, 3503, 2076, 2082, 2083, 2084, 2087, 2086, 2088, 2092,
-     2090, 2091, 2093, 2101, 2107, 2094, 2104, 2105, 2110, 2106,
-     2114, 2117, 2118, 2124, 2127, 3503, 2133, 2120, 2134, 2121,
-     2132, 2135, 2142, 2139, 2140, 2141, 2143, 2145, 2144, 2148,
-     2149, 2154, 2150, 3503, 2157, 2168, 2156, 2162, 2164, 2172,
-     2176, 2174, 2178, 3503, 2179, 2185, 2181, 2182, 2188, 2187,
-     2190, 2193, 2191, 2196, 2192, 2203, 2199, 2197, 2207, 2205,
-     2209, 2210, 2212, 2213, 2227, 2219, 2232, 2216, 2224, 2234,
-     2240, 2246, 2247, 2233, 2236, 2249, 2243, 2250, 2251, 2252,
-     2258, 2256, 2262, 2260, 3503, 2261, 2265, 2268, 2270, 2271,
-
-     2273, 2275, 2276, 2274, 3503, 2281, 3503, 2284, 3503, 2285,
-     2288, 2289, 2290, 2292, 2293, 2294, 2295, 2306, 2302, 3503,
-     2303, 2305, 2308, 2311, 3503, 2314, 3503, 3503, 2307, 2318,
-     2324, 2321, 2325, 2068, 2328, 3503, 2214, 2329, 2330, 2333,
-     2334, 2335, 2336, 2339, 2337, 2340, 2341, 3503, 2345, 2344,
-     2353, 2354, 3503, 2343, 2359, 2356, 2362, 2364, 2365, 2368,
-     2369, 2372, 2379, 2375, 2376, 3503, 2377, 2381, 2386, 2388,
-     2378, 2383, 2399, 2397, 2398, 2401, 2405, 2404, 2407, 2408,
-     3503, 2410, 2418, 3503, 2409, 2391, 2412, 3503, 2419, 3503,
-     2421, 2424, 2426, 2429, 2431, 2432, 2434, 2435, 2436, 2437,
-
-     2443, 2445, 2447, 2446, 3503, 3503, 2449, 2450, 2453, 2457,
-     2460, 2461, 2462, 2464, 3503, 2465, 2468, 2469, 2470, 2471,
-     2475, 2478, 2481, 2482, 2474, 2483, 2477, 2487, 3503, 2484,
-     2491, 2495, 2496, 2497, 2498, 3503, 2500, 2501, 2505, 2502,
-     2508, 2510, 2513, 2523, 2520, 2525, 2527, 2529, 2530, 2532,
-     2535, 2536, 3503, 2537, 2539, 2540, 2544, 2545, 2541, 2548,
-     2552, 2557, 2546, 2550, 2565, 3503, 2554, 2558, 2560, 2562,
-     2571, 2567, 2573, 2576, 2577, 2579, 2580, 2582, 2583, 2584,
-     2585, 2589, 2590, 2591, 2595, 2593, 2601, 2599, 3503, 2598,
-     3503, 2610, 2611, 2614, 2615, 3503, 2613, 2617, 3503, 2620,
-
-     3503, 2622, 2629, 2621, 2631, 3503, 2636, 2623, 2638, 2633,
-     2640, 2627, 2642, 3503, 2644, 2647, 2652, 2653, 2649, 2656,
-     2655, 2657, 2660, 2666, 2662, 3503, 2663, 2667, 2676, 2673,
-     2678, 3503, 3503, 2674, 3503, 3503, 3503, 2683, 3503, 3503,
-     2684, 2686, 3503, 2688, 3503, 2695, 2691, 2693, 2694, 2696,
-     3503, 2698, 2700, 3503, 2697, 2707, 2703, 2704, 3503, 2712,
-     3503, 2708, 2715, 2714, 2718, 2725, 2727, 2730, 2720, 2722,
-     2731, 2733, 2734, 2736, 2735, 2738, 2739, 2742, 2744, 2747,
-     2749, 2751, 2752, 2750, 2753, 2754, 2757, 2762, 3503, 3503,
-     2763, 2766, 2767, 2771, 2769, 2774, 2775, 2776, 3503, 2780,
-
-     2781, 2785, 2782, 2786, 2787, 2795, 2788, 2799, 2801, 2800,
-     2802, 2803, 2806, 3503, 2808, 3503, 3503, 2809, 2810, 2815,
-     2816, 2812, 2819, 3503, 2820, 2821, 2833, 2824, 3503, 2839,
-     2828, 2841, 2843, 3503, 3503, 3503, 2844, 2834, 2846, 2848,
-     2849, 2850, 2851, 3503, 2852, 2857, 2858, 2860, 2865, 2871,
-     2866, 2868, 2877, 2879, 3503, 3503, 2885, 2882, 2883, 2872,
-     2874, 2884, 2890, 2887, 3503, 2891, 2893, 2896, 2897, 2898,
-     2900, 2903, 3503, 2902, 2904, 2908, 2914, 2910, 2916, 2917,
-     2918, 3503, 2920, 2922, 2926, 2928, 2931, 3503, 2932, 3503,
-     2937, 3503, 3503, 2934, 2938, 2940, 2945, 2948, 2950, 2941,
-
-     2951, 2957, 2956, 2958, 3503, 3503, 2960, 2968, 3503, 3503,
-     2953, 2964, 2961, 2967, 2972, 2974, 2975, 2976, 2977, 2980,
-     2982, 2985, 2988, 2978, 2989, 2990, 2991, 2992, 3503, 2997,
-     3503, 2995, 3003, 3004, 3005, 3006, 3010, 3007, 3016, 3503,
-     3017, 3018, 3019, 3503, 3503, 3503, 3022, 3023, 3028, 3503,
-     3029, 3031, 3032, 3033, 3036, 3035, 3043, 3039, 3046, 3503,
-     3042, 3047, 3049, 3051, 3050, 3056, 3057, 3058, 3060, 3063,
-     3068, 3069, 3071, 3073, 3503, 3075, 3077, 3079, 3503, 3080,
-     3082, 3083, 3085, 3087, 3090, 3091, 3092, 3094, 3095, 3098,
-     3099, 3100, 3106, 3108, 3111, 3503, 3114, 3115, 3503, 3116,
-
-     3117, 3122, 3124, 3129, 3133, 3130, 3503, 3137, 3503, 3138,
-     3503, 3141, 3142, 3143, 3145, 3146, 3503, 3503, 3147, 3149,
-     3153, 3503, 3154, 3150, 3157, 3160, 3161, 3163, 3164, 3503,
-     3503, 3165, 3167, 3171, 3168, 3503, 3503, 3503, 3174, 3503,
-     3177, 3503, 3183, 3180, 3503, 3187, 3188, 3503, 3189, 3191,
-     3193, 3195, 3196, 3197, 3199, 3200, 3198, 3202, 3503, 3503,
-     3209, 3503, 3213, 3503, 3215, 3503, 3210, 3223, 3503, 3503,
-     3221, 3219, 3225, 3226, 3228, 3227, 3503, 3503, 3503, 3503,
-     3231, 3229, 3234, 3232, 3236, 3237, 3238, 3240, 3242, 3239,
-     3252, 3256, 3244, 3250, 3264, 3258, 3503, 3260, 3262, 3271,
-
-     3273, 3270, 3267, 3274, 3276, 3277, 3278, 3279, 3282, 3283,
-     3289, 3285, 3286, 3295, 3297, 3298, 3299, 3310, 3307, 3308,
-     3309, 3311, 3317, 3313, 3314, 3503, 3316, 3319, 3320, 3322,
-     3323, 3326, 3325, 3333, 3336, 3340, 3341, 3342, 3347, 3343,
-     3349, 3351, 3352, 3353, 3503, 3354, 3355, 3358, 3362, 3363,
-     3365, 3366, 3367, 3374, 3369, 3379, 3383, 3380, 3503, 3386,
-     3503, 3503, 3388, 3371, 3375, 3396, 3398, 3503, 3503, 3503,
-     3411, 3418, 3425, 3432, 3439,   94, 3446, 3453, 3460, 3467,
-     3474, 3481, 3488, 3495
+      610,  616,  631,  620,  618,  623,  632,  624,  628,  641,
+      626,  637,  625,  638,  659,  642,  652,  660,  656,  658,
+      667,  661,  668,  669,  673,  674,  671,  670,  677,  680,
+
+      683,  690,  678,  694,  698,  699,  696,  706,  704,  697,
+      711,  713,  701,  714,  715,  716,  717,  719,  721,  725,
+     3522,  728,  730,  731,  732,  733,  734, 3522,  735,  736,
+      738,  745,  748,  744,  750,  759,  743,  747,  760,  762,
+      763,  765,  764,  767,  787,  771,  773,  768,  777,  776,
+      774,  789,  775,  796,  783,  799,  801,  785,  802,  805,
+      806,  807,  808,  814,  817,  809,  819,  820,  822,  828,
+      829,  831,  832,  825,  836,  834,  847,  838,  845,  849,
+      857,  855,  859,  861,  860,  862,  864,  870,  869,  866,
+      863,  877,  874,  875,  882,  886,  878,  884,  893,  891,
+
+      892,  876,  899,  897,  901,  903,  905,  912,  908,  913,
+      915,  920,  909,  921,  928,  924,  930,  926,  937,  934,
+      938,  944,  940,  942,  953,  941,  946,  954,  950,  955,
+      957,  958,  959,  961,  962,  964,  966,  972,  969,  971,
+      974,  979,  911,  980,  984,  986,  989,  679,  987,  991,
+      994,  996,  993,  997, 1003,  995, 1008, 1007, 1014, 1006,
+     1015, 1017, 3522, 1025, 1019, 1021, 1022, 1028, 1029, 1030,
+     1056, 3522, 1031, 3522, 3522, 1032, 3522, 3522, 1034, 1035,
+     1038, 1044, 1079, 1045, 1048, 1037, 1051, 1053, 1057, 1058,
+     1067, 1069, 1060, 1071, 1073, 1074, 1077, 1085, 1087, 1084,
+
+     1072, 1095, 1102, 1108, 1109, 1107, 1105, 1106, 1112, 1113,
+     1116, 1115, 1117, 1119, 1124, 1128, 1125, 3522, 1126, 1129,
+     1127, 1133, 1139, 1134, 1142, 3522, 1137, 1141, 1143, 1148,
+     1150, 1151, 1152, 1155, 1156, 1154, 1157, 1162, 1163, 1178,
+     1160, 1165, 1175, 1186, 1183, 1182, 1184, 1185, 1167, 1191,
+     1194, 1195, 1193, 1197, 1204, 1200, 1203, 1206, 1207, 1208,
+     1209, 1213, 1215, 1214, 1238, 1217, 1216, 1219, 1218, 1225,
+     1226, 1232, 1223, 1224, 1245, 1248, 1242, 1236, 1251, 1252,
+     1266, 1262, 1255, 1264, 1271, 1272, 1273, 1275, 1278, 1276,
+     1277, 1282, 1279, 3522, 1292, 1291, 1289, 1293, 1295, 1297,
+
+     1298, 1301, 1299, 1302, 1303, 1305, 1304, 1317, 3522, 1309,
+     1311, 1315, 1320, 1321, 1322, 1324, 1331, 1339, 1335, 3522,
+     1341, 1342, 1344, 1337, 1338, 1345, 1349, 1350, 1352, 1354,
+     1356, 1357, 1355, 1362, 1365, 1366, 1367, 1374, 1370, 1372,
+     1376, 1379, 1378, 1381, 3522, 1380, 1384, 1382, 1389, 1395,
+     1399, 1397, 1403, 1400, 1404, 1405, 1410, 1407, 1411, 1408,
+     1409, 3522,  158, 1414, 1415, 1413, 1421, 1429, 1426, 1432,
+     1422, 1435, 1438, 1439, 1423, 1440, 1441, 1445, 1446, 1447,
+     1448, 1450, 1452, 1456, 1458, 1459, 1461, 1465, 1466, 1467,
+     1470, 1469, 1473, 1476, 1478, 1480, 1482, 1484, 1481, 1483,
+
+     1487, 1491, 1492, 1490, 1494, 3522, 1506, 1498, 1508, 1499,
+     1509, 1518, 1502, 1522, 1511, 1520, 1530, 1526, 1528, 1531,
+     1534, 1532, 1537, 1538, 1539, 1545, 1548, 1544, 1546, 1558,
+     1553, 1551, 3522, 1555, 1556, 1547, 1560, 1580, 1563, 1564,
+     1573, 1568, 1566, 1561, 1588, 1570, 1590, 3522, 1591, 1592,
+     1593, 1596, 1598, 1600, 1601, 1603, 1604, 1605, 1607, 1608,
+     1616, 1609, 1614, 1619, 3522, 1628, 1630, 1629, 1636, 1632,
+     1621, 1611, 1638, 1633, 1635, 1644, 1642, 1643, 1645, 1646,
+     1647, 1649, 1650, 1652, 1654, 1651, 1655, 3522, 1666, 1667,
+     1671, 1678, 1668, 1677, 1681, 1673, 1683, 1686, 1687, 1688,
+
+     1689, 1690, 1691, 1696, 1692, 1694, 1698, 1700, 1697, 1699,
+     1717, 1701, 1703, 1709, 1719, 1720, 1722, 1723, 1730, 1732,
+     1735, 3522, 1738, 1729, 1739, 1731, 1733, 1751, 1741, 1742,
+     1748, 1749, 1753, 1754, 1762, 1755, 1758, 1759, 1763, 1756,
+     1764, 1765, 1768, 1773, 1771, 1779, 1786, 1781, 1787, 1788,
+     1789, 3522, 1792, 1798, 1799, 1802, 1793, 1805, 3522, 1803,
+     3522, 1809, 1810, 1820, 3522, 1817, 3522, 1819, 3522, 1822,
+     1823, 1826, 1807, 1828, 1829, 1830, 1836, 1827, 1837, 1831,
+     1833, 1839, 1840, 1846, 3522, 1848, 1849, 1854, 1852, 1850,
+     1856, 1858, 1860, 1862, 1868, 1874, 1861, 1877, 1865, 1883,
+
+     1878, 3522, 1871, 1885, 1875, 1888, 1891, 1898, 1896, 1890,
+     1900, 1889, 1903, 1907, 1910, 1904, 1912, 1913, 1915, 1921,
+     1917, 1918, 1925, 1927, 1919, 1926, 1928, 1929, 1930, 1934,
+     1941, 1935, 1938, 1939, 3522, 1944, 1950, 1945, 1954, 1951,
+     3522, 3522, 1957, 1959, 1964, 1961, 1970, 1953, 1971, 1973,
+     1981, 1975, 1968, 1978, 1984, 1985, 1987, 1986, 1989, 1990,
+     1992, 1994, 1995, 1996, 2005, 2000, 1997, 3522, 2016, 2007,
+     2018, 2017, 2019, 2026, 2022, 2024, 3522, 3522, 2028, 2029,
+     2030, 2031, 2037, 2038, 2034, 3522, 2040, 2041, 2044, 2046,
+     2053, 2047, 2043, 2055, 2062, 2057, 2065, 2063, 2064, 2059,
+
+     2073, 2067, 2069, 2074, 2082, 2083, 2085, 3522, 2088, 2090,
+     2091, 2093, 2092, 2094, 2095, 2099, 2096, 2100, 2102, 2108,
+     2114, 2111, 2112, 2113, 2116, 2119, 2122, 2124, 2125, 2135,
+     2134, 3522, 2141, 2126, 2143, 2127, 2146, 2147, 2154, 2150,
+     2140, 2151, 2153, 2128, 2155, 2157, 2158, 2165, 2159, 3522,
+     2161, 2168, 2172, 2174, 2177, 2175, 2182, 2178, 2180, 3522,
+     2185, 2193, 2189, 2191, 2197, 2199, 2203, 2195, 2205, 2206,
+     2208, 2207, 2210, 2211, 2212, 2215, 2217, 2218, 2220, 2222,
+     2221, 2224, 2225, 2234, 2231, 2239, 2245, 2243, 2249, 2251,
+     2247, 2250, 2259, 2255, 2256, 2257, 2258, 2266, 2263, 2270,
+
+     2264, 3522, 2268, 2274, 2278, 2280, 2272, 2281, 2284, 2282,
+     2286, 3522, 2291, 3522, 2290, 3522, 2293, 2298, 2294, 2299,
+     2300, 2301, 2303, 2304, 2311, 2310, 3522, 2315, 2312, 2313,
+     2317, 3522, 2329, 3522, 3522, 2319, 2321, 2336, 2323, 2332,
+     2337, 2342, 3522, 2338, 2343, 2346, 2344, 2348, 2349, 2350,
+     2352, 2351, 2354, 2355, 3522, 2360, 2356, 2359, 2367, 3522,
+     2357, 2373, 2368, 2378, 2379, 2380, 2382, 2370, 2384, 2391,
+     2390, 2389, 2392, 3522, 2393, 2396, 2398, 2405, 2399, 2401,
+     2408, 2411, 2407, 2413, 2415, 2417, 2420, 2418, 3522, 2423,
+     2426, 3522, 2422, 2432, 2433, 3522, 2434, 3522, 2436, 2438,
+
+     2437, 2439, 2444, 2441, 2446, 2447, 2451, 2454, 2456, 2458,
+     2460, 2461, 3522, 3522, 2464, 2465, 2471, 2472, 2467, 2475,
+     2477, 2484, 3522, 2476, 2480, 2486, 2487, 2489, 2478, 2488,
+     2491, 2495, 2492, 2498, 2497, 2500, 3522, 2505, 2506, 2508,
+     2510, 2512, 2511, 3522, 2514, 2515, 2516, 2520, 2522, 2525,
+     2537, 2539, 2533, 2541, 2543, 2545, 2547, 2549, 2551, 2552,
+     3522, 2553, 2555, 2556, 2560, 2561, 2557, 2562, 2567, 2570,
+     2572, 2573, 2574, 2577, 3522, 2564, 2578, 2580, 2517, 2582,
+     2585, 2587, 2589, 2596, 2590, 2594, 2598, 2592, 2600, 2602,
+     2605, 2607, 2609, 2611, 2612, 2619, 2621, 3522, 2608, 3522,
+
+     2624, 2629, 2632, 2634, 3522, 2616, 2636, 3522, 2637, 3522,
+     2638, 2639, 2640, 2647, 3522, 2651, 2642, 2652, 2654, 2648,
+     2655, 2657, 3522, 2659, 2661, 2668, 2665, 2669, 2671, 2672,
+     2673, 2675, 2682, 2678, 3522, 2679, 2681, 2688, 2690, 2692,
+     3522, 3522, 2696, 3522, 3522, 3522, 2700, 3522, 3522, 2701,
+     2703, 3522, 2705, 3522, 2712, 2708, 2710, 2691, 2711, 3522,
+     2714, 2715, 2718, 3522, 2719, 2725, 2721, 2722, 3522, 2724,
+     3522, 2729, 2730, 2731, 2735, 2742, 2744, 2747, 2736, 2738,
+     2749, 2750, 2751, 2752, 2753, 2755, 2758, 2759, 2760, 2764,
+     2765, 2768, 2766, 2769, 2770, 2771, 2779, 2787, 3522, 3522,
+
+     2772, 2781, 2774, 2783, 2788, 2790, 2793, 2794, 3522, 2801,
+     2798, 2802, 2804, 2805, 2806, 2812, 2808, 2814, 2820, 2816,
+     2817, 2818, 2821, 3522, 2825, 3522, 3522, 2822, 2826, 2831,
+     2833, 2835, 2839, 2836, 3522, 2843, 2845, 2847, 2850, 3522,
+     2852, 2854, 2856, 2860, 3522, 3522, 3522, 2861, 2857, 2865,
+     2864, 2866, 2867, 2868, 3522, 2870, 2872, 2875, 2878, 2882,
+     2884, 2892, 2889, 2891, 2896, 3522, 3522, 2902, 2899, 2900,
+     2898, 2901, 2904, 2906, 2908, 3522, 2910, 2909, 2915, 2914,
+     2917, 2918, 2921, 3522, 2922, 2924, 2929, 2932, 2925, 2936,
+     2937, 2933, 3522, 2940, 2939, 3522, 2942, 2943, 2947, 3522,
+
+     2950, 3522, 2954, 3522, 3522, 2955, 2958, 2960, 2965, 2967,
+     2969, 2956, 2970, 2976, 2973, 2977, 3522, 3522, 2979, 2983,
+     3522, 3522, 2980, 2982, 2986, 2988, 2989, 2991, 2992, 2993,
+     2994, 2995, 2999, 3002, 3005, 3006, 3007, 3012, 3009, 3014,
+     3522, 3016, 3522, 3017, 3023, 3020, 3027, 3015, 3032, 3025,
+     3028, 3522, 3039, 3040, 3041, 3522, 3522, 3522, 3042, 3043,
+     3045, 3522, 3046, 3049, 3050, 3053, 3055, 3057, 3061, 3059,
+     3063, 3522, 3064, 3065, 3068, 3069, 3072, 3071, 3076, 3077,
+     3086, 3078, 3089, 3079, 3093, 3094, 3522, 3097, 3082, 3090,
+     3522, 3100, 3103, 3105, 3107, 3109, 3110, 3111, 3112, 3115,
+
+     3116, 3118, 3119, 3120, 3126, 3125, 3131, 3522, 3134, 3122,
+     3522, 3135, 3136, 3144, 3146, 3148, 3152, 3153, 3522, 3155,
+     3522, 3156, 3522, 3160, 3161, 3162, 3164, 3165, 3522, 3522,
+     3166, 3168, 3172, 3522, 3173, 3169, 3176, 3179, 3180, 3182,
+     3183, 3522, 3522, 3184, 3186, 3190, 3187, 3522, 3522, 3522,
+     3193, 3522, 3196, 3522, 3202, 3199, 3522, 3206, 3207, 3522,
+     3208, 3210, 3212, 3214, 3215, 3216, 3218, 3219, 3217, 3221,
+     3522, 3522, 3228, 3522, 3232, 3522, 3234, 3522, 3229, 3242,
+     3522, 3522, 3240, 3238, 3244, 3245, 3247, 3246, 3522, 3522,
+     3522, 3522, 3250, 3248, 3253, 3251, 3255, 3256, 3257, 3259,
+
+     3261, 3258, 3271, 3275, 3263, 3269, 3283, 3277, 3522, 3279,
+     3281, 3290, 3292, 3289, 3286, 3293, 3295, 3296, 3297, 3298,
+     3301, 3302, 3308, 3304, 3305, 3314, 3316, 3317, 3318, 3329,
+     3326, 3327, 3328, 3330, 3336, 3332, 3333, 3522, 3335, 3338,
+     3339, 3341, 3342, 3345, 3344, 3352, 3355, 3359, 3360, 3361,
+     3366, 3362, 3368, 3370, 3371, 3372, 3522, 3373, 3374, 3377,
+     3381, 3382, 3384, 3385, 3386, 3393, 3388, 3398, 3402, 3399,
+     3522, 3405, 3522, 3522, 3407, 3390, 3394, 3415, 3417, 3522,
+     3522, 3522, 3430, 3437, 3444, 3451, 3458,   94, 3465, 3472,
+     3479, 3486, 3493, 3500, 3507, 3514
+
     } ;
 
-static yyconst flex_int16_t yy_def[1785] =
+static yyconst flex_int16_t yy_def[1797] =
     {   0,
-     1770,    1, 1771, 1771, 1772, 1772, 1773, 1773, 1774, 1774,
-     1775, 1775, 1770, 1776, 1770, 1770, 1770, 1770, 1777, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1778, 1770, 1770, 1770, 1778, 1779, 1770, 1770, 1770, 1779,
-     1780, 1770, 1770, 1770, 1770, 1780, 1781, 1770, 1770, 1770,
-     1781, 1782, 1770, 1783, 1770, 1782, 1782, 1776, 1776, 1770,
-     1784, 1777, 1784, 1777, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1778, 1778, 1779, 1779,
-     1780, 1780, 1770, 1781, 1781, 1782, 1782, 1783, 1783, 1782,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1782, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1782, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1782, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1782, 1776, 1776, 1776, 1776, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1770, 1770, 1776, 1770, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1782, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1782, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1770, 1776, 1776, 1776, 1770,
-     1776, 1770, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1776, 1776, 1770, 1770, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1770, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1770, 1776, 1770, 1776, 1770, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1776, 1770, 1776, 1770, 1770, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776,
-     1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1770, 1776, 1776, 1770, 1776, 1776, 1776, 1770, 1776, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1770, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776,
-     1770, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1770, 1776,
-
-     1770, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1770, 1770, 1776, 1770, 1770, 1770, 1776, 1770, 1770,
-     1776, 1776, 1770, 1776, 1770, 1776, 1776, 1776, 1776, 1776,
-     1770, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1770, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1770, 1770, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1770, 1776,
-     1776, 1776, 1776, 1770, 1770, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1770, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1770, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1770,
-     1776, 1770, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1770, 1770, 1776, 1776, 1770, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1770, 1770, 1770, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1770, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1770, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1770, 1776,
-     1770, 1776, 1776, 1776, 1776, 1776, 1770, 1770, 1776, 1776,
-     1776, 1770, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770,
-     1770, 1776, 1776, 1776, 1776, 1770, 1770, 1770, 1776, 1770,
-     1776, 1770, 1776, 1776, 1770, 1776, 1776, 1770, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1770,
-     1776, 1770, 1776, 1770, 1776, 1770, 1776, 1776, 1770, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1770, 1770, 1770, 1770,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776,
-
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1770, 1776, 1776, 1776, 1776, 1776,
-     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1770, 1776,
-     1770, 1770, 1776, 1776, 1776, 1776, 1776, 1770, 1770,    0,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770
+     1782,    1, 1783, 1783, 1784, 1784, 1785, 1785, 1786, 1786,
+     1787, 1787, 1782, 1788, 1782, 1782, 1782, 1782, 1789, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1790, 1782, 1782, 1782, 1790, 1791, 1782, 1782, 1782, 1791,
+     1792, 1782, 1782, 1782, 1782, 1792, 1793, 1782, 1782, 1782,
+     1793, 1794, 1782, 1795, 1782, 1794, 1794, 1788, 1788, 1782,
+     1796, 1789, 1796, 1789, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1790, 1790, 1791, 1791,
+     1792, 1792, 1782, 1793, 1793, 1794, 1794, 1795, 1795, 1794,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1794, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1794, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1782, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1794, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1794, 1788, 1788, 1788,
+     1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1782, 1782, 1788, 1782, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1794, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1794, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788,
+     1782, 1788, 1788, 1788, 1782, 1788, 1782, 1788, 1782, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1782, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1782, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1782, 1788, 1782, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788,
+     1788, 1782, 1788, 1782, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1782,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788,
+     1788, 1782, 1788, 1788, 1788, 1782, 1788, 1782, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1782, 1782, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788,
+     1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1782,
+
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1782, 1788, 1782,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1782, 1782, 1788, 1782, 1782, 1782, 1788, 1782, 1782, 1788,
+     1788, 1782, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1782,
+     1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1782, 1788,
+     1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1782,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1782, 1788, 1782, 1782, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1782,
+     1788, 1788, 1788, 1788, 1782, 1782, 1782, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1782, 1782, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1782, 1788, 1788, 1782, 1788, 1788, 1788, 1782,
+
+     1788, 1782, 1788, 1782, 1782, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1782, 1782, 1788, 1788,
+     1782, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1782, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1788, 1788, 1782, 1782, 1782, 1788, 1788,
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788,
+     1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788,
+     1782, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1782, 1782,
+     1788, 1788, 1788, 1782, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1782, 1782, 1788, 1788, 1788, 1788, 1782, 1782, 1782,
+     1788, 1782, 1788, 1782, 1788, 1788, 1782, 1788, 1788, 1782,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1782, 1782, 1788, 1782, 1788, 1782, 1788, 1782, 1788, 1788,
+     1782, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1782,
+     1782, 1782, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1782, 1788, 1788, 1788,
+     1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+     1782, 1788, 1782, 1782, 1788, 1788, 1788, 1788, 1788, 1782,
+     1782,    0, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782
+
     } ;
 
-static yyconst flex_int16_t yy_nxt[3543] =
+static yyconst flex_int16_t yy_nxt[3562] =
     {   0,
        14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
        14,   18,   20,   21,   14,   22,   23,   24,   25,   14,
@@ -1080,331 +1086,333 @@ static yyconst flex_int16_t yy_nxt[3543] =
 
        69,  331,   69,  338,  337,  339,  333,   69,   69,   69,
        69,   69,  345,   69,   69,  334,  336,   69,  344,  346,
-       69,  340,   69,   69,  341,  351,  349,  342,   69,  343,
-       69,  347,  137,  348,  350,   69,   69,  353,   69,  362,
-       69,  352,   69,  361,  354,  355,  367,   69,   69,   69,
-      365,   69,   69,  363,  356,  364,  357,  358,  359,   69,
-      366,  360,   69,  444,  370,   69,  372,  371,  369,  375,
-      368,   69,   69,   69,   69,   69,  374,  377,   69,  373,
-      128,  376,  378,  379,   69,   69,   69,   69,  384,   69,
-       69,  381,   69,  380,  382,   69,  385,   69,  383,  388,
-
-       69,   69,  391,  387,  390,  386,   69,  395,  394,  393,
-      392,   69,  389,   69,   69,  396,   69,  397,   69,  398,
-       69,  400,  401,   69,   69,   69,   69,   69,   69,  406,
-      405,  399,   69,  403,   69,   69,  409,  404,   69,  407,
-       69,  410,   69,   69,  402,   69,   69,   69,   69,   69,
-      412,  419,  413,  408,   69,   69,   69,   69,  415,  411,
-       69,   69,  421,  418,  420,  414,  423,  416,  417,  422,
-       69,   69,  424,   69,   69,   69,   69,  427,   69,   69,
-      429,   69,  425,  439,   69,   69,  137,  441,   69,  428,
-      455,  426,  430,  440,   69,  438,   69,  431,   69,  432,
-
-       69,  437,   69,  443,  433,  442,  434,   69,  445,  446,
-       69,  448,  447,   69,  435,   69,   69,   69,   69,   69,
-      451,  456,   69,   69,  436,  452,   69,   69,   69,  449,
-       69,  457,   69,  454,   69,  450,  453,  464,  460,  462,
-      458,  459,  461,   69,  463,   69,   69,   69,  469,  466,
-       69,   69,  470,   69,  472,   69,  473,   69,  475,   69,
-      465,  137,  474,  467,  471,  477,  468,   69,  476,   69,
-       69,  478,   69,   69,   69,  481,   69,  479,  480,   69,
-       69,  483,  485,  482,   69,   69,   69,   69,   69,  486,
-       69,  488,   69,  484,   69,  491,  489,  494,   69,  487,
-
-      490,   69,   69,  500,  492,   69,  493,  495,  496,   69,
-       69,   69,   69,  497,  504,  499,  501,  502,   69,   69,
-       69,  506,   69,   69,  503,  507,  505,   69,  508,   69,
-       69,  511,   69,  513,   69,  498,   69,  512,   69,  514,
-       69,   69,  515,  510,  519,  509,  516,   69,   69,   69,
-      520,  517,   69,  518,  523,  521,   69,   69,  524,   69,
-       69,   69,  525,  527,   69,   69,   69,  526,   69,   69,
-      522,   69,  532,   69,  528,  529,   69,  537,  533,   69,
-      539,  534,   69,  530,   69,  531,   69,   69,  536,  535,
-      540,   69,   69,   69,   69,  538,  542,   69,  541,   69,
-
-      543,  546,  547,   69,  549,   69,  545,   69,   69,   69,
-      548,  544,  550,   69,  137,  552,   69,   69,  553,  555,
-      556,   69,   69,  551,   69,  557,   69,  554,  562,   69,
-      559,  561,   69,   69,   69,   69,  563,  558,  560,   69,
-       69,   69,  565,  566,  567,   69,  564,   69,   69,   69,
-       69,  579,  578,  577,  576,  574,   69,   69,  575,   69,
-       69,   69,  587,  590,  568,   69,  592,  588,  591,   69,
-      569,   69,  593,   69,  570,  589,  594,  571,   69,  595,
-       69,   69,   69,  596,  572,   69,  597,  573,   69,  580,
-      581,   69,  582,  599,   69,  583,   69,  602,   69,  601,
-
-      584,  598,   69,   69,  600,  609,  585,  586,  605,  603,
-      606,   69,  607,  608,   69,   69,  604,   69,   69,   69,
-      610,   69,   69,  611,   69,   69,   69,  612,  619,  614,
-      617,   69,  615,   69,  618,   69,   69,   69,   69,  613,
-       69,  616,   69,  623,   69,  621,  622,   69,  625,   69,
-       69,   69,  624,  627,  620,   69,  630,  626,   69,   69,
-       69,  628,   69,   69,   69,  629,  636,   69,   69,  635,
-      631,   69,   69,   69,   69,  632,  639,  641,  646,  634,
-      633,  637,  640,  638,  644,  645,   69,  643,   69,   69,
-       69,   69,  642,   69,   69,  651,  649,  652,   69,   69,
-
-      648,  653,   69,   69,  656,  647,   69,  658,   69,   69,
-      659,  137,   69,   69,  650,   69,  655,  654,   69,  661,
-       69,   69,   69,   69,   69,   69,  657,  660,  672,   69,
-       69,   69,  662,   69,  664,  676,   69,  673,  675,   69,
-      679,  665,  663,   69,  680,  677,  666,  678,  667,   69,
-      674,   69,  668,   69,  669,   69,  681,  688,  683,  670,
-      685,   69,   69,  684,  671,   69,  682,  687,   69,  686,
-       69,  689,   69,  694,   69,   69,  690,  693,  691,   69,
-      697,   69,  699,   69,   69,   69,  695,  696,  698,  702,
-       69,   69,   69,   69,  704,  700,  692,  703,   69,   69,
-
-       69,  705,   69,  701,  706,  707,   69,  708,   69,   69,
-      709,   69,   69,   69,  713,  711,  710,   69,  717,   69,
-       69,   69,  716,   69,   69,   69,  715,  712,   69,  721,
-      722,  714,   69,  723,  727,  720,  718,  719,   69,  725,
-      726,  724,  728,   69,   69,   69,  729,   69,   69,  730,
-       69,   69,  731,  732,   69,   69,   69,  733,  737,   69,
-       69,   69,   69,   69,  734,  739,  735,  740,   69,  741,
-       69,  744,   69,   69,  736,  742,  743,  738,   69,  746,
-       69,  747,  745,   69,   69,   69,  748,   69,   69,   69,
-      752,   69,  753,   69,  755,   69,  758,  751,   69,  749,
-
-      756,   69,  759,  750,   69,  757,  754,   69,  761,   69,
-      760,   69,  765,   69,   69,   69,   69,  762,  763,   69,
-       69,   69,   69,  764,  767,  773,   69,  774,   69,  792,
-       69,  766,   69,  768,  770,   69,  771,   69,   69,   69,
-      775,   69,  772,  776,  769,   69,  779,  781,   69,   69,
-       69,  777,   69,  778,  784,   69,  786,   69,   69,  788,
-      780,   69,   69,  782,   69,   69,  789,   69,  783,  790,
-      785,   69,   69,   69,   69,   69,  794,  787,  791,  795,
-      797,   69,  800,  793,   69,  799,   69,   69,   69,   69,
-      796,  798,   69,   69,  803,   69,   69,   69,   69,  801,
-
-      804,  802,  808,   69,  812,   69,   69,  811,  805,   69,
-      809,  807,   69,  806,  814,   69,   69,  810,   69,  813,
-      816,  817,  135,  815,   69,  818,   69,   69,  820,  821,
-      823,  819,  830,  822,   69,   69,   69,  824,   69,  825,
-       69,  827,   69,  826,   69,   69,   69,  832,  833,  829,
-       69,  828,   69,   69,   69,  834,   69,  841,  835,   69,
-      840,   69,   69,  831,   69,  836,  842,   69,   69,   69,
-      837,   69,  838,   69,  839,  846,  843,  845,   69,  847,
-       69,  848,  844,   69,   69,  851,  850,   69,  849,  854,
-       69,  852,  856,   69,   69,   69,   69,  857,   69,  855,
-
-      858,  860,   69,  862,   69,   69,  859,   69,  853,   69,
-      863,  864,   69,   69,  866,  867,  861,   69,  865,   69,
-      869,   69,  868,   69,  873,   69,   69,  871,  874,   69,
-      872,  870,   69,   69,  876,  877,   69,  875,   69,   69,
-      880,   69,   69,  883,  878,   69,   69,  879,   69,   69,
-       69,   69,  889,   69,   69,   69,   69,  887,  881,   69,
-      884,   69,   69,   69,  893,  882,  885,  895,  888,  886,
-      898,  896,   69,  890,  892,  897,   69,  901,  894,  891,
-      899,   69,  902,  900,   69,   69,   69,   69,  903,   69,
-       69,   69,   69,   69,   69,   69,  904,  908,  911,   69,
-
-       69,   69,   69,   69,   69,  905,   69,  919,  907,  909,
-       69,  918,   69,  910,  913,  906,  914,  912,  915,  916,
-      917,   69,   69,   69,   69,   69,  920,  923,  921,  924,
-      926,  922,  927,  928,   69,  929,   69,   69,   69,  930,
-       69,   69,   69,   69,  935,  925,  932,   69,  936,   69,
-      937,   69,   69,   69,  931,   69,  933,   69,   69,  943,
-       69,   69,  934,  942,   69,   69,  938,   69,   69,  133,
-       69,  939,   69,  951,  941,   69,   69,  944,   69,  940,
-      945,  949,  948,  953,  946,  950,  947,  952,   69,  955,
-       69,   69,  954,   69,   69,   69,  958,  962,   69,  956,
-
-      959,   69,   69,   69,  957,  966,  963,  964,   69,   69,
-       69,  967,  132,  960,  968,  961,   69,  969,  970,  971,
-       69,   69,  965,   69,  972,   69,   69,   69,  974,  973,
-       69,   69,   69,  976,  980,   69,  975,  978,   69,   69,
-      982,   69,   69,   69,  977,   69,  979,  985,   69,   69,
-       69,   69,   69,  984,  987,   69,  990,  991,  981,   69,
-       69,   69,   69,  983,  986,  989,  988,  997,   69,  994,
-      992,   69,  998,  996,   69, 1000,   69,   69,   69,  993,
-       69,  995, 1002,   69, 1003,   69, 1005,   69,  999,   69,
-     1001, 1011,   69,   69,   69,  130,   69, 1008, 1004, 1006,
-
-     1009,   69, 1013,   69,   69, 1017, 1012, 1016, 1014, 1007,
-       69,   69, 1010,   69, 1018,   69,   69, 1015,   69, 1023,
-       69,   69,   69, 1022,   69,   69, 1025, 1026,   69, 1019,
-     1027,   69,   69,   69, 1020,   69, 1021,   69,   69, 1034,
-     1028,   69,   69, 1024,   69,   69,  128, 1031, 1033, 1032,
-     1038, 1029, 1030,   69,   69,   69,   69,   69, 1035, 1044,
-       69, 1036, 1040, 1037,   69,   69, 1041, 1045, 1039, 1042,
-     1043,   69, 1047,   69, 1048,   69, 1046,   69, 1053, 1054,
-       69,   69,   69,   69, 1050,   69, 1052, 1051,   69,   69,
-       69,   69, 1049,   69,   69, 1056,   69, 1062,   69, 1065,
-
-       69, 1055, 1058, 1057,   69, 1059,   69, 1063, 1061, 1064,
-       69, 1066, 1071, 1068, 1060,   69, 1069,   69, 1073,   69,
-       69,   69, 1076,   69, 1070, 1067, 1074,   69,   69,   69,
-       69, 1078,   69, 1072, 1077,   69, 1084, 1079, 1080, 1075,
-       69,   69, 1081,   69,   69,   69,   69,   69,   69, 1088,
-     1082, 1089, 1090, 1091, 1083,   69, 1085,   69,   69, 1095,
-       69, 1086,   69,   69, 1087,   69, 1092,   69,   69, 1101,
-     1097,   69,   69, 1094,   69,   69, 1096, 1098, 1093, 1099,
-       69, 1104, 1235, 1102, 1105,   69,   69, 1100,   69, 1106,
-     1103, 1107,   69, 1109,   69,   69,   69, 1108,   69,   69,
-
-       69, 1111,   69,   69,   69,   69,   69, 1110, 1112, 1115,
-     1113, 1116, 1120,   69, 1121, 1114,   69,   69,   69,   69,
-     1119, 1125,   69, 1118, 1117, 1127,   69, 1122, 1128,   69,
-       69, 1130,   69,   69, 1129, 1123,   69, 1124, 1126,   69,
-     1132, 1134, 1131, 1136,   69,   69,   69,   69, 1137, 1138,
-     1133,   69,   69,   69,   69,   69,   69,   69, 1135, 1148,
-       69,   69,   69, 1139, 1140, 1141,   69, 1150,   69,   69,
-     1142, 1146, 1143, 1144,   69, 1145,   69, 1147, 1152, 1153,
-       69, 1155, 1151, 1154,   69, 1156,   69, 1149,   69, 1158,
-       69,   69, 1162,   69,   69, 1165, 1161,   69, 1166,   69,
-
-       69, 1164,   69,   69,   69,   69, 1160, 1167,   69,   69,
-     1157,   69, 1159, 1163, 1168,   69, 1171,   69, 1172,   69,
-     1175,   69,   69, 1169,   69,   69,   69, 1170,   69, 1173,
-     1179,   69, 1176, 1237, 1180, 1174,   69, 1178, 1181,   69,
-     1177, 1187, 1182, 1184,   69,   69,   69, 1183,   69, 1185,
-     1186, 1188,   69, 1189, 1191,   69, 1194, 1190,   69,   69,
-     1193,   69,   69,   69,   69, 1199, 1196, 1195,   69, 1201,
-       69, 1192,   69,   69,   69, 1197, 1203,   69, 1204, 1205,
-       69, 1206,   69,   69, 1202,   69,   69,   69,   69, 1198,
-     1200, 1208, 1209,   69, 1210, 1211,   69,   69, 1212, 1215,
-
-       69,   69,   69, 1207,   69,   69,   69,   69, 1213, 1214,
-     1220, 1217, 1221, 1222,   69,   69, 1224,   69,   69,   69,
-       69, 1216, 1218,   69, 1219, 1229,   69, 1225, 1223, 1227,
-       69, 1232, 1228,   69, 1230, 1226,   69,   69, 1234, 1236,
-       69,   69,   69, 1239, 1231,   69,   69,   69,   69,   69,
-     1233,   69,   69,   69, 1240,   69,   69,   69, 1249, 1242,
-     1243, 1238, 1248, 1244, 1245,   69,   69, 1241,   69, 1252,
-     1253,   69, 1246, 1247,   69, 1251,   69,   69, 1256, 1255,
-       69,   69, 1257, 1250,   69, 1258, 1261,   69,   69,   69,
-       69,   69, 1262,   69, 1254,   69, 1263, 1266,   69, 1259,
-
-       69, 1267, 1770,   69, 1260, 1268, 1270, 1265, 1264,   69,
-       69,   69, 1272,   69, 1271, 1269,   69,   69, 1276,   69,
-       69,   69,   69, 1282,   69, 1273, 1274, 1279, 1277, 1275,
-       69,   69, 1278,   69, 1281, 1280,   69, 1284,   69, 1285,
-     1283,   69, 1289,   69,   69, 1291,   69,   69,   69,   69,
-     1288, 1286, 1293, 1290, 1294,   69, 1296,   69,   69,   69,
-     1299,   69,   69, 1287, 1301,   69, 1292, 1297, 1295,   69,
-     1302, 1300,   69,   69,   69, 1306,   69,   69, 1298, 1305,
-       69,   69,   69,   69, 1303, 1308,   69,   69, 1311,   69,
-       69, 1304, 1314,   69,   69,   69,   69, 1310, 1315,   69,
-
-     1317, 1316, 1307,   69, 1309, 1312, 1313,   69,   69,   69,
-       69, 1326,   69,   69,   69, 1318, 1327,   69, 1319, 1320,
-       69, 1324,   69, 1331, 1332,   69, 1322, 1321, 1329, 1323,
-     1328, 1325,   69, 1330, 1333,   69, 1335,   69, 1336,   69,
-     1337,   69,   69, 1339,   69, 1334, 1340,   69,   69,   69,
-     1343,   69,   69,   69, 1342, 1345,   69,   69,   69, 1347,
-       69, 1338,   69, 1348,   69, 1349,   69, 1341, 1351,   69,
-       69, 1344,   69, 1352,   69, 1346, 1354,   69, 1358,   69,
-     1350, 1353, 1359,   69, 1361,   69, 1355, 1357,   69,   69,
-     1363,   69,   69, 1356,   69,   69,   69,   69, 1360, 1366,
-
-     1364,   69,   69,   69, 1365,   69, 1370,   69, 1375, 1368,
-       69,   69, 1372,   69, 1362, 1376, 1373, 1371, 1369, 1374,
-     1367, 1380,   69,   69, 1379,   69,   69,   69, 1381,   69,
-     1377, 1378,   69,   69,   69,   69, 1382, 1386, 1384,   69,
-     1383,   69, 1389,   69, 1385,   69, 1387, 1390,   69, 1391,
-       69, 1392,   69, 1388,   69, 1396,   69, 1393, 1395,   69,
-     1397,   69, 1398, 1399,   69,   69, 1394,   69,   69,   69,
-     1400, 1403,   69, 1406,   69,   69, 1770, 1405,   69,   69,
-     1407, 1401, 1402, 1410, 1409,   69,   69, 1413,   69, 1404,
-       69, 1408, 1412, 1411, 1414,   69,   69, 1416,   69, 1417,
-
-       69, 1415, 1418,   69, 1419,   69,   69,   69,   69,   69,
-       69, 1424,   69, 1422, 1426,   69,   69, 1770, 1425,   69,
-       69, 1420, 1423, 1429,   69, 1430,   69,   69, 1421, 1431,
-       69, 1428,   69, 1427,   69, 1433, 1434,   69, 1435,   69,
-     1432, 1436,   69,   69, 1437,   69,   69,   69,   69, 1444,
-       69,   69, 1438, 1442,   69, 1439,   69, 1440, 1441,   69,
-     1445,   69,   69,   69,   69,   69,   69, 1443, 1455,   69,
-     1453, 1454, 1448, 1456,   69,   69, 1447, 1450,   69,   69,
-     1446,   69, 1451,   69, 1452, 1449,   69,   69,   69, 1464,
-     1461, 1465,   69,   69,   69, 1457, 1458,   69,   69,   69,
-
-       69, 1459, 1466, 1460, 1467, 1463, 1462,   69, 1474, 1468,
-     1473,   69,   69,   69,   69,   69, 1469, 1470,   69, 1472,
-       69,   69,   69, 1471,   69, 1481, 1482,   69,   69, 1476,
-     1475,   69,   69,   69, 1477, 1485,   69, 1487, 1478, 1479,
-       69, 1480, 1484, 1483, 1488,   69,   69, 1486, 1770, 1489,
-     1490,   69, 1492,   69, 1493,   69,   69, 1494,   69, 1491,
-       69,   69,   69,   69,   69, 1497, 1498, 1496, 1495,   69,
-       69, 1500,   69, 1507, 1502, 1503, 1505,   69,   69, 1501,
-       69, 1499, 1506,   69,   69, 1508,   69, 1504, 1509,   69,
-     1510,   69, 1511, 1514,   69,   69,   69,   69, 1512,   69,
-
-     1513, 1515,   69,   69, 1516,   69, 1519, 1517,   69,   69,
-       69, 1518,   69, 1524,   69,   69,   69, 1770, 1522, 1523,
-       69, 1521,   69, 1520, 1525, 1529,   69, 1531,   69,   69,
-       69, 1530,   69, 1526,   69, 1533, 1527, 1532,   69, 1528,
-       69, 1534, 1536,   69,   69, 1539,   69, 1535, 1540,   69,
-       69, 1542,   69,   69, 1537, 1543, 1544,   69, 1538, 1545,
-       69, 1546,   69,   69, 1549,   69, 1541, 1550,   69,   69,
-       69, 1547,   69,   69, 1551, 1553,   69, 1548, 1552,   69,
-       69, 1556, 1554, 1555,   69, 1560,   69,   69,   69,   69,
-       69, 1557,   69, 1564,   69, 1565, 1562,   69, 1559, 1558,
-
-       69,   69,   69,   69,   69, 1567, 1561,   69, 1563,   69,
-     1568, 1570, 1573, 1566, 1575,   69,   69,   69,   69,   69,
-     1576, 1579,   69, 1571, 1572, 1574, 1577, 1569,   69,   69,
-       69,   69, 1580, 1578,   69,   69, 1586, 1581, 1582, 1585,
-       69,   69, 1583,   69,   69,   69, 1588,   69,   69, 1587,
-     1594,   69, 1589, 1592,   69,   69, 1584, 1596,   69,   69,
-     1599,   69,   69,   69, 1590, 1593, 1591, 1600,   69,   69,
-       69, 1601,   69, 1597, 1598,   69, 1595, 1605, 1604, 1607,
-       69,   69, 1609,   69, 1602,   69, 1611,   69, 1603,   69,
-     1610,   69,   69, 1614,   69,   69, 1617,   69, 1618,   69,
-
-     1608, 1606,   69,   69,   69, 1622,   69,   69, 1615, 1612,
-       69,   69,   69, 1627, 1613, 1620, 1625, 1616,   69, 1623,
-       69, 1619, 1630,   69, 1621, 1631,   69,   69,   69,   69,
-     1624, 1626, 1770, 1633,   69, 1636,   69, 1628, 1629, 1635,
-     1637,   69,   69, 1634, 1638,   69, 1632, 1639, 1640,   69,
-       69, 1641, 1642,   69,   69,   69, 1645,   69,   69,   69,
-     1648,   69,   69, 1646, 1644,   69,   69, 1647, 1643,   69,
-     1649, 1650,   69,   69, 1651,   69,   69,   69, 1659,   69,
-       69, 1657, 1660,   69, 1661, 1662,   69, 1652, 1653,   69,
-     1654, 1655,   69, 1663, 1664,   69, 1656, 1658, 1666,   69,
-
-       69,   69, 1669,   69, 1670,   69, 1665,   69,   69,   69,
-       69,   69,   69, 1677,   69, 1667, 1674, 1675, 1770, 1668,
-     1678,   69,   69, 1672, 1679,   69, 1680,   69, 1683, 1676,
-     1673,   69, 1671,   69, 1681,   69, 1682,   69,   69,   69,
-       69,   69, 1685,   69,   69, 1684,   69, 1689,   69,   69,
-       69,   69,   69, 1697,   69, 1688,   69, 1686, 1687, 1691,
-     1698, 1690,   69, 1692,   69, 1694, 1693, 1696,   69, 1699,
-       69, 1703,   69, 1700,   69, 1695,   69, 1702, 1707,   69,
-     1708, 1701,   69,   69, 1704,   69,   69, 1705,   69,   69,
-       69,   69, 1710, 1706,   69,   69, 1709,   69,   69, 1720,
-
-     1717,   69, 1712, 1714, 1715, 1711, 1718,   69, 1713,   69,
-       69,   69, 1721, 1716, 1722, 1723, 1719, 1725, 1726,   69,
-       69,   69,   69,   69, 1730,   69,   69, 1727,   69,   69,
-     1724,   69,   69, 1733,   69,   69, 1737,   69,   69, 1732,
-     1728, 1770, 1729, 1738, 1731,   69, 1740, 1736,   69, 1741,
-     1734, 1735,   69,   69,   69,   69, 1739, 1742, 1745,   69,
-     1743,   69, 1746,   69,   69,   69,   69,   69, 1747, 1749,
-       69, 1751, 1752, 1744,   69,   69, 1755,   69,   69,   69,
-     1758,   69, 1748,   69, 1750, 1759,   69,   69, 1760, 1753,
-     1761,   69,   69, 1754, 1762,   69, 1756, 1757,   69, 1763,
-
-       69, 1770, 1766, 1764, 1770, 1765, 1767, 1768,   69, 1769,
-       69,   41,   41,   41,   41,   41,   41,   41,   46,   46,
-       46,   46,   46,   46,   46,   51,   51,   51,   51,   51,
-       51,   51,   57,   57,   57,   57,   57,   57,   57,   62,
-       62,   62,   62,   62,   62,   62,   72,   72, 1770,   72,
-       72,   72,   72,  127,  127, 1770, 1770, 1770,  127,  127,
-      129,  129, 1770, 1770,  129, 1770,  129,  131, 1770, 1770,
-     1770, 1770, 1770,  131,  134,  134, 1770, 1770, 1770,  134,
-      134,  136, 1770, 1770, 1770, 1770, 1770,  136,  138,  138,
-     1770,  138,  138,  138,  138,   73,   73, 1770,   73,   73,
-
-       73,   73,   13, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770
+       69,  340,   69,  347,  341,  352,  350,  342,   69,  343,
+       69,  348,   69,  349,  351,  137,   69,   69,   69,  363,
+       69,  353,  354,   69,   69,  355,  356,  362,  368,   69,
+       69,  366,  371,   69,   69,  357,  364,  358,  359,  360,
+      367,  369,  361,  365,   69,  372,  373,  376,   69,  370,
+       69,   69,   69,   69,  374,  378,  379,  380,  375,   69,
+       69,   69,   69,   69,  377,   69,   69,  386,  385,   69,
+       69,   69,   69,  381,  393,   69,  382,  383,  549,  384,
+
+      387,  389,   69,  388,  391,  395,   69,  392,   69,   69,
+       69,   69,  397,   69,  390,  394,   69,  396,   69,  398,
+      402,  399,  400,   69,  401,   69,   69,   69,   69,   69,
+      407,   69,  406,   69,  403,  404,  408,   69,  410,  405,
+       69,  411,   69,   69,   69,   69,   69,   69,   69,  128,
+       69,  413,  420,  414,  409,   69,   69,   69,  416,   69,
+       69,  422,   69,  412,  419,  415,  424,  417,  418,  421,
+      423,   69,   69,  425,   69,   69,   69,   69,  428,   69,
+       69,  426,  430,   69,  441,   69,   69,   69,   69,   69,
+      429,  443,  431,  427,  442,   69,  440,   69,  432,   69,
+
+      433,   69,  445,  438,  439,  434,  444,  435,   69,  447,
+      448,   69,  446,   69,   69,  436,  451,   69,   69,   69,
+       69,   69,  453,  449,  458,  437,  137,  454,  450,   69,
+      457,   69,   69,  459,   69,  456,  452,   69,  455,  463,
+       69,   69,  462,   69,   69,  461,   69,  466,   69,  460,
+       69,  468,  467,  464,  471,  465,  474,   69,  472,   69,
+      475,   69,  469,  473,  476,  470,  477,   69,  479,   69,
+      478,   69,   69,   69,   69,   69,   69,  483,   69,  481,
+      482,   69,   69,  485,  487,  484,   69,   69,   69,   69,
+       69,  488,  499,  480,   69,  486,   69,  490,   69,  493,
+
+      496,  489,  491,   69,   69,   69,  492,  498,  494,   69,
+      495,   69,  497,   69,  500,   69,  501,   69,  503,  506,
+       69,   69,  502,   69,   69,   69,  507,   69,  508,  505,
+      509,  504,   69,   69,  544,  513,   69,  510,   69,  511,
+       69,  514,   69,  516,  517,  515,   69,  512,  518,   69,
+       69,  521,   69,   69,   69,  527,   69,  523,   69,  519,
+      525,  522,   69,  520,  526,   69,   69,   69,  529,   69,
+       69,   69,  524,   69,   69,  534,   69,  528,   69,  539,
+      530,   69,  535,   69,   69,  531,   69,  542,  532,  536,
+      533,   69,   69,  538,  537,  543,   69,  545,   69,   69,
+
+      540,   69,  541,   69,  550,   69,   69,   69,   69,   69,
+      551,  552,  546,  553,  548,   69,  555,  547,   69,   69,
+      137,  557,  559,  554,  556,  558,   69,   69,  562,   69,
+      560,   69,  565,   69,   69,  566,  563,   69,  564,  561,
+       69,   69,   69,   69,   69,  567,   69,   69,  569,   69,
+       69,  582,  568,  580,  581,  579,   69,   69,  577,  570,
+       69,  578,  590,   69,  594,   69,  593,  571,   69,   69,
+       69,  596,   69,  572,  592,  599,  595,  573,  591,   69,
+      574,   69,  598,   69,   69,   69,   69,  575,  600,   69,
+      576,   69,  583,  584,  597,  585,   69,   69,  586,   69,
+
+      605,   69,  607,  587,  601,  604,  602,   69,  603,  588,
+      589,  606,  608,  609,   69,  610,  611,   69,   69,   69,
+       69,   69,  612,  613,   69,   69,  614,   69,   69,   69,
+      620,   69,  615,  617,  618,  622,   69,   69,   69,   69,
+       69,   69,  626,  616,  621,   69,   69,  624,  619,   69,
+      625,   69,  628,   69,   69,   69,  623,  630,  633,  627,
+       69,  629,   69,   69,   69,  631,   69,   69,   69,   69,
+      632,  639,   69,  638,   69,   69,  634,   69,  642,   69,
+      635,  644,  648,  637,  636,  641,  640,   69,  643,  645,
+       69,  647,  646,  649,   69,   69,   69,   69,   69,  650,
+
+      654,  656,  653,   69,  655,   69,   69,   69,  652,   69,
+      657,  660,   69,  651,  662,   69,   69,  663,  137,   69,
+       69,   69,  659,  658,  665,   69,   69,   69,   69,   69,
+       69,   69,  661,  676,  664,   69,   69,   69,   69,  683,
+      666,  668,  680,  677,   69,  679,  669,  137,   69,  667,
+       69,  684,  681,  670,   69,  671,  678,   69,  682,  672,
+       69,  673,  685,   69,   69,  687,  674,   69,  688,  689,
+      691,  675,  686,  692,   69,  693,   69,  690,   69,  697,
+      694,  698,  695,   69,   69,   69,  701,   69,   69,   69,
+       69,   69,  702,  706,   69,  707,  700,  699,  703,  708,
+
+      696,   69,  704,   69,   69,   69,  709,   69,  705,   69,
+       69,   69,  712,   69,   69,   69,   69,   69,  711,  717,
+      710,   69,  715,   69,  721,  720,  714,   69,  713,   69,
+      716,  719,   69,   69,   69,  718,   69,  725,  726,  727,
+      722,  723,  724,   69,  729,  728,  730,   69,  732,   69,
+       69,   69,  733,   69,   69,  734,   69,   69,  735,  736,
+      731,   69,   69,  737,   69,  741,   69,   69,   69,   69,
+      738,  743,  739,  744,   69,  745,  748,   69,   69,   69,
+      747,  740,   69,  746,   69,  742,   69,  749,   69,  751,
+       69,   69,   69,   69,   69,  756,   69,  750,  757,  759,
+
+      752,   69,  762,  753,  755,  760,  763,   69,  754,   69,
+      758,   69,   69,  761,  765,   69,   69,   69,  769,   69,
+       69,   69,   69,   69,  764,   69,   69,   69,  777,  768,
+      767,  766,  771,   69,   69,   69,  778,  770,   69,  772,
+      774,   69,  775,  779,   69,  776,  773,   69,  781,  780,
+       69,   69,   69,   69,  785,  783,  788,   69,   69,   69,
+       69,  782,   69,  792,   69,  790,  784,  786,   69,  793,
+       69,   69,  787,   69,  796,  794,  789,   69,   69,   69,
+      791,   69,   69,  799,  795,   69,  798,  801,   69,  803,
+       69,  797,   69,   69,   69,   69,   69,  804,  800,   69,
+
+      802,  807,   69,   69,   69,  805,   69,  806,  808,  812,
+       69,   69,  809,  816,   69,  815,  810,  811,   69,  813,
+       69,   69,  814,   69,  817,  821,  820,  135,  818,  822,
+       69,  819,   69,  823,   69,  824,  825,  827,   69,  828,
+       69,  826,   69,   69,   69,  829,   69,  831,  830,   69,
+       69,   69,  836,  832,  833,  837,   69,   69,   69,   69,
+       69,  838,  839,   69,  834,   69,  845,   69,   69,  835,
+       69,  847,   69,   69,  846,   69,   69,  849,   69,  840,
+       69,  850,   69,  848,  841,   69,  842,  851,  843,  853,
+      844,  852,   69,  855,  856,  854,  857,  860,  858,  859,
+
+       69,  861,   69,   69,   69,   69,  862,  865,   69,  863,
+       69,  867,   69,   69,  869,   69,   69,   69,  868,   69,
+       69,   69,  871,   69,  864,  873,   69,  872,   69,  874,
+      866,   69,  876,   69,  884,  878,  870,  879,  877,  875,
+       69,   69,   69,  881,   69,   69,  880,   69,   69,  885,
+       69,  888,  883,  882,   69,   69,   69,   69,   69,   69,
+      894,   69,   69,   69,   69,  886,   69,   69,  889,  892,
+      887,  898,  900,  901,  890,  891,  893,  902,   69,   69,
+       69,  895,  897,   69,  907,   69,  899,  896,  903,   69,
+       69,  904,  905,   69,  906,   69,  909,  908,   69,   69,
+
+       69,   69,   69,   69,   69,  913,   69,  916,   69,   69,
+       69,   69,   69,   69,  910,   69,  923,  912,  925,  914,
+      919,   69,  915,  918,  911,  920,  917,  921,  922,   69,
+      927,   69,   69,  926,   69,   69,  924,  932,  929,  933,
+      931,   69,   69,   69,   69,   69,  928,   69,  934,  935,
+       69,   69,  942,   69,   69,  930,  937,  938,  940,  936,
+       69,   69,  941,   69,  939,   69,   69,   69,   69,  948,
+       69,   69,  947,  943,   69,   69,   69,   69,  133,  944,
+       69,  956,  953,   69,  946,   69,  949,  945,  957,  950,
+      951,   69,  955,   69,  952,  958,  959,  954,   69,   69,
+
+       69,   69,  960,  964,   69,   69,  961,  965,  962,  968,
+       69,   69,  972,  963,   69,   69,  969,   69,  970,   69,
+      966,   69,   69,  975,  967,  971,  974,  976,  977,   69,
+      978,   69,   69,  973,   69,   69,  980,  979,   69,   69,
+       69,   69,   69,   69,  982,   69,  984,  986,   69,   69,
+      988,   69,   69,  981,  983,  991,  990,  985,   69,  987,
+       69,   69,   69,  993,   69,  989,   69,  996,   69,  997,
+       69,  992,   69,   69,   69,  995, 1002,   69,  994, 1000,
+       69, 1004,  998,   69, 1006, 1003,   69,   69,  999,   69,
+       69, 1007, 1001, 1005, 1008,   69, 1009,   69, 1011, 1012,
+
+       69,   69,   69,   69,  132, 1017, 1014, 1010,   69, 1015,
+       69, 1019,   69, 1018, 1023,   69,   69, 1020, 1022,   69,
+     1013, 1016,   69, 1024,   69,   69, 1021,   69, 1029,   69,
+       69,   69, 1028,   69, 1025, 1031, 1032,   69,   69,   69,
+       69,   69,   69, 1026, 1033, 1027,   69,   69, 1040, 1034,
+       69,   69, 1030,   69, 1038, 1037,   69,   69, 1035, 1039,
+     1036, 1044,   69,   69, 1046,   69,   69, 1041, 1050,   69,
+     1042,   69, 1043,   69, 1051, 1047,   69, 1045, 1048, 1049,
+       69, 1052,   69,   69, 1055,   69, 1060,   69, 1059, 1053,
+       69, 1054, 1056,   69, 1058, 1057,   69,   69,   69,   69,
+
+     1061,   69,   69, 1062,   69, 1069,   69,   69,   69,   69,
+     1066, 1064,   69, 1072, 1063, 1065, 1071,   69, 1073,   69,
+     1068, 1075, 1070, 1078, 1076, 1080, 1067, 1077,   69,   69,
+       69,   69, 1074, 1083,   69, 1081,   69, 1079,   69, 1085,
+       69,   69,   69,   69, 1091, 1086,   69, 1084, 1087,   69,
+       69, 1082,   69,   69, 1088,   69,   69, 1095,   69,   69,
+     1089, 1096, 1090, 1097, 1093,   69, 1092,   69, 1099,   69,
+     1098,   69, 1094, 1102,   69,   69,   69,   69, 1100,   69,
+     1108,   69, 1101, 1103, 1104,   69,   69, 1105, 1106,  130,
+     1107, 1109, 1111, 1112,   69,   69, 1114,   69, 1113, 1110,
+
+       69, 1116,   69,   69,   69,   69,   69,   69,   69, 1115,
+     1118,   69,   69, 1119,   69, 1117, 1122, 1123, 1120, 1127,
+       69, 1128, 1121,   69,   69,   69,   69, 1132,   69, 1126,
+     1124,   69, 1125, 1134,   69, 1135,   69,   69,   69,   69,
+       69, 1136, 1137, 1130, 1129, 1131,   69,   69, 1139, 1138,
+     1141, 1133,   69,   69, 1153,   69, 1140, 1143,   69,   69,
+     1144, 1145,   69,   69, 1142,   69,   69,   69, 1155,   69,
+       69,   69, 1150,   69, 1146, 1147, 1148,   69, 1157, 1160,
+       69, 1149, 1159, 1151,   69, 1152,   69,   69, 1154,   69,
+       69, 1158,   69, 1162,   69, 1165, 1156,   69, 1163, 1161,
+
+     1169,   69, 1168,   69, 1172,   69, 1173,   69, 1167,   69,
+     1171,   69, 1175, 1164, 1174,   69, 1166,   69,   69,   69,
+       69, 1170,   69,   69,   69, 1180, 1176,   69, 1183,   69,
+       69, 1179,   69,   69,   69, 1189,   69,   69, 1177, 1178,
+     1187, 1181, 1188,   69, 1184, 1192,   69, 1186, 1190, 1185,
+     1182,   69, 1195, 1191, 1196,   69, 1197,   69, 1199,   69,
+     1198,   69,   69,   69, 1193, 1194, 1202,   69,   69,   69,
+       69,   69, 1204, 1207, 1201,   69,   69, 1209,   69, 1203,
+       69, 1205,   69, 1211,   69, 1200,   69, 1212, 1210, 1213,
+       69, 1214,   69,   69,   69, 1206,   69, 1208,   69, 1216,
+
+     1218, 1217,   69,   69, 1215,   69,   69, 1219, 1220, 1223,
+       69,   69,   69,   69, 1221,   69,   69, 1222, 1230, 1228,
+     1225, 1229,   69,   69,   69,   69, 1224,   69, 1232,   69,
+     1226,   69, 1227,   69, 1235,   69, 1231,  128, 1236, 1233,
+     1237,   69, 1234, 1240,   69, 1242, 1238, 1239,   69,   69,
+       69, 1243, 1241, 1244,   69,   69,   69, 1245,   69, 1247,
+       69,   69,   69,   69,   69, 1248,   69,   69,   69,   69,
+     1257,   69,   69, 1250, 1251, 1246, 1252, 1256, 1253,   69,
+       69, 1249,   69, 1260, 1261,   69, 1254, 1255, 1259, 1258,
+       69,   69,   69, 1264,   69, 1263,   69, 1265, 1269, 1266,
+
+     1267,   69,   69,   69,   69,   69, 1262, 1270,   69, 1275,
+       69,   69, 1272,   69, 1271, 1279, 1268,   69, 1276,   69,
+       69, 1281, 1274,   69, 1273,   69, 1277,   69, 1280,   69,
+       69, 1285,   69, 1278,   69,   69, 1283, 1282,   69, 1284,
+     1288, 1286, 1287, 1289,   69,   69,   69, 1290,   69,   69,
+       69,   69, 1293,   69, 1294, 1298,   69, 1300,   69,   69,
+     1297, 1292, 1299,   69, 1291, 1295,   69, 1302,   69, 1305,
+       69, 1303,   69,   69, 1296, 1308,   69,   69, 1301,   69,
+     1306, 1304, 1310,   69,   69, 1311, 1309,   69,   69,   69,
+       69, 1312,   69, 1307, 1314, 1315,   69, 1317,   69,   69,
+
+       69,   69, 1323,   69,   69, 1313, 1320,   69, 1321,   69,
+       69, 1324,   69, 1316, 1319, 1326, 1322,   69,   69, 1325,
+       69, 1318,   69,   69,   69, 1335,   69,   69,   69,   69,
+     1336, 1328,   69, 1368,   69, 1327, 1333,   69, 1340, 1331,
+     1329, 1337, 1330, 1332, 1334,   69, 1338, 1339, 1341,   69,
+     1342,   69, 1344,   69, 1345,   69, 1346,   69, 1343,   69,
+     1348,   69, 1349,   69,   69,   69, 1352,   69,   69,   69,
+     1351, 1354,   69,   69,   69, 1356,   69, 1357, 1347,   69,
+     1358, 1360,   69, 1350,   69,   69,   69, 1353, 1364,   69,
+       69, 1355,   69, 1369,   69, 1359, 1365,   69, 1371,   69,
+
+     1362,   69,   69, 1361,   69, 1363,   69, 1367,   69, 1373,
+       69, 1374,   69, 1366,   69, 1376, 1370,   69, 1375,   69,
+       69,   69, 1380,   69,   69, 1378, 1385, 1372,   69, 1377,
+     1382,   69, 1383,   69, 1381, 1379,   69, 1386, 1384, 1390,
+     1387,   69, 1389, 1393,   69, 1388,   69, 1391,   69,   69,
+       69,   69,   69, 1396,   69, 1392, 1397, 1394, 1399,   69,
+       69, 1395, 1400,   69,   69, 1402,   69,   69, 1401,   69,
+     1406,   69, 1398,   69, 1404, 1407, 1408,   69, 1403, 1409,
+       69,   69, 1410,   69,   69,   69, 1405,   69, 1413, 1416,
+       69,   69, 1415,   69,   69, 1420, 1417, 1412, 1419,   69,
+
+       69, 1411,   69,   69,   69, 1414, 1422, 1418,   69, 1423,
+     1421, 1424,   69,   69, 1426,   69, 1427,   69, 1425, 1428,
+       69, 1429,   69,   69,   69, 1431,   69,   69, 1432, 1435,
+       69,   69, 1437,   69,   69, 1440,   69,   69, 1430, 1434,
+     1436,   69,   69,   69, 1442, 1433, 1441,   69,   69, 1439,
+       69, 1438, 1444, 1445,   69, 1446,   69, 1443, 1447,   69,
+     1448,   69,   69,   69,   69,   69, 1455,   69, 1449, 1453,
+       69,   69,   69, 1450, 1451, 1452,   69,   69,   69, 1456,
+       69,   69,   69,   69,   69, 1454,   69, 1464, 1465, 1459,
+     1466,   69, 1458,   69, 1461,   69, 1462, 1457, 1467,   69,
+
+       69, 1460,   69, 1463, 1468,   69,   69, 1475, 1470, 1472,
+       69, 1469, 1476,   69,   69, 1471,   69,   69,   69, 1477,
+       69, 1478, 1473, 1474,   69, 1484,   69, 1485,   69,   69,
+       69, 1479,   69,   69,   69, 1480, 1481,   69,   69, 1483,
+     1482, 1492, 1493,   69, 1487,   69, 1486,   69,   69, 1488,
+     1496,   69, 1497, 1489, 1491,   69, 1490,   69, 1500,   69,
+     1494, 1499,   69, 1502,   69, 1495,   69, 1504,   69,   69,
+     1498, 1505,   69,   69, 1506, 1501,   69,   69,   69,   69,
+       69, 1509,   69, 1510,   69, 1503, 1508,   69, 1512, 1514,
+       69, 1507, 1515, 1517,   69, 1518,   69, 1513, 1511, 1519,
+
+     1782,   69, 1521,   69,   69, 1516, 1520, 1522,   69, 1523,
+       69,   69,   69,   69,   69, 1524,   69, 1525,   69, 1526,
+       69,   69,   69, 1529, 1528, 1531,   69,   69, 1527,   69,
+       69, 1536, 1530,   69,   69, 1534,   69,   69, 1535, 1532,
+     1533,   69, 1537, 1541,   69,   69, 1542, 1543,   69,   69,
+     1545,   69,   69, 1538,   69,   69, 1539, 1544, 1548,   69,
+     1540, 1546,   69, 1551, 1547, 1552,   69,   69,   69, 1549,
+       69, 1554,   69, 1782, 1550, 1555, 1556,   69, 1557,   69,
+     1558,   69,   69, 1561, 1562,   69, 1559, 1553,   69,   69,
+     1565,   69,   69, 1563,   69,   69, 1560, 1564,   69, 1568,
+
+       69,   69, 1572,   69,   69,   69,   69,   69, 1576, 1566,
+     1567,   69, 1577, 1574,   69, 1571, 1569,   69,   69,   69,
+     1570,   69, 1579, 1573,   69, 1575,   69,   69,   69,   69,
+     1578, 1585,   69, 1582, 1587,   69, 1588,   69, 1580,   69,
+       69, 1583, 1590, 1591,   69, 1581, 1584, 1586, 1589, 1593,
+     1592,   69,   69,   69,   69,   69, 1598,   69,   69, 1597,
+     1594,   69,   69, 1600, 1595,   69, 1599,   69, 1606,   69,
+     1601,   69, 1604,   69, 1608,   69,   69,   69, 1596, 1611,
+       69,   69, 1602,   69,   69, 1612, 1603, 1605,   69,   69,
+       69,   69, 1610, 1613,   69, 1609, 1607, 1616,   69, 1614,
+
+     1619,   69,   69, 1617, 1621,   69,   69, 1615, 1623,   69,
+     1620, 1622,   69, 1626, 1624,   69, 1618,   69, 1629,   69,
+     1630,   69,   69,   69,   69, 1625, 1634,   69,   69, 1627,
+       69,   69,   69, 1639,   69, 1632, 1637,   69,   69, 1628,
+     1635, 1631, 1642,   69, 1633, 1643,   69,   69,   69, 1782,
+     1636, 1638, 1645, 1644, 1640, 1641,   69, 1648,   69, 1649,
+       69, 1647, 1646, 1650,   69,   69, 1652,   69,   69, 1653,
+     1651, 1654,   69,   69,   69, 1657,   69,   69,   69, 1660,
+       69,   69, 1658, 1656,   69,   69, 1659, 1655,   69, 1661,
+     1662,   69,   69, 1663,   69,   69,   69, 1671,   69,   69,
+
+     1669, 1672,   69, 1673, 1674,   69, 1664, 1665,   69, 1666,
+     1667,   69, 1675, 1676,   69, 1668, 1670, 1678,   69,   69,
+       69, 1681,   69, 1682,   69, 1677,   69,   69,   69,   69,
+       69,   69, 1689,   69, 1679, 1686, 1687, 1782, 1680, 1690,
+       69,   69, 1684, 1691,   69, 1692,   69, 1695, 1688, 1685,
+       69, 1683,   69, 1693,   69, 1694,   69,   69,   69,   69,
+       69, 1697,   69,   69, 1696,   69, 1701,   69,   69,   69,
+       69,   69, 1709,   69, 1700,   69, 1698, 1699, 1703, 1710,
+     1702,   69, 1704,   69, 1706, 1705, 1708,   69, 1711,   69,
+     1715,   69, 1712,   69, 1707,   69, 1714, 1719,   69, 1720,
+
+     1713,   69,   69, 1716,   69,   69, 1717,   69,   69,   69,
+       69, 1722, 1718,   69,   69, 1721,   69,   69, 1732, 1729,
+       69, 1724, 1726, 1727, 1723, 1730,   69, 1725,   69,   69,
+       69, 1733, 1728, 1734, 1735, 1731, 1737, 1738,   69,   69,
+       69,   69,   69, 1742,   69,   69, 1739,   69,   69, 1736,
+       69,   69, 1745,   69,   69, 1749,   69,   69, 1744, 1740,
+     1782, 1741, 1750, 1743,   69, 1752, 1748,   69, 1753, 1746,
+     1747,   69,   69,   69,   69, 1751, 1754, 1757,   69, 1755,
+       69, 1758,   69,   69,   69,   69,   69, 1759, 1761,   69,
+     1763, 1764, 1756,   69,   69, 1767,   69,   69,   69, 1770,
+
+       69, 1760,   69, 1762, 1771,   69,   69, 1772, 1765, 1773,
+       69,   69, 1766, 1774,   69, 1768, 1769,   69, 1775,   69,
+     1782, 1778, 1776, 1782, 1777, 1779, 1780,   69, 1781,   69,
+       41,   41,   41,   41,   41,   41,   41,   46,   46,   46,
+       46,   46,   46,   46,   51,   51,   51,   51,   51,   51,
+       51,   57,   57,   57,   57,   57,   57,   57,   62,   62,
+       62,   62,   62,   62,   62,   72,   72, 1782,   72,   72,
+       72,   72,  127,  127, 1782, 1782, 1782,  127,  127,  129,
+      129, 1782, 1782,  129, 1782,  129,  131, 1782, 1782, 1782,
+     1782, 1782,  131,  134,  134, 1782, 1782, 1782,  134,  134,
+
+      136, 1782, 1782, 1782, 1782, 1782,  136,  138,  138, 1782,
+      138,  138,  138,  138,   73,   73, 1782,   73,   73,   73,
+       73,   13, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782
     } ;
 
-static yyconst flex_int16_t yy_chk[3543] =
+static yyconst flex_int16_t yy_chk[3562] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1415,7 +1423,7 @@ static yyconst flex_int16_t yy_chk[3543] =
         9,  156,   33,    6,    7,    7,    7,    7,    9,    7,
        10,   10,   10,   45,   45,    7,    8,    8,    8,    8,
        10,    8,   21,   33,  156,   21,   21,    8,   11,   11,
-       11,   11,   11,   11, 1776,   20,   29,   20,   20,   11,
+       11,   11,   11,   11, 1788,   20,   29,   20,   20,   11,
 
        20,   29,   24,   21,   25,   20,   24,   28,   11,   12,
        12,   12,   12,   12,   12,   75,   22,   22,   75,   25,
@@ -1424,7 +1432,7 @@ static yyconst flex_int16_t yy_chk[3543] =
        19,   19,   23,   27,   61,   61,   27,   23,   35,   31,
        31,   23,   39,   27,   23,   27,   23,   23,   31,   83,
        32,   32,   36,   36,   31,   32,   39,   36,   31,   37,
-      659,   39,   38,   38,   37,   38,   79,   36,   40,   40,
+      663,   39,   38,   38,   37,   38,   79,   36,   40,   40,
        36,   32,   34,   40,   37,  111,  111,   34,   37,   37,
        38,   34,   77,   56,   79,   56,   56,   34,   56,   64,
 
@@ -1474,328 +1482,330 @@ static yyconst flex_int16_t yy_chk[3543] =
 
       261,  254,  258,  261,  260,  261,  256,  262,  263,  264,
       267,  269,  265,  268,  266,  257,  259,  265,  264,  266,
-      270,  262,  271,  272,  263,  271,  269,  263,  274,  263,
-      275,  267,  276,  268,  270,  278,  277,  272,  352,  275,
-      279,  271,  273,  274,  273,  273,  280,  281,  282,  283,
-      278,  280,  284,  276,  273,  277,  273,  273,  273,  286,
-      279,  273,  287,  352,  283,  289,  285,  284,  282,  288,
-      281,  285,  290,  292,  288,  293,  287,  290,  294,  286,
-      127,  289,  291,  291,  295,  291,  296,  298,  296,  299,
-      300,  293,  297,  292,  294,  301,  297,  302,  295,  300,
-
-      304,  306,  302,  299,  301,  298,  303,  306,  305,  304,
-      303,  307,  300,  305,  309,  307,  308,  308,  310,  309,
-      311,  311,  312,  313,  314,  315,  316,  312,  317,  317,
-      316,  310,  319,  314,  318,  320,  320,  315,  323,  318,
-      322,  322,  324,  325,  313,  326,  327,  329,  330,  331,
-      324,  332,  325,  319,  337,  333,  332,  334,  327,  323,
-      338,  335,  334,  331,  333,  326,  336,  329,  330,  335,
-      339,  336,  337,  340,  341,  342,  343,  340,  344,  347,
-      342,  346,  338,  348,  349,  350,  363,  349,  348,  341,
-      363,  339,  343,  348,  354,  347,  356,  344,  345,  345,
-
-      355,  346,  351,  351,  345,  350,  345,  353,  353,  354,
-      357,  356,  355,  358,  345,  359,  360,  361,  362,  365,
-      359,  364,  366,   68,  345,  360,  364,  370,  367,  357,
-      368,  365,  371,  362,  372,  358,  361,  372,  368,  370,
-      366,  367,  369,  369,  371,  373,  374,  375,  376,  374,
-      384,  377,  376,  376,  378,  378,  379,  379,  381,  381,
-      373,   62,  380,  375,  377,  383,  375,  380,  382,  382,
-      383,  384,  385,  390,  386,  387,  389,  385,  386,  388,
-      387,  389,  391,  388,  392,  393,  396,  391,  394,  392,
-      403,  394,  397,  390,  395,  395,  394,  398,  399,  393,
-
-      394,  405,  398,  403,  396,  400,  397,  399,  400,  401,
-      402,  404,  406,  401,  407,  402,  404,  405,  409,  407,
-      408,  409,  410,  411,  406,  410,  408,  412,  411,  413,
-      416,  414,  415,  416,  417,  401,  414,  415,  419,  417,
-      420,  422,  418,  413,  421,  412,  418,  418,  426,  421,
-      422,  419,  423,  420,  424,  423,  428,  429,  424,  424,
-      425,  427,  425,  427,  430,  431,  434,  426,  432,  433,
-      423,  435,  432,  436,  428,  429,  438,  437,  433,  439,
-      439,  434,  437,  430,  443,  431,  440,  441,  436,  435,
-      440,  442,  444,  445,  446,  438,  442,  447,  441,  449,
-
-      443,  446,  447,  448,  449,  451,  445,  450,  452,  453,
-      448,  444,  450,  454,  455,  452,  458,  456,  453,  455,
-      456,  457,  460,  451,  465,  457,  467,  454,  462,  459,
-      459,  460,  463,  462,  464,  466,  463,  458,  459,  468,
-      471,  474,  465,  466,  467,  477,  464,  478,  479,  483,
-      484,  480,  479,  478,  477,  471,  480,  482,  474,  487,
-      485,  489,  482,  485,  468,  469,  487,  483,  486,  486,
-      469,  488,  488,  494,  469,  484,  489,  469,  490,  490,
-      491,  492,  493,  491,  469,  495,  492,  469,  481,  481,
-      481,  496,  481,  494,  498,  481,  497,  497,  499,  496,
-
-      481,  493,  504,  500,  495,  504,  481,  481,  500,  498,
-      501,  501,  502,  503,  505,  506,  499,  502,  503,  507,
-      505,  508,  511,  506,  509,  510,  513,  507,  514,  509,
-      512,  512,  510,  514,  513,  515,  517,  518,  520,  508,
-      519,  511,  522,  519,  525,  517,  518,  521,  521,  527,
-      523,  526,  520,  523,  515,  528,  526,  522,  529,  530,
-      531,  523,  532,  533,  534,  525,  532,  535,  536,  531,
-      527,  537,  538,  539,  542,  528,  535,  537,  542,  530,
-      529,  533,  536,  534,  540,  541,  543,  539,  544,  540,
-      541,  545,  538,  546,  547,  547,  545,  548,  549,  550,
-
-      544,  549,  548,  551,  552,  543,  553,  554,  554,  552,
-      555,  555,  556,  558,  546,  557,  551,  550,  559,  557,
-      560,  561,  564,  566,  563,  565,  553,  556,  563,  571,
-      567,  568,  558,  569,  560,  567,  570,  564,  566,  575,
-      570,  561,  559,  562,  571,  568,  562,  569,  562,  574,
-      565,  572,  562,  573,  562,  576,  572,  578,  573,  562,
-      575,  577,  578,  574,  562,  580,  572,  577,  581,  576,
-      579,  579,  582,  581,  586,  583,  579,  580,  579,  584,
-      584,  587,  586,  585,  588,  594,  582,  583,  585,  589,
-      589,  597,  595,  590,  592,  587,  579,  590,  593,  592,
-
-      598,  593,  596,  588,  594,  595,  599,  596,  600,  601,
-      597,  602,  603,  604,  601,  599,  598,  607,  605,  608,
-      609,  616,  604,  605,  610,  611,  603,  600,  612,  610,
-      611,  602,  613,  612,  616,  609,  607,  608,  614,  614,
-      615,  613,  618,  621,  622,  615,  618,  618,  619,  619,
-      620,  623,  619,  620,  624,  625,  626,  621,  625,  630,
-      627,  634,  628,  629,  622,  627,  623,  628,  636,  629,
-      631,  632,  632,  633,  624,  630,  631,  626,  635,  634,
-      637,  635,  633,  638,  639,  640,  636,  641,  642,  644,
-      640,  643,  641,  645,  643,  648,  646,  639,  650,  637,
-
-      644,  646,  647,  638,  651,  645,  642,  647,  649,  649,
-      648,  652,  653,  654,  656,  655,  653,  650,  651,  657,
-      660,  661,  662,  652,  655,  663,  682,  664,  671,  682,
-      663,  654,  664,  656,  660,  665,  661,  667,  666,  668,
-      665,  669,  662,  666,  657,  670,  669,  671,  672,  673,
-      676,  667,  675,  668,  674,  674,  676,  677,  678,  678,
-      670,  679,  680,  672,  681,  683,  679,  684,  673,  680,
-      675,  686,  688,  690,  685,  687,  684,  677,  681,  685,
-      687,  689,  690,  683,  691,  689,  692,  693,  694,  695,
-      686,  688,  696,  697,  693,  699,  698,  700,  701,  691,
-
-      694,  692,  698,  706,  703,  704,  705,  701,  695,  703,
-      699,  697,  709,  696,  705,  707,  711,  700,  720,  704,
-      707,  708,   57,  706,  712,  708,  708,  710,  710,  711,
-      713,  709,  720,  712,  715,  713,  714,  714,  716,  715,
-      717,  717,  718,  716,  719,  721,  728,  722,  723,  719,
-      724,  718,  722,  723,  725,  724,  726,  728,  725,  727,
-      727,  731,  730,  721,  732,  726,  730,  735,  733,  736,
-      726,  738,  726,  739,  726,  734,  731,  733,  737,  734,
-      734,  735,  732,  740,  742,  738,  737,  747,  736,  741,
-      741,  739,  743,  743,  745,  746,  749,  745,  753,  742,
-
-      746,  748,  748,  750,  750,  751,  747,  755,  740,  754,
-      751,  752,  752,  758,  754,  755,  749,  756,  753,  757,
-      757,  759,  756,  760,  762,  767,  766,  759,  763,  762,
-      760,  758,  764,  763,  765,  766,  768,  764,  770,  765,
-      769,  769,  771,  772,  767,  775,  773,  768,  772,  774,
-      776,  777,  777,  778,  779,  782,  780,  775,  770,  781,
-      773,  786,  783,  789,  781,  771,  773,  783,  776,  774,
-      786,  785,  787,  778,  780,  785,  785,  789,  782,  779,
-      787,  788,  790,  788,  791,  792,  793,  790,  791,  794,
-      795,  797,  796,  798,  799,  801,  792,  796,  799,  800,
-
-      807,  805,  802,  803,  804,  793,  806,  807,  795,  797,
-      809,  806,  811,  798,  801,  794,  802,  800,  803,  804,
-      805,  808,  810,  812,  813,  814,  808,  811,  809,  812,
-      814,  810,  815,  816,  817,  817,  820,  815,  816,  819,
-      819,  821,  822,  823,  824,  813,  821,  826,  824,  824,
-      825,  825,  827,  828,  820,  829,  822,  830,  832,  831,
-      837,  833,  823,  830,  831,  834,  826,  835,  836,   52,
-      838,  827,  839,  839,  829,  840,  843,  832,  841,  828,
-      833,  837,  836,  841,  834,  838,  835,  840,  842,  843,
-      844,  845,  842,  855,  846,  848,  846,  849,  849,  844,
-
-      846,  850,  852,  851,  845,  853,  850,  851,  868,  857,
-      853,  855,   51,  846,  857,  848,  858,  858,  859,  861,
-      861,  867,  852,  859,  863,  863,  865,  866,  866,  865,
-      869,  871,  870,  868,  872,  872,  867,  870,  873,  874,
-      874,  875,  876,  877,  869,  878,  871,  877,  881,  879,
-      885,  882,  884,  876,  879,  883,  883,  884,  873,  886,
-      887,  888,  890,  875,  878,  882,  881,  890,  892,  887,
-      885,  889,  891,  889,  898,  893,  894,  891,  896,  886,
-      893,  888,  895,  895,  896,  899,  899,  900,  892,  901,
-      894,  903,  907,  905,  902,   46,  903,  902,  898,  900,
-
-      902,  904,  905,  906,  908,  909,  904,  908,  906,  901,
-      909,  911,  902,  910,  910,  912,  913,  907,  914,  915,
-      916,  917,  920,  914,  915,  919,  917,  918,  918,  911,
-      919,  921,  922,  923,  912,  925,  913,  924,  927,  926,
-      920,  928,  929,  916,  926,  931,   41,  923,  925,  924,
-      931,  921,  922,  932,  935,  933,  941,  934,  927,  938,
-      938,  928,  933,  929,  939,  942,  934,  939,  932,  934,
-      935,  940,  941,  943,  942,  944,  940,  945,  946,  947,
-      947,  948,  949,  946,  944,  950,  945,  944,  951,  953,
-      954,  956,  943,  952,  958,  949,  955,  955,   14,  958,
-
-      957,  948,  951,  950,  960,  952,  961,  956,  954,  957,
-      959,  959,  963,  960,  953,  964,  960,  963,  965,  967,
-      966,  969,  968,  965,  961,  959,  966,  968,  970,  974,
-      973,  970,  975,  964,  969,  976,  977,  970,  973,  967,
-      978,  977,  974,  979,  981,  982,  983,  984,  985,  982,
-      975,  983,  984,  985,  976,  987,  978,  986,  988,  989,
-      989,  979,  990,  991,  981,  992,  986,  993,  994,  995,
-      991,  996,  997,  988,  995,  998,  990,  992,  987,  993,
-     1134,  998, 1134,  996,  999,  999, 1000,  994, 1003, 1000,
-      997, 1001, 1001, 1004, 1004, 1005, 1006, 1003, 1008, 1007,
-
-     1009, 1006, 1011, 1012, 1010, 1013, 1016, 1005, 1007, 1010,
-     1008, 1011, 1014, 1014, 1015, 1009, 1017, 1018, 1020, 1015,
-     1013, 1019, 1019, 1012, 1011, 1021, 1021, 1016, 1022, 1022,
-     1023, 1024, 1028, 1030, 1023, 1017, 1024, 1018, 1020, 1025,
-     1027, 1029, 1025, 1031, 1031, 1027, 1029, 1032, 1032, 1033,
-     1028, 1034, 1035, 1036, 1033, 1037, 1039, 1038, 1030, 1040,
-     1040, 1041, 1043, 1034, 1034, 1034, 1042, 1042, 1047, 1045,
-     1034, 1038, 1035, 1036, 1048, 1037, 1049, 1039, 1045, 1046,
-     1046, 1048, 1043, 1047, 1050, 1049, 1052, 1041, 1051, 1051,
-     1053, 1055, 1056, 1057, 1058, 1059, 1055, 1056, 1060, 1060,
-
-     1059, 1058, 1061, 1063, 1065, 1062, 1053, 1061, 1064, 1068,
-     1050, 1067, 1052, 1057, 1062, 1066, 1065, 1070, 1066, 1069,
-     1069, 1071, 1072, 1063, 1073, 1074, 1137, 1064, 1078, 1067,
-     1073, 1076, 1070, 1137, 1074, 1068, 1079, 1072, 1075, 1075,
-     1071, 1080, 1076, 1077, 1077, 1084, 1080, 1076, 1085, 1078,
-     1079, 1081, 1081, 1082, 1083, 1087, 1086, 1082, 1082, 1083,
-     1085, 1086, 1088, 1089, 1090, 1091, 1088, 1087, 1092, 1093,
-     1091, 1084, 1094, 1096, 1093, 1089, 1096, 1097, 1097, 1098,
-     1098, 1099, 1099, 1100, 1094, 1101, 1104, 1102, 1103, 1090,
-     1092, 1101, 1102, 1106, 1103, 1104, 1108, 1110, 1106, 1111,
-
-     1111, 1112, 1113, 1100, 1114, 1115, 1116, 1117, 1108, 1110,
-     1116, 1113, 1117, 1118, 1119, 1121, 1121, 1122, 1118, 1129,
-     1123, 1112, 1114, 1124, 1115, 1126, 1126, 1121, 1119, 1123,
-     1130, 1131, 1124, 1132, 1129, 1122, 1131, 1133, 1133, 1135,
-     1135, 1138, 1139, 1139, 1130, 1140, 1141, 1142, 1143, 1145,
-     1132, 1144, 1146, 1147, 1140, 1154, 1150, 1149, 1150, 1142,
-     1143, 1138, 1149, 1144, 1145, 1151, 1152, 1141, 1156, 1154,
-     1155, 1155, 1146, 1147, 1157, 1152, 1158, 1159, 1158, 1157,
-     1160, 1161, 1159, 1151, 1162, 1160, 1163, 1164, 1165, 1167,
-     1171, 1163, 1164, 1168, 1156, 1172, 1165, 1169, 1169, 1161,
-
-     1170, 1170,   13, 1186, 1162, 1171, 1173, 1168, 1167, 1174,
-     1175, 1173, 1175, 1176, 1174, 1172, 1178, 1177, 1178, 1179,
-     1180, 1185, 1182, 1186, 1187, 1176, 1177, 1182, 1179, 1177,
-     1183, 1189, 1180, 1191, 1185, 1183, 1192, 1189, 1193, 1191,
-     1187, 1194, 1195, 1195, 1196, 1197, 1197, 1198, 1199, 1200,
-     1194, 1192, 1199, 1196, 1200, 1201, 1202, 1202, 1204, 1203,
-     1207, 1207, 1208, 1193, 1209, 1209, 1198, 1203, 1201, 1210,
-     1210, 1208, 1211, 1212, 1213, 1214, 1214, 1216, 1204, 1213,
-     1217, 1218, 1219, 1220, 1211, 1217, 1225, 1221, 1220, 1227,
-     1222, 1212, 1223, 1223, 1224, 1226, 1230, 1219, 1224, 1228,
-
-     1226, 1225, 1216, 1231, 1218, 1221, 1222, 1232, 1233, 1234,
-     1235, 1237, 1237, 1238, 1240, 1227, 1238, 1239, 1228, 1230,
-     1241, 1234, 1242, 1242, 1243, 1243, 1232, 1231, 1240, 1233,
-     1239, 1235, 1245, 1241, 1244, 1244, 1246, 1246, 1247, 1247,
-     1248, 1248, 1249, 1250, 1250, 1245, 1251, 1251, 1252, 1254,
-     1255, 1255, 1256, 1259, 1254, 1257, 1257, 1258, 1263, 1259,
-     1260, 1249, 1264, 1260, 1261, 1261, 1267, 1252, 1262, 1262,
-     1268, 1256, 1269, 1263, 1270, 1258, 1265, 1265, 1270, 1272,
-     1261, 1264, 1271, 1271, 1273, 1273, 1267, 1269, 1274, 1275,
-     1275, 1276, 1277, 1268, 1278, 1279, 1280, 1281, 1272, 1278,
-
-     1276, 1282, 1283, 1284, 1277, 1286, 1282, 1285, 1287, 1280,
-     1290, 1288, 1284, 1287, 1274, 1288, 1285, 1283, 1281, 1286,
-     1279, 1294, 1292, 1293, 1293, 1297, 1294, 1295, 1295, 1298,
-     1290, 1292, 1300, 1304, 1302, 1308, 1295, 1302, 1298, 1312,
-     1297, 1303, 1305, 1305, 1300, 1310, 1303, 1307, 1307, 1308,
-     1309, 1309, 1311, 1304, 1313, 1313, 1315, 1310, 1312, 1316,
-     1315, 1319, 1316, 1317, 1317, 1318, 1311, 1321, 1320, 1322,
-     1318, 1321, 1323, 1324, 1325, 1327,    0, 1323, 1324, 1328,
-     1325, 1319, 1320, 1329, 1328, 1330, 1334, 1334, 1329, 1322,
-     1331, 1327, 1331, 1330, 1338, 1338, 1341, 1342, 1342, 1344,
-
-     1344, 1341, 1346, 1347, 1347, 1348, 1349, 1346, 1350, 1355,
-     1352, 1353, 1353, 1350, 1356, 1357, 1358,    0, 1355, 1356,
-     1362, 1348, 1352, 1360, 1360, 1362, 1364, 1363, 1349, 1363,
-     1365, 1358, 1369, 1357, 1370, 1365, 1366, 1366, 1367, 1367,
-     1364, 1368, 1368, 1371, 1369, 1372, 1373, 1375, 1374, 1376,
-     1376, 1377, 1370, 1374, 1378, 1371, 1379, 1372, 1373, 1380,
-     1377, 1381, 1384, 1382, 1383, 1385, 1386, 1375, 1387, 1387,
-     1385, 1386, 1380, 1388, 1388, 1391, 1379, 1382, 1392, 1393,
-     1378, 1395, 1383, 1394, 1384, 1381, 1396, 1397, 1398, 1398,
-     1395, 1400, 1400, 1401, 1403, 1391, 1392, 1402, 1404, 1405,
-
-     1407, 1393, 1401, 1394, 1402, 1397, 1396, 1406, 1409, 1403,
-     1408, 1408, 1410, 1409, 1411, 1412, 1404, 1405, 1413, 1407,
-     1415, 1418, 1419, 1406, 1422, 1419, 1420, 1420, 1421, 1411,
-     1410, 1423, 1425, 1426, 1412, 1423, 1428, 1426, 1413, 1415,
-     1431, 1418, 1422, 1421, 1427, 1427, 1438, 1425,    0, 1428,
-     1430, 1430, 1432, 1432, 1433, 1433, 1437, 1437, 1439, 1431,
-     1440, 1441, 1442, 1443, 1445, 1440, 1441, 1439, 1438, 1446,
-     1447, 1443, 1448, 1451, 1446, 1447, 1449, 1449, 1451, 1445,
-     1452, 1442, 1450, 1450, 1460, 1452, 1461, 1448, 1453, 1453,
-     1454, 1454, 1457, 1460, 1458, 1459, 1462, 1457, 1458, 1464,
-
-     1459, 1461, 1463, 1466, 1462, 1467, 1466, 1463, 1468, 1469,
-     1470, 1464, 1471, 1471, 1474, 1472, 1475,    0, 1469, 1470,
-     1476, 1468, 1478, 1467, 1472, 1477, 1477, 1479, 1479, 1480,
-     1481, 1478, 1483, 1474, 1484, 1481, 1475, 1480, 1485, 1476,
-     1486, 1483, 1485, 1487, 1489, 1489, 1494, 1484, 1491, 1491,
-     1495, 1495, 1496, 1500, 1486, 1496, 1497, 1497, 1487, 1498,
-     1498, 1499, 1499, 1501, 1502, 1511, 1494, 1503, 1503, 1502,
-     1504, 1500, 1507, 1513, 1504, 1508, 1512, 1501, 1507, 1514,
-     1508, 1512, 1511, 1511, 1515, 1516, 1516, 1517, 1518, 1519,
-     1524, 1513, 1520, 1520, 1521, 1521, 1518, 1522, 1515, 1514,
-
-     1523, 1525, 1526, 1527, 1528, 1523, 1517, 1532, 1519, 1530,
-     1524, 1526, 1530, 1522, 1533, 1533, 1534, 1535, 1536, 1538,
-     1534, 1537, 1537, 1527, 1528, 1532, 1535, 1525, 1539, 1541,
-     1542, 1543, 1538, 1536, 1547, 1548, 1548, 1539, 1541, 1547,
-     1549, 1551, 1542, 1552, 1553, 1554, 1551, 1556, 1555, 1549,
-     1557, 1558, 1552, 1555, 1561, 1557, 1543, 1559, 1559, 1562,
-     1563, 1563, 1565, 1564, 1553, 1556, 1554, 1564, 1566, 1567,
-     1568, 1565, 1569, 1561, 1562, 1570, 1558, 1569, 1568, 1571,
-     1571, 1572, 1573, 1573, 1566, 1574, 1576, 1576, 1567, 1577,
-     1574, 1578, 1580, 1580, 1581, 1582, 1583, 1583, 1584, 1584,
-
-     1572, 1570, 1585, 1586, 1587, 1588, 1588, 1589, 1581, 1577,
-     1590, 1591, 1592, 1593, 1578, 1586, 1591, 1582, 1593, 1589,
-     1594, 1585, 1595, 1595, 1587, 1597, 1597, 1598, 1600, 1601,
-     1590, 1592,    0, 1600, 1602, 1603, 1603, 1594, 1594, 1602,
-     1604, 1604, 1606, 1601, 1605, 1605, 1598, 1606, 1608, 1608,
-     1610, 1610, 1612, 1612, 1613, 1614, 1615, 1615, 1616, 1619,
-     1620, 1620, 1624, 1616, 1614, 1621, 1623, 1619, 1613, 1625,
-     1621, 1623, 1626, 1627, 1624, 1628, 1629, 1632, 1633, 1633,
-     1635, 1629, 1634, 1634, 1635, 1639, 1639, 1625, 1626, 1641,
-     1627, 1627, 1644, 1641, 1643, 1643, 1628, 1632, 1646, 1646,
-
-     1647, 1649, 1650, 1650, 1651, 1651, 1644, 1652, 1653, 1654,
-     1657, 1655, 1656, 1658, 1658, 1647, 1655, 1656,    0, 1649,
-     1661, 1661, 1667, 1653, 1663, 1663, 1665, 1665, 1671, 1657,
-     1654, 1672, 1652, 1671, 1667, 1668, 1668, 1673, 1674, 1676,
-     1675, 1682, 1673, 1681, 1684, 1672, 1683, 1681, 1685, 1686,
-     1687, 1690, 1688, 1689, 1689, 1676, 1693, 1674, 1675, 1683,
-     1690, 1682, 1694, 1684, 1691, 1686, 1685, 1688, 1692, 1691,
-     1696, 1695, 1698, 1692, 1699, 1687, 1695, 1694, 1700, 1703,
-     1701, 1693, 1702, 1700, 1696, 1701, 1704, 1698, 1705, 1706,
-     1707, 1708, 1703, 1699, 1709, 1710, 1702, 1712, 1713, 1713,
-
-     1710, 1711, 1705, 1707, 1708, 1704, 1711, 1714, 1706, 1715,
-     1716, 1717, 1714, 1709, 1715, 1716, 1712, 1718, 1719, 1719,
-     1720, 1721, 1718, 1722, 1723, 1724, 1725, 1720, 1727, 1723,
-     1717, 1728, 1729, 1727, 1730, 1731, 1731, 1733, 1732, 1725,
-     1721,    0, 1722, 1732, 1724, 1734, 1734, 1730, 1735, 1735,
-     1728, 1729, 1736, 1737, 1738, 1740, 1733, 1736, 1739, 1739,
-     1737, 1741, 1740, 1742, 1743, 1744, 1746, 1747, 1741, 1743,
-     1748, 1746, 1747, 1738, 1749, 1750, 1750, 1751, 1752, 1753,
-     1753, 1755, 1742, 1764, 1744, 1754, 1754, 1765, 1755, 1748,
-     1756, 1756, 1758, 1749, 1757, 1757, 1751, 1752, 1760, 1758,
-
-     1763,    0, 1764, 1760,    0, 1763, 1765, 1766, 1766, 1767,
-     1767, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1772, 1772,
-     1772, 1772, 1772, 1772, 1772, 1773, 1773, 1773, 1773, 1773,
-     1773, 1773, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1775,
-     1775, 1775, 1775, 1775, 1775, 1775, 1777, 1777,    0, 1777,
-     1777, 1777, 1777, 1778, 1778,    0,    0,    0, 1778, 1778,
-     1779, 1779,    0,    0, 1779,    0, 1779, 1780,    0,    0,
-        0,    0,    0, 1780, 1781, 1781,    0,    0,    0, 1781,
-     1781, 1782,    0,    0,    0,    0,    0, 1782, 1783, 1783,
-        0, 1783, 1783, 1783, 1783, 1784, 1784,    0, 1784, 1784,
-
-     1784, 1784, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
-     1770, 1770
+      270,  262,  271,  267,  263,  271,  269,  263,  272,  263,
+      275,  267,  274,  268,  270,  276,  278,  283,  281,  275,
+      279,  271,  272,  273,  277,  273,  273,  274,  280,  282,
+      284,  278,  283,  280,  286,  273,  276,  273,  273,  273,
+      279,  281,  273,  277,  287,  284,  285,  288,  289,  282,
+      290,  285,  288,  292,  286,  290,  291,  291,  287,  291,
+      293,  294,  298,  297,  289,  295,  296,  297,  296,  299,
+      303,  448,  300,  292,  303,  301,  293,  294,  448,  295,
+
+      298,  300,  302,  299,  301,  305,  304,  302,  307,  310,
+      305,  306,  307,  313,  300,  304,  309,  306,  308,  308,
+      312,  309,  310,  311,  311,  312,  314,  315,  316,  317,
+      317,  318,  316,  319,  313,  314,  318,  320,  320,  315,
+      322,  322,  323,  324,  325,  326,  327,  329,  330,  127,
+      331,  324,  332,  325,  319,  337,  334,  332,  327,  338,
+      333,  334,  335,  323,  331,  326,  336,  329,  330,  333,
+      335,  336,  339,  337,  340,  341,  343,  342,  340,  344,
+      348,  338,  342,  346,  349,  347,  351,  353,  350,  349,
+      341,  350,  343,  339,  349,  355,  348,  358,  344,  345,
+
+      345,  352,  352,  346,  347,  345,  351,  345,  354,  354,
+      355,  356,  353,  357,  359,  345,  358,  360,  361,  362,
+      363,  366,  360,  356,  365,  345,  364,  361,  357,  365,
+      364,  367,  368,  366,  369,  363,  359,  374,  362,  370,
+      370,  371,  369,  372,  373,  368,  376,  373,  375,  367,
+      378,  375,  374,  371,  377,  372,  379,  379,  377,  377,
+      380,  380,  376,  378,  381,  376,  382,  382,  384,  381,
+      383,  383,  385,  384,  386,  391,  387,  388,  390,  386,
+      387,  389,  388,  390,  392,  389,  393,  394,  402,  392,
+      397,  393,  402,  385,  395,  391,  398,  395,  396,  396,
+
+      399,  394,  395,  400,  401,  399,  395,  401,  397,  404,
+      398,  403,  400,  405,  402,  406,  403,  407,  405,  408,
+      409,  413,  404,  443,  408,  410,  409,  411,  410,  407,
+      411,  406,  412,  414,  443,  415,  416,  412,  418,  413,
+      415,  416,  417,  418,  419,  417,  420,  414,  419,  419,
+      421,  422,  423,  426,  424,  426,  422,  424,  427,  420,
+      425,  423,  429,  421,  425,  425,  428,  430,  428,  431,
+      432,  433,  424,  434,  435,  433,  436,  427,  437,  438,
+      429,  439,  434,  440,  438,  430,  441,  441,  431,  435,
+      432,  442,  444,  437,  436,  442,  445,  444,  446,  449,
+
+      439,  447,  440,  450,  449,  453,  451,  456,  452,  454,
+      450,  451,  445,  452,  447,  455,  454,  446,  460,  458,
+      457,  456,  458,  453,  455,  457,  459,  461,  461,  462,
+      459,  465,  464,  466,  467,  465,  461,  464,  462,  460,
+      468,  469,  470,  473,  476,  466,  479,  480,  468,  486,
+      481,  482,  467,  480,  481,  479,  482,  484,  473,  469,
+      485,  476,  484,  487,  488,  488,  487,  470,  471,  489,
+      490,  490,  493,  471,  486,  493,  489,  471,  485,  491,
+      471,  492,  492,  494,  501,  495,  496,  471,  494,  497,
+      471,  483,  483,  483,  491,  483,  500,  498,  483,  499,
+
+      499,   68,  501,  483,  495,  498,  496,  502,  497,  483,
+      483,  500,  502,  503,  503,  504,  505,  507,  508,  506,
+      504,  505,  506,  507,  509,  510,  508,  512,  511,  513,
+      514,  514,  509,  511,  512,  516,  515,  517,  519,  521,
+      516,  520,  521,  510,  515,  522,  524,  519,  513,  527,
+      520,  523,  523,  528,  525,  529,  517,  525,  528,  522,
+      530,  524,  531,  532,  533,  525,  536,  534,  535,  537,
+      527,  534,  541,  533,  538,  539,  529,  542,  537,  549,
+      530,  539,  543,  532,  531,  536,  535,  543,  538,  540,
+      540,  542,  541,  544,  546,  545,  547,  548,  544,  545,
+
+      549,  551,  548,  550,  550,  553,  551,  552,  547,  554,
+      552,  555,  556,  546,  557,  557,  555,  558,  558,  559,
+      560,  561,  554,  553,  560,  562,  564,  563,  567,  566,
+      569,  568,  556,  566,  559,  573,  574,  570,  571,  573,
+      561,  563,  570,  567,  572,  569,  564,   62,  578,  562,
+      565,  574,  571,  565,  577,  565,  568,  575,  572,  565,
+      576,  565,  575,  579,  580,  576,  565,  583,  577,  578,
+      580,  565,  575,  581,  582,  582,  584,  579,  581,  583,
+      582,  584,  582,  585,  586,  587,  587,  588,  590,  591,
+      589,  593,  588,  592,  592,  593,  586,  585,  589,  595,
+
+      582,  597,  590,  596,  595,  598,  596,  599,  591,  600,
+      601,  603,  599,  602,  604,  605,  607,  606,  598,  604,
+      597,  610,  602,  611,  608,  607,  601,  612,  600,  608,
+      603,  606,  613,  614,  615,  605,  616,  613,  614,  615,
+      610,  611,  612,  617,  617,  616,  618,  619,  621,  624,
+      625,  618,  621,  621,  622,  622,  623,  626,  622,  623,
+      619,  627,  628,  624,  629,  628,  630,  633,  631,  632,
+      625,  630,  626,  631,  634,  632,  635,  635,  636,  637,
+      634,  627,  639,  633,  640,  629,  638,  636,  641,  638,
+      643,  642,  646,  644,  648,  643,  647,  637,  644,  647,
+
+      639,  649,  650,  640,  642,  648,  651,  650,  641,  652,
+      646,  651,  654,  649,  653,  653,  655,  656,  657,  658,
+      660,  661,  657,  659,  652,  666,  664,  665,  667,  656,
+      655,  654,  659,  667,  671,  675,  668,  658,  669,  660,
+      664,  668,  665,  669,  670,  666,  661,  672,  671,  670,
+      673,  674,  676,  677,  675,  673,  678,  678,  679,  680,
+      681,  672,  682,  682,  683,  680,  674,  676,  684,  683,
+      685,  686,  677,  687,  686,  684,  679,  688,  689,  690,
+      681,  692,  691,  689,  685,  693,  688,  691,  694,  693,
+      695,  687,  696,  699,  697,  700,  698,  694,  690,  701,
+
+      692,  697,  704,  702,  703,  695,  705,  696,  698,  702,
+      708,  710,  699,  707,  713,  705,  700,  701,  707,  703,
+      709,  711,  704,  715,  708,  712,  711,   57,  709,  712,
+      712,  710,  716,  713,  714,  714,  715,  717,  718,  718,
+      719,  716,  717,  720,  722,  719,  721,  721,  720,  723,
+      724,  725,  726,  722,  723,  727,  728,  726,  729,  736,
+      727,  728,  729,  732,  724,  731,  731,  734,  735,  725,
+      730,  734,  737,  744,  732,  739,  740,  736,  743,  730,
+      742,  737,  746,  735,  730,  741,  730,  738,  730,  739,
+      730,  738,  738,  741,  742,  740,  743,  746,  744,  745,
+
+      745,  747,  747,  749,  750,  751,  749,  752,  752,  750,
+      753,  754,  754,  755,  756,  756,  757,  758,  755,  759,
+      760,  762,  758,  772,  751,  760,  763,  759,  761,  761,
+      753,  764,  763,  771,  772,  766,  757,  767,  764,  762,
+      766,  768,  767,  769,  770,  774,  768,  775,  769,  773,
+      773,  776,  771,  770,  777,  778,  776,  779,  780,  781,
+      781,  782,  783,  786,  784,  774,  785,  787,  777,  779,
+      775,  785,  787,  789,  777,  778,  780,  789,  789,  790,
+      793,  782,  784,  791,  794,  796,  786,  783,  790,  794,
+      792,  791,  792,  795,  793,  797,  796,  795,  798,  799,
+
+      800,  801,  802,  803,  805,  800,  806,  803,  804,  809,
+      807,  810,  808,  812,  797,  813,  810,  799,  812,  801,
+      806,  814,  802,  805,  798,  807,  804,  808,  809,  811,
+      814,  815,  816,  813,  817,  818,  811,  819,  816,  820,
+      818,  824,  819,  826,  820,  827,  815,  821,  821,  823,
+      823,  825,  829,  829,  830,  817,  825,  826,  828,  824,
+      831,  832,  828,  828,  827,  833,  834,  836,  840,  835,
+      837,  838,  834,  830,  835,  839,  841,  842,   52,  831,
+      843,  843,  840,  845,  833,  844,  836,  832,  844,  837,
+      838,  846,  842,  848,  839,  845,  846,  841,  847,  849,
+
+      850,  851,  847,  851,  853,  857,  848,  851,  849,  854,
+      854,  855,  858,  850,  856,  860,  855,  858,  856,  873,
+      851,  862,  863,  863,  853,  857,  862,  864,  866,  866,
+      868,  868,  864,  860,  870,  871,  871,  870,  872,  878,
+      874,  875,  876,  880,  873,  881,  875,  877,  877,  879,
+      879,  882,  883,  872,  874,  882,  881,  876,  884,  878,
+      886,  887,  890,  884,  889,  880,  888,  888,  891,  889,
+      892,  883,  893,  897,  894,  887,  894,  899,  886,  892,
+      895,  896,  890,  903,  898,  895,  896,  905,  891,  898,
+      901,  899,  893,  897,  900,  900,  901,  904,  904,  905,
+
+      906,  912,  910,  907,   51,  908,  907,  903,  909,  907,
+      908,  910,  911,  909,  914,  913,  916,  911,  913,  914,
+      906,  907,  915,  915,  917,  918,  912,  919,  920,  921,
+      922,  925,  919,  920,  916,  922,  923,  923,  926,  924,
+      927,  928,  929,  917,  924,  918,  930,  932,  931,  925,
+      933,  934,  921,  931,  929,  928,  936,  938,  926,  930,
+      927,  936,  937,  940,  938,  948,  939,  932,  943,  943,
+      933,  944,  934,  946,  944,  939,  945,  937,  939,  940,
+      953,  945,  947,  949,  948,  950,  952,  952,  951,  946,
+      954,  947,  949,  951,  950,  949,  955,  956,  958,  957,
+
+      953,  959,  960,  954,  961,  961,  962,  963,  964,  967,
+      958,  956,  966,  964,  955,  957,  963,  965,  965,  970,
+      960,  966,  962,  969,  966,  971,  959,  967,  969,  972,
+      971,  973,  965,  974,  975,  972,  976,  970,  974,  976,
+      979,  980,  981,  982,  983,  976,  985,  975,  979,  983,
+      984,  973,  987,  988,  980,  993,  989,  988,  990,  992,
+      981,  989,  982,  990,  985,  991,  984,  994,  992,  996,
+      991, 1000,  987,  995,  995,  998,  999,  997,  993, 1002,
+     1001, 1003,  994,  996,  997, 1001, 1004,  998,  999,   46,
+     1000, 1002, 1004, 1005, 1005, 1006, 1007, 1007, 1006, 1003,
+
+     1009, 1010, 1010, 1011, 1013, 1012, 1014, 1015, 1017, 1009,
+     1012, 1016, 1018, 1013, 1019, 1011, 1016, 1017, 1014, 1020,
+     1020, 1021, 1015, 1022, 1023, 1024, 1021, 1025, 1025, 1019,
+     1017, 1026, 1018, 1027, 1027, 1028, 1028, 1029, 1034, 1036,
+     1044, 1029, 1030, 1023, 1022, 1024, 1031, 1030, 1033, 1031,
+     1035, 1026, 1041, 1033, 1044, 1035, 1034, 1037, 1037, 1038,
+     1038, 1039, 1040, 1042, 1036, 1043, 1039, 1045, 1046, 1046,
+     1047, 1049, 1041, 1051, 1040, 1040, 1040, 1048, 1048, 1052,
+     1052, 1040, 1051, 1042, 1053, 1043, 1054, 1056, 1045, 1055,
+     1058, 1049, 1059, 1054, 1057, 1057, 1047, 1061, 1055, 1053,
+
+     1062, 1063, 1061, 1064, 1065, 1062, 1066, 1068, 1059, 1065,
+     1064, 1066, 1068, 1056, 1067, 1067, 1058, 1069, 1070, 1072,
+     1071, 1063, 1073, 1074, 1075, 1073, 1069, 1076, 1076, 1077,
+     1078, 1072, 1079, 1081, 1080, 1082, 1082, 1083, 1070, 1071,
+     1080, 1074, 1081, 1085, 1077, 1084, 1084, 1079, 1083, 1078,
+     1075, 1086, 1087, 1083, 1088, 1088, 1089, 1087, 1090, 1091,
+     1089, 1089, 1092, 1090, 1085, 1086, 1093, 1094, 1095, 1096,
+     1097, 1093, 1095, 1098, 1092, 1099, 1101, 1100, 1098, 1094,
+     1103, 1096, 1100, 1103, 1107, 1091, 1104, 1104, 1101, 1105,
+     1105, 1106, 1106, 1108, 1110, 1097, 1109, 1099, 1111, 1108,
+
+     1110, 1109, 1115, 1113, 1107, 1117, 1119, 1111, 1113, 1118,
+     1118, 1120, 1121, 1122, 1115, 1123, 1124, 1117, 1125, 1123,
+     1120, 1124, 1126, 1125, 1129, 1130, 1119, 1128, 1128, 1131,
+     1121, 1136, 1122, 1137, 1130, 1139, 1126,   41, 1131, 1128,
+     1133, 1133, 1129, 1138, 1140, 1140, 1136, 1137, 1138, 1141,
+     1144, 1141, 1139, 1142, 1142, 1145, 1147, 1144, 1146, 1146,
+     1148, 1149, 1150, 1152, 1151, 1147, 1153, 1154, 1157, 1161,
+     1157, 1158, 1156, 1149, 1150, 1145, 1151, 1156, 1152, 1159,
+     1163, 1148, 1168, 1161, 1162, 1162, 1153, 1154, 1159, 1158,
+     1164, 1165, 1166, 1165, 1167, 1164, 1169, 1166, 1170, 1167,
+
+     1168, 1172, 1171, 1170, 1173, 1175, 1163, 1171, 1176, 1177,
+     1177, 1179, 1173, 1180, 1172, 1181, 1169, 1178, 1178, 1183,
+     1181, 1183, 1176, 1182, 1175, 1184, 1179, 1185, 1182, 1186,
+     1188, 1186, 1187, 1180, 1193, 1190, 1185, 1184, 1191, 1185,
+     1190, 1187, 1188, 1191, 1194, 1195, 1197, 1193, 1199, 1201,
+     1200, 1202, 1197, 1204, 1199, 1203, 1203, 1205, 1205, 1206,
+     1202, 1195, 1204, 1207, 1194, 1200, 1208, 1207, 1209, 1210,
+     1210, 1208, 1211, 1212, 1201, 1215, 1215, 1216, 1206, 1219,
+     1211, 1209, 1217, 1217, 1218, 1218, 1216, 1220, 1224, 1221,
+     1229, 1219, 1225, 1212, 1221, 1222, 1222, 1225, 1226, 1227,
+
+     1230, 1228, 1231, 1231, 1233, 1220, 1228, 1232, 1229, 1235,
+     1234, 1232, 1236, 1224, 1227, 1234, 1230, 1238, 1239, 1233,
+     1240, 1226, 1241, 1243, 1242, 1245, 1245, 1246, 1247, 1279,
+     1246, 1236, 1248, 1279, 1249, 1235, 1242, 1250, 1250, 1240,
+     1238, 1247, 1239, 1241, 1243, 1253, 1248, 1249, 1251, 1251,
+     1252, 1252, 1254, 1254, 1255, 1255, 1256, 1256, 1253, 1257,
+     1258, 1258, 1259, 1259, 1260, 1262, 1263, 1263, 1264, 1267,
+     1262, 1265, 1265, 1266, 1268, 1267, 1276, 1268, 1257, 1269,
+     1269, 1270, 1270, 1260, 1271, 1272, 1273, 1264, 1274, 1274,
+     1277, 1266, 1278, 1280, 1280, 1269, 1276, 1281, 1282, 1282,
+
+     1272, 1283, 1285, 1271, 1288, 1273, 1286, 1278, 1284, 1284,
+     1287, 1285, 1289, 1277, 1290, 1287, 1281, 1291, 1286, 1292,
+     1299, 1293, 1291, 1294, 1295, 1289, 1296, 1283, 1306, 1288,
+     1293, 1296, 1294, 1297, 1292, 1290, 1301, 1297, 1295, 1303,
+     1299, 1302, 1302, 1306, 1303, 1301, 1304, 1304, 1307, 1309,
+     1311, 1312, 1313, 1311, 1317, 1304, 1312, 1307, 1314, 1314,
+     1320, 1309, 1316, 1316, 1318, 1318, 1319, 1321, 1317, 1322,
+     1322, 1324, 1313, 1325, 1320, 1324, 1325, 1327, 1319, 1326,
+     1326, 1328, 1327, 1329, 1330, 1331, 1321, 1332, 1330, 1333,
+     1334, 1336, 1332, 1337, 1333, 1338, 1334, 1329, 1337,   14,
+
+     1338, 1328, 1339, 1358, 1340, 1331, 1340, 1336, 1343, 1343,
+     1339, 1347, 1347, 1350, 1351, 1351, 1353, 1353, 1350, 1355,
+     1356, 1356, 1357, 1359, 1355, 1358, 1361, 1362, 1359, 1363,
+     1363, 1365, 1366, 1367, 1368, 1370, 1370, 1366, 1357, 1362,
+     1365, 1372, 1373, 1374, 1373, 1361, 1372, 1375, 1379, 1368,
+     1380, 1367, 1375, 1376, 1376, 1377, 1377, 1374, 1378, 1378,
+     1379, 1381, 1382, 1383, 1384, 1385, 1386, 1386, 1380, 1384,
+     1387, 1388, 1389, 1381, 1382, 1383, 1390, 1391, 1393, 1387,
+     1392, 1394, 1395, 1396, 1401, 1385, 1403, 1395, 1396, 1390,
+     1397, 1397, 1389, 1402, 1392, 1404, 1393, 1388, 1398, 1398,
+
+     1405, 1391, 1406, 1394, 1401, 1407, 1408, 1408, 1403, 1405,
+     1411, 1402, 1410, 1410, 1412, 1404, 1413, 1414, 1415, 1411,
+     1417, 1412, 1406, 1407, 1416, 1418, 1418, 1419, 1420, 1421,
+     1422, 1413, 1419, 1423, 1428, 1414, 1415, 1425, 1429, 1417,
+     1416, 1429, 1430, 1430, 1421, 1431, 1420, 1432, 1434, 1422,
+     1433, 1433, 1434, 1423, 1428, 1436, 1425, 1437, 1438, 1438,
+     1431, 1437, 1439, 1441, 1441, 1432, 1442, 1443, 1443, 1449,
+     1436, 1444, 1444, 1448, 1448, 1439, 1451, 1450, 1452, 1453,
+     1454, 1451, 1456, 1452, 1457, 1442, 1450, 1458, 1454, 1457,
+     1459, 1449, 1458, 1460, 1460, 1461, 1461, 1456, 1453, 1462,
+
+       13, 1463, 1464, 1464, 1462, 1459, 1463, 1465, 1465, 1468,
+     1471, 1469, 1470, 1472, 1468, 1469, 1473, 1470, 1474, 1471,
+     1475, 1478, 1477, 1474, 1473, 1477, 1480, 1479, 1472, 1481,
+     1482, 1482, 1475, 1483, 1485, 1480, 1486, 1489, 1481, 1478,
+     1479, 1487, 1483, 1488, 1488, 1492, 1489, 1490, 1490, 1491,
+     1492, 1495, 1494, 1485, 1497, 1498, 1486, 1491, 1497, 1499,
+     1487, 1494, 1501, 1501, 1495, 1503, 1503, 1506, 1512, 1498,
+     1507, 1507, 1508,    0, 1499, 1508, 1509, 1509, 1510, 1510,
+     1511, 1511, 1513, 1514, 1515, 1515, 1512, 1506, 1514, 1516,
+     1520, 1519, 1523, 1516, 1524, 1520, 1513, 1519, 1525, 1524,
+
+     1526, 1527, 1528, 1528, 1529, 1530, 1531, 1532, 1532, 1523,
+     1523, 1533, 1533, 1530, 1534, 1527, 1525, 1535, 1536, 1537,
+     1526, 1539, 1535, 1529, 1538, 1531, 1540, 1548, 1542, 1544,
+     1534, 1542, 1546, 1538, 1545, 1545, 1546, 1550, 1536, 1547,
+     1551, 1539, 1548, 1549, 1549, 1537, 1540, 1544, 1547, 1551,
+     1550, 1553, 1554, 1555, 1559, 1560, 1560, 1561, 1563, 1559,
+     1553, 1564, 1565, 1563, 1554, 1566, 1561, 1567, 1569, 1568,
+     1564, 1570, 1567, 1569, 1571, 1571, 1573, 1574, 1555, 1575,
+     1575, 1576, 1565, 1578, 1577, 1576, 1566, 1568, 1579, 1580,
+     1582, 1584, 1574, 1577, 1589, 1573, 1570, 1580, 1581, 1578,
+
+     1583, 1583, 1590, 1581, 1585, 1585, 1586, 1579, 1588, 1588,
+     1584, 1586, 1592, 1592, 1589, 1593, 1582, 1594, 1595, 1595,
+     1596, 1596, 1597, 1598, 1599, 1590, 1600, 1600, 1601, 1593,
+     1602, 1603, 1604, 1605, 1610, 1598, 1603, 1606, 1605, 1594,
+     1601, 1597, 1607, 1607, 1599, 1609, 1609, 1612, 1613,    0,
+     1602, 1604, 1612, 1610, 1606, 1606, 1614, 1615, 1615, 1616,
+     1616, 1614, 1613, 1617, 1617, 1618, 1620, 1620, 1622, 1622,
+     1618, 1624, 1624, 1625, 1626, 1627, 1627, 1628, 1631, 1632,
+     1632, 1636, 1628, 1626, 1633, 1635, 1631, 1625, 1637, 1633,
+     1635, 1638, 1639, 1636, 1640, 1641, 1644, 1645, 1645, 1647,
+
+     1641, 1646, 1646, 1647, 1651, 1651, 1637, 1638, 1653, 1639,
+     1639, 1656, 1653, 1655, 1655, 1640, 1644, 1658, 1658, 1659,
+     1661, 1662, 1662, 1663, 1663, 1656, 1664, 1665, 1666, 1669,
+     1667, 1668, 1670, 1670, 1659, 1667, 1668,    0, 1661, 1673,
+     1673, 1679, 1665, 1675, 1675, 1677, 1677, 1683, 1669, 1666,
+     1684, 1664, 1683, 1679, 1680, 1680, 1685, 1686, 1688, 1687,
+     1694, 1685, 1693, 1696, 1684, 1695, 1693, 1697, 1698, 1699,
+     1702, 1700, 1701, 1701, 1688, 1705, 1686, 1687, 1695, 1702,
+     1694, 1706, 1696, 1703, 1698, 1697, 1700, 1704, 1703, 1708,
+     1707, 1710, 1704, 1711, 1699, 1707, 1706, 1712, 1715, 1713,
+
+     1705, 1714, 1712, 1708, 1713, 1716, 1710, 1717, 1718, 1719,
+     1720, 1715, 1711, 1721, 1722, 1714, 1724, 1725, 1725, 1722,
+     1723, 1717, 1719, 1720, 1716, 1723, 1726, 1718, 1727, 1728,
+     1729, 1726, 1721, 1727, 1728, 1724, 1730, 1731, 1731, 1732,
+     1733, 1730, 1734, 1735, 1736, 1737, 1732, 1739, 1735, 1729,
+     1740, 1741, 1739, 1742, 1743, 1743, 1745, 1744, 1737, 1733,
+        0, 1734, 1744, 1736, 1746, 1746, 1742, 1747, 1747, 1740,
+     1741, 1748, 1749, 1750, 1752, 1745, 1748, 1751, 1751, 1749,
+     1753, 1752, 1754, 1755, 1756, 1758, 1759, 1753, 1755, 1760,
+     1758, 1759, 1750, 1761, 1762, 1762, 1763, 1764, 1765, 1765,
+
+     1767, 1754, 1776, 1756, 1766, 1766, 1777, 1767, 1760, 1768,
+     1768, 1770, 1761, 1769, 1769, 1763, 1764, 1772, 1770, 1775,
+        0, 1776, 1772,    0, 1775, 1777, 1778, 1778, 1779, 1779,
+     1783, 1783, 1783, 1783, 1783, 1783, 1783, 1784, 1784, 1784,
+     1784, 1784, 1784, 1784, 1785, 1785, 1785, 1785, 1785, 1785,
+     1785, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1787, 1787,
+     1787, 1787, 1787, 1787, 1787, 1789, 1789,    0, 1789, 1789,
+     1789, 1789, 1790, 1790,    0,    0,    0, 1790, 1790, 1791,
+     1791,    0,    0, 1791,    0, 1791, 1792,    0,    0,    0,
+        0,    0, 1792, 1793, 1793,    0,    0,    0, 1793, 1793,
+
+     1794,    0,    0,    0,    0,    0, 1794, 1795, 1795,    0,
+     1795, 1795, 1795, 1795, 1796, 1796,    0, 1796, 1796, 1796,
+     1796, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+     1782
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2000,7 +2010,7 @@ static void config_end_include(void)
 #define YY_NO_INPUT 1
 #endif
 
-#line 2002 "<stdout>"
+#line 2012 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -2187,7 +2197,7 @@ YY_DECL
     
 #line 201 "./util/configlexer.lex"
 
-#line 2189 "<stdout>"
+#line 2199 "<stdout>"
 
        if ( !(yy_init) )
                {
@@ -2246,13 +2256,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 >= 1771 )
+                               if ( yy_current_state >= 1783 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 3503 );
+               while ( yy_base[yy_current_state] != 3522 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -2367,735 +2377,745 @@ YY_RULE_SETUP
 case 18:
 YY_RULE_SETUP
 #line 222 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_TCP_MSS) }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
 #line 223 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SSL_SERVICE_KEY) }
+{ YDVAR(1, VAR_OUTGOING_TCP_MSS) }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
 #line 224 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SSL_SERVICE_PEM) }
+{ YDVAR(1, VAR_SSL_UPSTREAM) }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
 #line 225 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SSL_PORT) }
+{ YDVAR(1, VAR_SSL_SERVICE_KEY) }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
 #line 226 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DO_DAEMONIZE) }
+{ YDVAR(1, VAR_SSL_SERVICE_PEM) }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
 #line 227 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE) }
+{ YDVAR(1, VAR_SSL_PORT) }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
 #line 228 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE) }
+{ YDVAR(1, VAR_DO_DAEMONIZE) }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
 #line 229 "./util/configlexer.lex"
-{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
+{ YDVAR(1, VAR_INTERFACE) }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
 #line 230 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
+{ YDVAR(1, VAR_INTERFACE) }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
 #line 231 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SO_RCVBUF) }
+{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
 #line 232 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SO_SNDBUF) }
+{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 233 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SO_REUSEPORT) }
+{ YDVAR(1, VAR_SO_RCVBUF) }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
 #line 234 "./util/configlexer.lex"
-{ YDVAR(1, VAR_IP_TRANSPARENT) }
+{ YDVAR(1, VAR_SO_SNDBUF) }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
 #line 235 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CHROOT) }
+{ YDVAR(1, VAR_SO_REUSEPORT) }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
 #line 236 "./util/configlexer.lex"
-{ YDVAR(1, VAR_USERNAME) }
+{ YDVAR(1, VAR_IP_TRANSPARENT) }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
 #line 237 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DIRECTORY) }
+{ YDVAR(1, VAR_CHROOT) }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
 #line 238 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOGFILE) }
+{ YDVAR(1, VAR_USERNAME) }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 239 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PIDFILE) }
+{ YDVAR(1, VAR_DIRECTORY) }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
 #line 240 "./util/configlexer.lex"
-{ YDVAR(1, VAR_ROOT_HINTS) }
+{ YDVAR(1, VAR_LOGFILE) }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
 #line 241 "./util/configlexer.lex"
-{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
+{ YDVAR(1, VAR_PIDFILE) }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
 #line 242 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
+{ YDVAR(1, VAR_ROOT_HINTS) }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
 #line 243 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
+{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
 #line 244 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
+{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
 #line 245 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
+{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
 #line 246 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
+{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
 #line 247 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MAX_TTL) }
+{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
 #line 248 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
+{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
 #line 249 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MIN_TTL) }
+{ YDVAR(1, VAR_CACHE_MAX_TTL) }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
 #line 250 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_HOST_TTL) }
+{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
        YY_BREAK
 case 47:
 YY_RULE_SETUP
 #line 251 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_LAME_TTL) }
+{ YDVAR(1, VAR_CACHE_MIN_TTL) }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
 #line 252 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
+{ YDVAR(1, VAR_INFRA_HOST_TTL) }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
 #line 253 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
+{ YDVAR(1, VAR_INFRA_LAME_TTL) }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
 #line 254 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
+{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
 #line 255 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
+{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
 #line 256 "./util/configlexer.lex"
-{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
+{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
        YY_BREAK
 case 53:
 YY_RULE_SETUP
 #line 257 "./util/configlexer.lex"
-{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
+{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
 #line 258 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DELAY_CLOSE) }
+{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
        YY_BREAK
 case 55:
 YY_RULE_SETUP
 #line 259 "./util/configlexer.lex"
-{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
+{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
 #line 260 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
+{ YDVAR(1, VAR_DELAY_CLOSE) }
        YY_BREAK
 case 57:
 YY_RULE_SETUP
 #line 261 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
+{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
 #line 262 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_GLUE) }
+{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
        YY_BREAK
 case 59:
 YY_RULE_SETUP
 #line 263 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
+{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
 #line 264 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
+{ YDVAR(1, VAR_HARDEN_GLUE) }
        YY_BREAK
 case 61:
 YY_RULE_SETUP
 #line 265 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
+{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
 #line 266 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
+{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
        YY_BREAK
 case 63:
 YY_RULE_SETUP
 #line 267 "./util/configlexer.lex"
-{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
+{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
 #line 268 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CAPS_WHITELIST) }
+{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
 #line 269 "./util/configlexer.lex"
-{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
+{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
 #line 270 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
+{ YDVAR(1, VAR_CAPS_WHITELIST) }
        YY_BREAK
 case 67:
 YY_RULE_SETUP
 #line 271 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
+{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
 #line 272 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH_KEY) }
+{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
        YY_BREAK
 case 69:
 YY_RULE_SETUP
 #line 273 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH) }
+{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
        YY_BREAK
 case 70:
 YY_RULE_SETUP
 #line 274 "./util/configlexer.lex"
-{ YDVAR(0, VAR_STUB_ZONE) }
+{ YDVAR(1, VAR_PREFETCH_KEY) }
        YY_BREAK
 case 71:
 YY_RULE_SETUP
 #line 275 "./util/configlexer.lex"
-{ YDVAR(1, VAR_NAME) }
+{ YDVAR(1, VAR_PREFETCH) }
        YY_BREAK
 case 72:
 YY_RULE_SETUP
 #line 276 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_ADDR) }
+{ YDVAR(0, VAR_STUB_ZONE) }
        YY_BREAK
 case 73:
 YY_RULE_SETUP
 #line 277 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_HOST) }
+{ YDVAR(1, VAR_NAME) }
        YY_BREAK
 case 74:
 YY_RULE_SETUP
 #line 278 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_PRIME) }
+{ YDVAR(1, VAR_STUB_ADDR) }
        YY_BREAK
 case 75:
 YY_RULE_SETUP
 #line 279 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_FIRST) }
+{ YDVAR(1, VAR_STUB_HOST) }
        YY_BREAK
 case 76:
 YY_RULE_SETUP
 #line 280 "./util/configlexer.lex"
-{ YDVAR(0, VAR_FORWARD_ZONE) }
+{ YDVAR(1, VAR_STUB_PRIME) }
        YY_BREAK
 case 77:
 YY_RULE_SETUP
 #line 281 "./util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_ADDR) }
+{ YDVAR(1, VAR_STUB_FIRST) }
        YY_BREAK
 case 78:
 YY_RULE_SETUP
 #line 282 "./util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_HOST) }
+{ YDVAR(0, VAR_FORWARD_ZONE) }
        YY_BREAK
 case 79:
 YY_RULE_SETUP
 #line 283 "./util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_FIRST) }
+{ YDVAR(1, VAR_FORWARD_ADDR) }
        YY_BREAK
 case 80:
 YY_RULE_SETUP
 #line 284 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
+{ YDVAR(1, VAR_FORWARD_HOST) }
        YY_BREAK
 case 81:
 YY_RULE_SETUP
 #line 285 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
+{ YDVAR(1, VAR_FORWARD_FIRST) }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
 #line 286 "./util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
 #line 287 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_IDENTITY) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
 #line 288 "./util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_VERSION) }
+{ YDVAR(2, VAR_ACCESS_CONTROL) }
        YY_BREAK
 case 85:
 YY_RULE_SETUP
 #line 289 "./util/configlexer.lex"
-{ YDVAR(1, VAR_IDENTITY) }
+{ YDVAR(1, VAR_HIDE_IDENTITY) }
        YY_BREAK
 case 86:
 YY_RULE_SETUP
 #line 290 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VERSION) }
+{ YDVAR(1, VAR_HIDE_VERSION) }
        YY_BREAK
 case 87:
 YY_RULE_SETUP
 #line 291 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MODULE_CONF) }
+{ YDVAR(1, VAR_IDENTITY) }
        YY_BREAK
 case 88:
 YY_RULE_SETUP
 #line 292 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR) }
+{ YDVAR(1, VAR_VERSION) }
        YY_BREAK
 case 89:
 YY_RULE_SETUP
 #line 293 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
+{ YDVAR(1, VAR_MODULE_CONF) }
        YY_BREAK
 case 90:
 YY_RULE_SETUP
 #line 294 "./util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR) }
        YY_BREAK
 case 91:
 YY_RULE_SETUP
 #line 295 "./util/configlexer.lex"
-{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
        YY_BREAK
 case 92:
 YY_RULE_SETUP
 #line 296 "./util/configlexer.lex"
-{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
        YY_BREAK
 case 93:
 YY_RULE_SETUP
 #line 297 "./util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR) }
+{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
        YY_BREAK
 case 94:
 YY_RULE_SETUP
 #line 298 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
+{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
        YY_BREAK
 case 95:
 YY_RULE_SETUP
 #line 299 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
+{ YDVAR(1, VAR_TRUST_ANCHOR) }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
 #line 300 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
+{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
        YY_BREAK
 case 97:
 YY_RULE_SETUP
 #line 301 "./util/configlexer.lex"
-{ YDVAR(1, VAR_BOGUS_TTL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
        YY_BREAK
 case 98:
 YY_RULE_SETUP
 #line 302 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
 #line 303 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
+{ YDVAR(1, VAR_BOGUS_TTL) }
        YY_BREAK
 case 100:
 YY_RULE_SETUP
 #line 304 "./util/configlexer.lex"
-{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
+{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
        YY_BREAK
 case 101:
 YY_RULE_SETUP
 #line 305 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
+{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
 #line 306 "./util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
+{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
        YY_BREAK
 case 103:
 YY_RULE_SETUP
 #line 307 "./util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
+{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
 #line 308 "./util/configlexer.lex"
-{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
+{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
 #line 309 "./util/configlexer.lex"
-{ 
-                                 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
+{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 311 "./util/configlexer.lex"
-{ YDVAR(1, VAR_ADD_HOLDDOWN) }
+#line 310 "./util/configlexer.lex"
+{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 312 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DEL_HOLDDOWN) }
+#line 311 "./util/configlexer.lex"
+{ 
+                                 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
        YY_BREAK
 case 108:
 YY_RULE_SETUP
 #line 313 "./util/configlexer.lex"
-{ YDVAR(1, VAR_KEEP_MISSING) }
+{ YDVAR(1, VAR_ADD_HOLDDOWN) }
        YY_BREAK
 case 109:
 YY_RULE_SETUP
 #line 314 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
+{ YDVAR(1, VAR_DEL_HOLDDOWN) }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
 #line 315 "./util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSLOG) }
+{ YDVAR(1, VAR_KEEP_MISSING) }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
 #line 316 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
 #line 317 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_USE_SYSLOG) }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
 #line 318 "./util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
 #line 319 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
 #line 320 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
 #line 321 "./util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
 #line 322 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
 #line 323 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
 #line 324 "./util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
 #line 325 "./util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
 #line 326 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 327 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
 #line 328 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
 #line 329 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
 #line 330 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
 #line 331 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
 #line 332 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
 #line 333 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
 #line 334 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
 #line 335 "./util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
        YY_BREAK
 case 131:
 YY_RULE_SETUP
 #line 336 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
 #line 337 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(0, VAR_PYTHON) }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
 #line 338 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
 #line 339 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 340 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
 #line 341 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
        YY_BREAK
 case 137:
 YY_RULE_SETUP
 #line 342 "./util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
 #line 343 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
        YY_BREAK
 case 139:
 YY_RULE_SETUP
 #line 344 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(0, VAR_DNSTAP) }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
 #line 345 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
 #line 346 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
        YY_BREAK
 case 142:
 YY_RULE_SETUP
 #line 347 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 348 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 349 "./util/configlexer.lex"
-{
-               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 351 "./util/configlexer.lex"
-{
-               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+#line 350 "./util/configlexer.lex"
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 353 "./util/configlexer.lex"
+#line 351 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 355 "./util/configlexer.lex"
+#line 353 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 357 "./util/configlexer.lex"
+#line 355 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 359 "./util/configlexer.lex"
+#line 357 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 361 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+#line 359 "./util/configlexer.lex"
+{
+               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 362 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+#line 361 "./util/configlexer.lex"
+{
+               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
 #line 363 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT) }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
 #line 364 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
 #line 365 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
 #line 366 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
        YY_BREAK
 case 156:
-/* rule 156 can match eol */
 YY_RULE_SETUP
 #line 367 "./util/configlexer.lex"
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+       YY_BREAK
+case 157:
+YY_RULE_SETUP
+#line 368 "./util/configlexer.lex"
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+       YY_BREAK
+case 158:
+/* rule 158 can match eol */
+YY_RULE_SETUP
+#line 369 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 157:
+case 159:
 YY_RULE_SETUP
-#line 370 "./util/configlexer.lex"
+#line 372 "./util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 371 "./util/configlexer.lex"
+#line 373 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 158:
+case 160:
 YY_RULE_SETUP
-#line 376 "./util/configlexer.lex"
+#line 378 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 159:
-/* rule 159 can match eol */
+case 161:
+/* rule 161 can match eol */
 YY_RULE_SETUP
-#line 377 "./util/configlexer.lex"
+#line 379 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end \""); 
                          cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 160:
+case 162:
 YY_RULE_SETUP
-#line 379 "./util/configlexer.lex"
+#line 381 "./util/configlexer.lex"
 {
         LEXOUT(("QE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3108,34 +3128,34 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 161:
+case 163:
 YY_RULE_SETUP
-#line 391 "./util/configlexer.lex"
+#line 393 "./util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 392 "./util/configlexer.lex"
+#line 394 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 162:
+case 164:
 YY_RULE_SETUP
-#line 397 "./util/configlexer.lex"
+#line 399 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 163:
-/* rule 163 can match eol */
+case 165:
+/* rule 165 can match eol */
 YY_RULE_SETUP
-#line 398 "./util/configlexer.lex"
+#line 400 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end '"); 
                             cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 164:
+case 166:
 YY_RULE_SETUP
-#line 400 "./util/configlexer.lex"
+#line 402 "./util/configlexer.lex"
 {
         LEXOUT(("SQE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3148,38 +3168,38 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 165:
+case 167:
 YY_RULE_SETUP
-#line 412 "./util/configlexer.lex"
+#line 414 "./util/configlexer.lex"
 { 
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 414 "./util/configlexer.lex"
+#line 416 "./util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 166:
+case 168:
 YY_RULE_SETUP
-#line 418 "./util/configlexer.lex"
+#line 420 "./util/configlexer.lex"
 { LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
-case 167:
-/* rule 167 can match eol */
+case 169:
+/* rule 169 can match eol */
 YY_RULE_SETUP
-#line 419 "./util/configlexer.lex"
+#line 421 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
-case 168:
+case 170:
 YY_RULE_SETUP
-#line 420 "./util/configlexer.lex"
+#line 422 "./util/configlexer.lex"
 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
        YY_BREAK
-case 169:
+case 171:
 YY_RULE_SETUP
-#line 421 "./util/configlexer.lex"
+#line 423 "./util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext);
@@ -3187,27 +3207,27 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 426 "./util/configlexer.lex"
+#line 428 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 170:
+case 172:
 YY_RULE_SETUP
-#line 430 "./util/configlexer.lex"
+#line 432 "./util/configlexer.lex"
 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 171:
-/* rule 171 can match eol */
+case 173:
+/* rule 173 can match eol */
 YY_RULE_SETUP
-#line 431 "./util/configlexer.lex"
+#line 433 "./util/configlexer.lex"
 { yyerror("newline before \" in include name"); 
                                  cfg_parser->line++; BEGIN(inc_prev); }
        YY_BREAK
-case 172:
+case 174:
 YY_RULE_SETUP
-#line 433 "./util/configlexer.lex"
+#line 435 "./util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -3217,7 +3237,7 @@ YY_RULE_SETUP
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(val):
-#line 439 "./util/configlexer.lex"
+#line 441 "./util/configlexer.lex"
 {
        LEXOUT(("LEXEOF "));
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
@@ -3229,33 +3249,33 @@ case YY_STATE_EOF(val):
        }
 }
        YY_BREAK
-case 173:
+case 175:
 YY_RULE_SETUP
-#line 450 "./util/configlexer.lex"
+#line 452 "./util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        if(--num_args == 0) { BEGIN(INITIAL); }
                        yylval.str = strdup(yytext); return STRING_ARG; }
        YY_BREAK
-case 174:
+case 176:
 YY_RULE_SETUP
-#line 454 "./util/configlexer.lex"
+#line 456 "./util/configlexer.lex"
 {
        ub_c_error_msg("unknown keyword '%s'", yytext);
        }
        YY_BREAK
-case 175:
+case 177:
 YY_RULE_SETUP
-#line 458 "./util/configlexer.lex"
+#line 460 "./util/configlexer.lex"
 {
        ub_c_error_msg("stray '%s'", yytext);
        }
        YY_BREAK
-case 176:
+case 178:
 YY_RULE_SETUP
-#line 462 "./util/configlexer.lex"
+#line 464 "./util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 3257 "<stdout>"
+#line 3277 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -3545,7 +3565,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 1771 )
+                       if ( yy_current_state >= 1783 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3573,11 +3593,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 1771 )
+               if ( yy_current_state >= 1783 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 1770);
+       yy_is_jam = (yy_current_state == 1782);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4210,7 +4230,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 462 "./util/configlexer.lex"
+#line 464 "./util/configlexer.lex"
 
 
 
index 6637943e482691647235a18b033855b45ef11c46..e0ea425487bea59d08168bfd05168a41d7cedae5 100644 (file)
@@ -219,6 +219,8 @@ do-ip6{COLON}                       { YDVAR(1, VAR_DO_IP6) }
 do-udp{COLON}                  { YDVAR(1, VAR_DO_UDP) }
 do-tcp{COLON}                  { YDVAR(1, VAR_DO_TCP) }
 tcp-upstream{COLON}            { YDVAR(1, VAR_TCP_UPSTREAM) }
+tcp-mss{COLON}                 { YDVAR(1, VAR_TCP_MSS) }
+outgoing-tcp-mss{COLON}                { YDVAR(1, VAR_OUTGOING_TCP_MSS) }
 ssl-upstream{COLON}            { YDVAR(1, VAR_SSL_UPSTREAM) }
 ssl-service-key{COLON}         { YDVAR(1, VAR_SSL_SERVICE_KEY) }
 ssl-service-pem{COLON}         { YDVAR(1, VAR_SSL_SERVICE_PEM) }
index 50346f6eed285315ae9630385dac49643d988d7b..180733db0e93029937b235de95569a80edb0486d 100644 (file)
@@ -145,148 +145,150 @@ extern int yydebug;
      VAR_DO_IP6 = 273,
      VAR_DO_UDP = 274,
      VAR_DO_TCP = 275,
-     VAR_CHROOT = 276,
-     VAR_USERNAME = 277,
-     VAR_DIRECTORY = 278,
-     VAR_LOGFILE = 279,
-     VAR_PIDFILE = 280,
-     VAR_MSG_CACHE_SIZE = 281,
-     VAR_MSG_CACHE_SLABS = 282,
-     VAR_NUM_QUERIES_PER_THREAD = 283,
-     VAR_RRSET_CACHE_SIZE = 284,
-     VAR_RRSET_CACHE_SLABS = 285,
-     VAR_OUTGOING_NUM_TCP = 286,
-     VAR_INFRA_HOST_TTL = 287,
-     VAR_INFRA_LAME_TTL = 288,
-     VAR_INFRA_CACHE_SLABS = 289,
-     VAR_INFRA_CACHE_NUMHOSTS = 290,
-     VAR_INFRA_CACHE_LAME_SIZE = 291,
-     VAR_NAME = 292,
-     VAR_STUB_ZONE = 293,
-     VAR_STUB_HOST = 294,
-     VAR_STUB_ADDR = 295,
-     VAR_TARGET_FETCH_POLICY = 296,
-     VAR_HARDEN_SHORT_BUFSIZE = 297,
-     VAR_HARDEN_LARGE_QUERIES = 298,
-     VAR_FORWARD_ZONE = 299,
-     VAR_FORWARD_HOST = 300,
-     VAR_FORWARD_ADDR = 301,
-     VAR_DO_NOT_QUERY_ADDRESS = 302,
-     VAR_HIDE_IDENTITY = 303,
-     VAR_HIDE_VERSION = 304,
-     VAR_IDENTITY = 305,
-     VAR_VERSION = 306,
-     VAR_HARDEN_GLUE = 307,
-     VAR_MODULE_CONF = 308,
-     VAR_TRUST_ANCHOR_FILE = 309,
-     VAR_TRUST_ANCHOR = 310,
-     VAR_VAL_OVERRIDE_DATE = 311,
-     VAR_BOGUS_TTL = 312,
-     VAR_VAL_CLEAN_ADDITIONAL = 313,
-     VAR_VAL_PERMISSIVE_MODE = 314,
-     VAR_INCOMING_NUM_TCP = 315,
-     VAR_MSG_BUFFER_SIZE = 316,
-     VAR_KEY_CACHE_SIZE = 317,
-     VAR_KEY_CACHE_SLABS = 318,
-     VAR_TRUSTED_KEYS_FILE = 319,
-     VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320,
-     VAR_USE_SYSLOG = 321,
-     VAR_OUTGOING_INTERFACE = 322,
-     VAR_ROOT_HINTS = 323,
-     VAR_DO_NOT_QUERY_LOCALHOST = 324,
-     VAR_CACHE_MAX_TTL = 325,
-     VAR_HARDEN_DNSSEC_STRIPPED = 326,
-     VAR_ACCESS_CONTROL = 327,
-     VAR_LOCAL_ZONE = 328,
-     VAR_LOCAL_DATA = 329,
-     VAR_INTERFACE_AUTOMATIC = 330,
-     VAR_STATISTICS_INTERVAL = 331,
-     VAR_DO_DAEMONIZE = 332,
-     VAR_USE_CAPS_FOR_ID = 333,
-     VAR_STATISTICS_CUMULATIVE = 334,
-     VAR_OUTGOING_PORT_PERMIT = 335,
-     VAR_OUTGOING_PORT_AVOID = 336,
-     VAR_DLV_ANCHOR_FILE = 337,
-     VAR_DLV_ANCHOR = 338,
-     VAR_NEG_CACHE_SIZE = 339,
-     VAR_HARDEN_REFERRAL_PATH = 340,
-     VAR_PRIVATE_ADDRESS = 341,
-     VAR_PRIVATE_DOMAIN = 342,
-     VAR_REMOTE_CONTROL = 343,
-     VAR_CONTROL_ENABLE = 344,
-     VAR_CONTROL_INTERFACE = 345,
-     VAR_CONTROL_PORT = 346,
-     VAR_SERVER_KEY_FILE = 347,
-     VAR_SERVER_CERT_FILE = 348,
-     VAR_CONTROL_KEY_FILE = 349,
-     VAR_CONTROL_CERT_FILE = 350,
-     VAR_CONTROL_USE_CERT = 351,
-     VAR_EXTENDED_STATISTICS = 352,
-     VAR_LOCAL_DATA_PTR = 353,
-     VAR_JOSTLE_TIMEOUT = 354,
-     VAR_STUB_PRIME = 355,
-     VAR_UNWANTED_REPLY_THRESHOLD = 356,
-     VAR_LOG_TIME_ASCII = 357,
-     VAR_DOMAIN_INSECURE = 358,
-     VAR_PYTHON = 359,
-     VAR_PYTHON_SCRIPT = 360,
-     VAR_VAL_SIG_SKEW_MIN = 361,
-     VAR_VAL_SIG_SKEW_MAX = 362,
-     VAR_CACHE_MIN_TTL = 363,
-     VAR_VAL_LOG_LEVEL = 364,
-     VAR_AUTO_TRUST_ANCHOR_FILE = 365,
-     VAR_KEEP_MISSING = 366,
-     VAR_ADD_HOLDDOWN = 367,
-     VAR_DEL_HOLDDOWN = 368,
-     VAR_SO_RCVBUF = 369,
-     VAR_EDNS_BUFFER_SIZE = 370,
-     VAR_PREFETCH = 371,
-     VAR_PREFETCH_KEY = 372,
-     VAR_SO_SNDBUF = 373,
-     VAR_SO_REUSEPORT = 374,
-     VAR_HARDEN_BELOW_NXDOMAIN = 375,
-     VAR_IGNORE_CD_FLAG = 376,
-     VAR_LOG_QUERIES = 377,
-     VAR_TCP_UPSTREAM = 378,
-     VAR_SSL_UPSTREAM = 379,
-     VAR_SSL_SERVICE_KEY = 380,
-     VAR_SSL_SERVICE_PEM = 381,
-     VAR_SSL_PORT = 382,
-     VAR_FORWARD_FIRST = 383,
-     VAR_STUB_FIRST = 384,
-     VAR_MINIMAL_RESPONSES = 385,
-     VAR_RRSET_ROUNDROBIN = 386,
-     VAR_MAX_UDP_SIZE = 387,
-     VAR_DELAY_CLOSE = 388,
-     VAR_UNBLOCK_LAN_ZONES = 389,
-     VAR_INFRA_CACHE_MIN_RTT = 390,
-     VAR_DNS64_PREFIX = 391,
-     VAR_DNS64_SYNTHALL = 392,
-     VAR_DNSTAP = 393,
-     VAR_DNSTAP_ENABLE = 394,
-     VAR_DNSTAP_SOCKET_PATH = 395,
-     VAR_DNSTAP_SEND_IDENTITY = 396,
-     VAR_DNSTAP_SEND_VERSION = 397,
-     VAR_DNSTAP_IDENTITY = 398,
-     VAR_DNSTAP_VERSION = 399,
-     VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400,
-     VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401,
-     VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402,
-     VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403,
-     VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404,
-     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405,
-     VAR_HARDEN_ALGO_DOWNGRADE = 406,
-     VAR_IP_TRANSPARENT = 407,
-     VAR_RATELIMIT = 408,
-     VAR_RATELIMIT_SLABS = 409,
-     VAR_RATELIMIT_SIZE = 410,
-     VAR_RATELIMIT_FOR_DOMAIN = 411,
-     VAR_RATELIMIT_BELOW_DOMAIN = 412,
-     VAR_RATELIMIT_FACTOR = 413,
-     VAR_CAPS_WHITELIST = 414,
-     VAR_CACHE_MAX_NEGATIVE_TTL = 415,
-     VAR_PERMIT_SMALL_HOLDDOWN = 416,
-     VAR_QNAME_MINIMISATION = 417
+     VAR_TCP_MSS = 276,
+     VAR_OUTGOING_TCP_MSS = 277,
+     VAR_CHROOT = 278,
+     VAR_USERNAME = 279,
+     VAR_DIRECTORY = 280,
+     VAR_LOGFILE = 281,
+     VAR_PIDFILE = 282,
+     VAR_MSG_CACHE_SIZE = 283,
+     VAR_MSG_CACHE_SLABS = 284,
+     VAR_NUM_QUERIES_PER_THREAD = 285,
+     VAR_RRSET_CACHE_SIZE = 286,
+     VAR_RRSET_CACHE_SLABS = 287,
+     VAR_OUTGOING_NUM_TCP = 288,
+     VAR_INFRA_HOST_TTL = 289,
+     VAR_INFRA_LAME_TTL = 290,
+     VAR_INFRA_CACHE_SLABS = 291,
+     VAR_INFRA_CACHE_NUMHOSTS = 292,
+     VAR_INFRA_CACHE_LAME_SIZE = 293,
+     VAR_NAME = 294,
+     VAR_STUB_ZONE = 295,
+     VAR_STUB_HOST = 296,
+     VAR_STUB_ADDR = 297,
+     VAR_TARGET_FETCH_POLICY = 298,
+     VAR_HARDEN_SHORT_BUFSIZE = 299,
+     VAR_HARDEN_LARGE_QUERIES = 300,
+     VAR_FORWARD_ZONE = 301,
+     VAR_FORWARD_HOST = 302,
+     VAR_FORWARD_ADDR = 303,
+     VAR_DO_NOT_QUERY_ADDRESS = 304,
+     VAR_HIDE_IDENTITY = 305,
+     VAR_HIDE_VERSION = 306,
+     VAR_IDENTITY = 307,
+     VAR_VERSION = 308,
+     VAR_HARDEN_GLUE = 309,
+     VAR_MODULE_CONF = 310,
+     VAR_TRUST_ANCHOR_FILE = 311,
+     VAR_TRUST_ANCHOR = 312,
+     VAR_VAL_OVERRIDE_DATE = 313,
+     VAR_BOGUS_TTL = 314,
+     VAR_VAL_CLEAN_ADDITIONAL = 315,
+     VAR_VAL_PERMISSIVE_MODE = 316,
+     VAR_INCOMING_NUM_TCP = 317,
+     VAR_MSG_BUFFER_SIZE = 318,
+     VAR_KEY_CACHE_SIZE = 319,
+     VAR_KEY_CACHE_SLABS = 320,
+     VAR_TRUSTED_KEYS_FILE = 321,
+     VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 322,
+     VAR_USE_SYSLOG = 323,
+     VAR_OUTGOING_INTERFACE = 324,
+     VAR_ROOT_HINTS = 325,
+     VAR_DO_NOT_QUERY_LOCALHOST = 326,
+     VAR_CACHE_MAX_TTL = 327,
+     VAR_HARDEN_DNSSEC_STRIPPED = 328,
+     VAR_ACCESS_CONTROL = 329,
+     VAR_LOCAL_ZONE = 330,
+     VAR_LOCAL_DATA = 331,
+     VAR_INTERFACE_AUTOMATIC = 332,
+     VAR_STATISTICS_INTERVAL = 333,
+     VAR_DO_DAEMONIZE = 334,
+     VAR_USE_CAPS_FOR_ID = 335,
+     VAR_STATISTICS_CUMULATIVE = 336,
+     VAR_OUTGOING_PORT_PERMIT = 337,
+     VAR_OUTGOING_PORT_AVOID = 338,
+     VAR_DLV_ANCHOR_FILE = 339,
+     VAR_DLV_ANCHOR = 340,
+     VAR_NEG_CACHE_SIZE = 341,
+     VAR_HARDEN_REFERRAL_PATH = 342,
+     VAR_PRIVATE_ADDRESS = 343,
+     VAR_PRIVATE_DOMAIN = 344,
+     VAR_REMOTE_CONTROL = 345,
+     VAR_CONTROL_ENABLE = 346,
+     VAR_CONTROL_INTERFACE = 347,
+     VAR_CONTROL_PORT = 348,
+     VAR_SERVER_KEY_FILE = 349,
+     VAR_SERVER_CERT_FILE = 350,
+     VAR_CONTROL_KEY_FILE = 351,
+     VAR_CONTROL_CERT_FILE = 352,
+     VAR_CONTROL_USE_CERT = 353,
+     VAR_EXTENDED_STATISTICS = 354,
+     VAR_LOCAL_DATA_PTR = 355,
+     VAR_JOSTLE_TIMEOUT = 356,
+     VAR_STUB_PRIME = 357,
+     VAR_UNWANTED_REPLY_THRESHOLD = 358,
+     VAR_LOG_TIME_ASCII = 359,
+     VAR_DOMAIN_INSECURE = 360,
+     VAR_PYTHON = 361,
+     VAR_PYTHON_SCRIPT = 362,
+     VAR_VAL_SIG_SKEW_MIN = 363,
+     VAR_VAL_SIG_SKEW_MAX = 364,
+     VAR_CACHE_MIN_TTL = 365,
+     VAR_VAL_LOG_LEVEL = 366,
+     VAR_AUTO_TRUST_ANCHOR_FILE = 367,
+     VAR_KEEP_MISSING = 368,
+     VAR_ADD_HOLDDOWN = 369,
+     VAR_DEL_HOLDDOWN = 370,
+     VAR_SO_RCVBUF = 371,
+     VAR_EDNS_BUFFER_SIZE = 372,
+     VAR_PREFETCH = 373,
+     VAR_PREFETCH_KEY = 374,
+     VAR_SO_SNDBUF = 375,
+     VAR_SO_REUSEPORT = 376,
+     VAR_HARDEN_BELOW_NXDOMAIN = 377,
+     VAR_IGNORE_CD_FLAG = 378,
+     VAR_LOG_QUERIES = 379,
+     VAR_TCP_UPSTREAM = 380,
+     VAR_SSL_UPSTREAM = 381,
+     VAR_SSL_SERVICE_KEY = 382,
+     VAR_SSL_SERVICE_PEM = 383,
+     VAR_SSL_PORT = 384,
+     VAR_FORWARD_FIRST = 385,
+     VAR_STUB_FIRST = 386,
+     VAR_MINIMAL_RESPONSES = 387,
+     VAR_RRSET_ROUNDROBIN = 388,
+     VAR_MAX_UDP_SIZE = 389,
+     VAR_DELAY_CLOSE = 390,
+     VAR_UNBLOCK_LAN_ZONES = 391,
+     VAR_INFRA_CACHE_MIN_RTT = 392,
+     VAR_DNS64_PREFIX = 393,
+     VAR_DNS64_SYNTHALL = 394,
+     VAR_DNSTAP = 395,
+     VAR_DNSTAP_ENABLE = 396,
+     VAR_DNSTAP_SOCKET_PATH = 397,
+     VAR_DNSTAP_SEND_IDENTITY = 398,
+     VAR_DNSTAP_SEND_VERSION = 399,
+     VAR_DNSTAP_IDENTITY = 400,
+     VAR_DNSTAP_VERSION = 401,
+     VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 402,
+     VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 403,
+     VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 404,
+     VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 405,
+     VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 406,
+     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 407,
+     VAR_HARDEN_ALGO_DOWNGRADE = 408,
+     VAR_IP_TRANSPARENT = 409,
+     VAR_RATELIMIT = 410,
+     VAR_RATELIMIT_SLABS = 411,
+     VAR_RATELIMIT_SIZE = 412,
+     VAR_RATELIMIT_FOR_DOMAIN = 413,
+     VAR_RATELIMIT_BELOW_DOMAIN = 414,
+     VAR_RATELIMIT_FACTOR = 415,
+     VAR_CAPS_WHITELIST = 416,
+     VAR_CACHE_MAX_NEGATIVE_TTL = 417,
+     VAR_PERMIT_SMALL_HOLDDOWN = 418,
+     VAR_QNAME_MINIMISATION = 419
    };
 #endif
 /* Tokens.  */
@@ -308,148 +310,150 @@ extern int yydebug;
 #define VAR_DO_IP6 273
 #define VAR_DO_UDP 274
 #define VAR_DO_TCP 275
-#define VAR_CHROOT 276
-#define VAR_USERNAME 277
-#define VAR_DIRECTORY 278
-#define VAR_LOGFILE 279
-#define VAR_PIDFILE 280
-#define VAR_MSG_CACHE_SIZE 281
-#define VAR_MSG_CACHE_SLABS 282
-#define VAR_NUM_QUERIES_PER_THREAD 283
-#define VAR_RRSET_CACHE_SIZE 284
-#define VAR_RRSET_CACHE_SLABS 285
-#define VAR_OUTGOING_NUM_TCP 286
-#define VAR_INFRA_HOST_TTL 287
-#define VAR_INFRA_LAME_TTL 288
-#define VAR_INFRA_CACHE_SLABS 289
-#define VAR_INFRA_CACHE_NUMHOSTS 290
-#define VAR_INFRA_CACHE_LAME_SIZE 291
-#define VAR_NAME 292
-#define VAR_STUB_ZONE 293
-#define VAR_STUB_HOST 294
-#define VAR_STUB_ADDR 295
-#define VAR_TARGET_FETCH_POLICY 296
-#define VAR_HARDEN_SHORT_BUFSIZE 297
-#define VAR_HARDEN_LARGE_QUERIES 298
-#define VAR_FORWARD_ZONE 299
-#define VAR_FORWARD_HOST 300
-#define VAR_FORWARD_ADDR 301
-#define VAR_DO_NOT_QUERY_ADDRESS 302
-#define VAR_HIDE_IDENTITY 303
-#define VAR_HIDE_VERSION 304
-#define VAR_IDENTITY 305
-#define VAR_VERSION 306
-#define VAR_HARDEN_GLUE 307
-#define VAR_MODULE_CONF 308
-#define VAR_TRUST_ANCHOR_FILE 309
-#define VAR_TRUST_ANCHOR 310
-#define VAR_VAL_OVERRIDE_DATE 311
-#define VAR_BOGUS_TTL 312
-#define VAR_VAL_CLEAN_ADDITIONAL 313
-#define VAR_VAL_PERMISSIVE_MODE 314
-#define VAR_INCOMING_NUM_TCP 315
-#define VAR_MSG_BUFFER_SIZE 316
-#define VAR_KEY_CACHE_SIZE 317
-#define VAR_KEY_CACHE_SLABS 318
-#define VAR_TRUSTED_KEYS_FILE 319
-#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320
-#define VAR_USE_SYSLOG 321
-#define VAR_OUTGOING_INTERFACE 322
-#define VAR_ROOT_HINTS 323
-#define VAR_DO_NOT_QUERY_LOCALHOST 324
-#define VAR_CACHE_MAX_TTL 325
-#define VAR_HARDEN_DNSSEC_STRIPPED 326
-#define VAR_ACCESS_CONTROL 327
-#define VAR_LOCAL_ZONE 328
-#define VAR_LOCAL_DATA 329
-#define VAR_INTERFACE_AUTOMATIC 330
-#define VAR_STATISTICS_INTERVAL 331
-#define VAR_DO_DAEMONIZE 332
-#define VAR_USE_CAPS_FOR_ID 333
-#define VAR_STATISTICS_CUMULATIVE 334
-#define VAR_OUTGOING_PORT_PERMIT 335
-#define VAR_OUTGOING_PORT_AVOID 336
-#define VAR_DLV_ANCHOR_FILE 337
-#define VAR_DLV_ANCHOR 338
-#define VAR_NEG_CACHE_SIZE 339
-#define VAR_HARDEN_REFERRAL_PATH 340
-#define VAR_PRIVATE_ADDRESS 341
-#define VAR_PRIVATE_DOMAIN 342
-#define VAR_REMOTE_CONTROL 343
-#define VAR_CONTROL_ENABLE 344
-#define VAR_CONTROL_INTERFACE 345
-#define VAR_CONTROL_PORT 346
-#define VAR_SERVER_KEY_FILE 347
-#define VAR_SERVER_CERT_FILE 348
-#define VAR_CONTROL_KEY_FILE 349
-#define VAR_CONTROL_CERT_FILE 350
-#define VAR_CONTROL_USE_CERT 351
-#define VAR_EXTENDED_STATISTICS 352
-#define VAR_LOCAL_DATA_PTR 353
-#define VAR_JOSTLE_TIMEOUT 354
-#define VAR_STUB_PRIME 355
-#define VAR_UNWANTED_REPLY_THRESHOLD 356
-#define VAR_LOG_TIME_ASCII 357
-#define VAR_DOMAIN_INSECURE 358
-#define VAR_PYTHON 359
-#define VAR_PYTHON_SCRIPT 360
-#define VAR_VAL_SIG_SKEW_MIN 361
-#define VAR_VAL_SIG_SKEW_MAX 362
-#define VAR_CACHE_MIN_TTL 363
-#define VAR_VAL_LOG_LEVEL 364
-#define VAR_AUTO_TRUST_ANCHOR_FILE 365
-#define VAR_KEEP_MISSING 366
-#define VAR_ADD_HOLDDOWN 367
-#define VAR_DEL_HOLDDOWN 368
-#define VAR_SO_RCVBUF 369
-#define VAR_EDNS_BUFFER_SIZE 370
-#define VAR_PREFETCH 371
-#define VAR_PREFETCH_KEY 372
-#define VAR_SO_SNDBUF 373
-#define VAR_SO_REUSEPORT 374
-#define VAR_HARDEN_BELOW_NXDOMAIN 375
-#define VAR_IGNORE_CD_FLAG 376
-#define VAR_LOG_QUERIES 377
-#define VAR_TCP_UPSTREAM 378
-#define VAR_SSL_UPSTREAM 379
-#define VAR_SSL_SERVICE_KEY 380
-#define VAR_SSL_SERVICE_PEM 381
-#define VAR_SSL_PORT 382
-#define VAR_FORWARD_FIRST 383
-#define VAR_STUB_FIRST 384
-#define VAR_MINIMAL_RESPONSES 385
-#define VAR_RRSET_ROUNDROBIN 386
-#define VAR_MAX_UDP_SIZE 387
-#define VAR_DELAY_CLOSE 388
-#define VAR_UNBLOCK_LAN_ZONES 389
-#define VAR_INFRA_CACHE_MIN_RTT 390
-#define VAR_DNS64_PREFIX 391
-#define VAR_DNS64_SYNTHALL 392
-#define VAR_DNSTAP 393
-#define VAR_DNSTAP_ENABLE 394
-#define VAR_DNSTAP_SOCKET_PATH 395
-#define VAR_DNSTAP_SEND_IDENTITY 396
-#define VAR_DNSTAP_SEND_VERSION 397
-#define VAR_DNSTAP_IDENTITY 398
-#define VAR_DNSTAP_VERSION 399
-#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 400
-#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 401
-#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 402
-#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 403
-#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 404
-#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 405
-#define VAR_HARDEN_ALGO_DOWNGRADE 406
-#define VAR_IP_TRANSPARENT 407
-#define VAR_RATELIMIT 408
-#define VAR_RATELIMIT_SLABS 409
-#define VAR_RATELIMIT_SIZE 410
-#define VAR_RATELIMIT_FOR_DOMAIN 411
-#define VAR_RATELIMIT_BELOW_DOMAIN 412
-#define VAR_RATELIMIT_FACTOR 413
-#define VAR_CAPS_WHITELIST 414
-#define VAR_CACHE_MAX_NEGATIVE_TTL 415
-#define VAR_PERMIT_SMALL_HOLDDOWN 416
-#define VAR_QNAME_MINIMISATION 417
+#define VAR_TCP_MSS 276
+#define VAR_OUTGOING_TCP_MSS 277
+#define VAR_CHROOT 278
+#define VAR_USERNAME 279
+#define VAR_DIRECTORY 280
+#define VAR_LOGFILE 281
+#define VAR_PIDFILE 282
+#define VAR_MSG_CACHE_SIZE 283
+#define VAR_MSG_CACHE_SLABS 284
+#define VAR_NUM_QUERIES_PER_THREAD 285
+#define VAR_RRSET_CACHE_SIZE 286
+#define VAR_RRSET_CACHE_SLABS 287
+#define VAR_OUTGOING_NUM_TCP 288
+#define VAR_INFRA_HOST_TTL 289
+#define VAR_INFRA_LAME_TTL 290
+#define VAR_INFRA_CACHE_SLABS 291
+#define VAR_INFRA_CACHE_NUMHOSTS 292
+#define VAR_INFRA_CACHE_LAME_SIZE 293
+#define VAR_NAME 294
+#define VAR_STUB_ZONE 295
+#define VAR_STUB_HOST 296
+#define VAR_STUB_ADDR 297
+#define VAR_TARGET_FETCH_POLICY 298
+#define VAR_HARDEN_SHORT_BUFSIZE 299
+#define VAR_HARDEN_LARGE_QUERIES 300
+#define VAR_FORWARD_ZONE 301
+#define VAR_FORWARD_HOST 302
+#define VAR_FORWARD_ADDR 303
+#define VAR_DO_NOT_QUERY_ADDRESS 304
+#define VAR_HIDE_IDENTITY 305
+#define VAR_HIDE_VERSION 306
+#define VAR_IDENTITY 307
+#define VAR_VERSION 308
+#define VAR_HARDEN_GLUE 309
+#define VAR_MODULE_CONF 310
+#define VAR_TRUST_ANCHOR_FILE 311
+#define VAR_TRUST_ANCHOR 312
+#define VAR_VAL_OVERRIDE_DATE 313
+#define VAR_BOGUS_TTL 314
+#define VAR_VAL_CLEAN_ADDITIONAL 315
+#define VAR_VAL_PERMISSIVE_MODE 316
+#define VAR_INCOMING_NUM_TCP 317
+#define VAR_MSG_BUFFER_SIZE 318
+#define VAR_KEY_CACHE_SIZE 319
+#define VAR_KEY_CACHE_SLABS 320
+#define VAR_TRUSTED_KEYS_FILE 321
+#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 322
+#define VAR_USE_SYSLOG 323
+#define VAR_OUTGOING_INTERFACE 324
+#define VAR_ROOT_HINTS 325
+#define VAR_DO_NOT_QUERY_LOCALHOST 326
+#define VAR_CACHE_MAX_TTL 327
+#define VAR_HARDEN_DNSSEC_STRIPPED 328
+#define VAR_ACCESS_CONTROL 329
+#define VAR_LOCAL_ZONE 330
+#define VAR_LOCAL_DATA 331
+#define VAR_INTERFACE_AUTOMATIC 332
+#define VAR_STATISTICS_INTERVAL 333
+#define VAR_DO_DAEMONIZE 334
+#define VAR_USE_CAPS_FOR_ID 335
+#define VAR_STATISTICS_CUMULATIVE 336
+#define VAR_OUTGOING_PORT_PERMIT 337
+#define VAR_OUTGOING_PORT_AVOID 338
+#define VAR_DLV_ANCHOR_FILE 339
+#define VAR_DLV_ANCHOR 340
+#define VAR_NEG_CACHE_SIZE 341
+#define VAR_HARDEN_REFERRAL_PATH 342
+#define VAR_PRIVATE_ADDRESS 343
+#define VAR_PRIVATE_DOMAIN 344
+#define VAR_REMOTE_CONTROL 345
+#define VAR_CONTROL_ENABLE 346
+#define VAR_CONTROL_INTERFACE 347
+#define VAR_CONTROL_PORT 348
+#define VAR_SERVER_KEY_FILE 349
+#define VAR_SERVER_CERT_FILE 350
+#define VAR_CONTROL_KEY_FILE 351
+#define VAR_CONTROL_CERT_FILE 352
+#define VAR_CONTROL_USE_CERT 353
+#define VAR_EXTENDED_STATISTICS 354
+#define VAR_LOCAL_DATA_PTR 355
+#define VAR_JOSTLE_TIMEOUT 356
+#define VAR_STUB_PRIME 357
+#define VAR_UNWANTED_REPLY_THRESHOLD 358
+#define VAR_LOG_TIME_ASCII 359
+#define VAR_DOMAIN_INSECURE 360
+#define VAR_PYTHON 361
+#define VAR_PYTHON_SCRIPT 362
+#define VAR_VAL_SIG_SKEW_MIN 363
+#define VAR_VAL_SIG_SKEW_MAX 364
+#define VAR_CACHE_MIN_TTL 365
+#define VAR_VAL_LOG_LEVEL 366
+#define VAR_AUTO_TRUST_ANCHOR_FILE 367
+#define VAR_KEEP_MISSING 368
+#define VAR_ADD_HOLDDOWN 369
+#define VAR_DEL_HOLDDOWN 370
+#define VAR_SO_RCVBUF 371
+#define VAR_EDNS_BUFFER_SIZE 372
+#define VAR_PREFETCH 373
+#define VAR_PREFETCH_KEY 374
+#define VAR_SO_SNDBUF 375
+#define VAR_SO_REUSEPORT 376
+#define VAR_HARDEN_BELOW_NXDOMAIN 377
+#define VAR_IGNORE_CD_FLAG 378
+#define VAR_LOG_QUERIES 379
+#define VAR_TCP_UPSTREAM 380
+#define VAR_SSL_UPSTREAM 381
+#define VAR_SSL_SERVICE_KEY 382
+#define VAR_SSL_SERVICE_PEM 383
+#define VAR_SSL_PORT 384
+#define VAR_FORWARD_FIRST 385
+#define VAR_STUB_FIRST 386
+#define VAR_MINIMAL_RESPONSES 387
+#define VAR_RRSET_ROUNDROBIN 388
+#define VAR_MAX_UDP_SIZE 389
+#define VAR_DELAY_CLOSE 390
+#define VAR_UNBLOCK_LAN_ZONES 391
+#define VAR_INFRA_CACHE_MIN_RTT 392
+#define VAR_DNS64_PREFIX 393
+#define VAR_DNS64_SYNTHALL 394
+#define VAR_DNSTAP 395
+#define VAR_DNSTAP_ENABLE 396
+#define VAR_DNSTAP_SOCKET_PATH 397
+#define VAR_DNSTAP_SEND_IDENTITY 398
+#define VAR_DNSTAP_SEND_VERSION 399
+#define VAR_DNSTAP_IDENTITY 400
+#define VAR_DNSTAP_VERSION 401
+#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 402
+#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 403
+#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 404
+#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 405
+#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 406
+#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 407
+#define VAR_HARDEN_ALGO_DOWNGRADE 408
+#define VAR_IP_TRANSPARENT 409
+#define VAR_RATELIMIT 410
+#define VAR_RATELIMIT_SLABS 411
+#define VAR_RATELIMIT_SIZE 412
+#define VAR_RATELIMIT_FOR_DOMAIN 413
+#define VAR_RATELIMIT_BELOW_DOMAIN 414
+#define VAR_RATELIMIT_FACTOR 415
+#define VAR_CAPS_WHITELIST 416
+#define VAR_CACHE_MAX_NEGATIVE_TTL 417
+#define VAR_PERMIT_SMALL_HOLDDOWN 418
+#define VAR_QNAME_MINIMISATION 419
 
 
 
@@ -463,7 +467,7 @@ typedef union YYSTYPE
 
 
 /* Line 387 of yacc.c  */
-#line 467 "util/configparser.c"
+#line 471 "util/configparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -491,7 +495,7 @@ int yyparse ();
 /* Copy the second part of user declarations.  */
 
 /* Line 390 of yacc.c  */
-#line 495 "util/configparser.c"
+#line 499 "util/configparser.c"
 
 #ifdef short
 # undef short
@@ -711,20 +715,20 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   305
+#define YYLAST   309
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  163
+#define YYNTOKENS  165
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  168
+#define YYNNTS  170
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  321
+#define YYNRULES  325
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  473
+#define YYNSTATES  479
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   417
+#define YYMAXUTOK   419
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -773,7 +777,7 @@ static const yytype_uint8 yytranslate[] =
      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164
 };
 
 #if YYDEBUG
@@ -794,149 +798,150 @@ static const yytype_uint16 yyprhs[] =
      205,   207,   209,   211,   213,   215,   217,   219,   221,   223,
      225,   227,   229,   231,   233,   235,   237,   239,   241,   243,
      245,   247,   249,   251,   253,   255,   257,   259,   261,   263,
-     265,   267,   270,   271,   273,   275,   277,   279,   281,   283,
-     286,   287,   289,   291,   293,   295,   298,   301,   304,   307,
-     310,   313,   316,   319,   322,   325,   328,   331,   334,   337,
-     340,   343,   346,   349,   352,   355,   358,   361,   364,   367,
-     370,   373,   376,   379,   382,   385,   388,   391,   394,   397,
-     400,   403,   406,   409,   412,   415,   418,   421,   424,   427,
-     430,   433,   436,   439,   442,   445,   448,   451,   454,   457,
-     460,   463,   466,   469,   472,   475,   478,   481,   484,   487,
-     490,   493,   496,   499,   502,   505,   508,   511,   514,   517,
-     520,   523,   526,   529,   532,   535,   538,   542,   545,   548,
-     551,   554,   557,   560,   563,   566,   569,   572,   575,   578,
-     581,   584,   587,   590,   593,   596,   599,   602,   606,   609,
-     612,   615,   618,   621,   624,   627,   630,   633,   636,   640,
-     644,   647,   650,   653,   656,   659,   662,   665,   668,   671,
-     674,   677,   679,   682,   683,   685,   687,   689,   691,   693,
-     695,   697,   699,   702,   705,   708,   711,   714,   717,   720,
-     723,   725,   728,   729,   731,   733,   735,   737,   739,   741,
-     743,   745,   747,   749,   751,   753,   756,   759,   762,   765,
-     768,   771,   774,   777,   780,   783,   786,   789,   791,   794,
-     795,   797
+     265,   267,   269,   271,   274,   275,   277,   279,   281,   283,
+     285,   287,   290,   291,   293,   295,   297,   299,   302,   305,
+     308,   311,   314,   317,   320,   323,   326,   329,   332,   335,
+     338,   341,   344,   347,   350,   353,   356,   359,   362,   365,
+     368,   371,   374,   377,   380,   383,   386,   389,   392,   395,
+     398,   401,   404,   407,   410,   413,   416,   419,   422,   425,
+     428,   431,   434,   437,   440,   443,   446,   449,   452,   455,
+     458,   461,   464,   467,   470,   473,   476,   479,   482,   485,
+     488,   491,   494,   497,   500,   503,   506,   509,   512,   515,
+     518,   521,   524,   527,   530,   533,   536,   539,   542,   545,
+     548,   552,   555,   558,   561,   564,   567,   570,   573,   576,
+     579,   582,   585,   588,   591,   594,   597,   600,   603,   606,
+     609,   612,   616,   619,   622,   625,   628,   631,   634,   637,
+     640,   643,   646,   650,   654,   657,   660,   663,   666,   669,
+     672,   675,   678,   681,   684,   687,   689,   692,   693,   695,
+     697,   699,   701,   703,   705,   707,   709,   712,   715,   718,
+     721,   724,   727,   730,   733,   735,   738,   739,   741,   743,
+     745,   747,   749,   751,   753,   755,   757,   759,   761,   763,
+     766,   769,   772,   775,   778,   781,   784,   787,   790,   793,
+     796,   799,   801,   804,   805,   807
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     164,     0,    -1,    -1,   164,   165,    -1,   166,   167,    -1,
-     169,   170,    -1,   172,   173,    -1,   327,   328,    -1,   301,
-     302,    -1,   312,   313,    -1,    11,    -1,   167,   168,    -1,
-      -1,   175,    -1,   176,    -1,   180,    -1,   183,    -1,   189,
-      -1,   190,    -1,   191,    -1,   192,    -1,   181,    -1,   202,
-      -1,   203,    -1,   204,    -1,   205,    -1,   206,    -1,   225,
-      -1,   226,    -1,   227,    -1,   231,    -1,   232,    -1,   186,
-      -1,   233,    -1,   234,    -1,   237,    -1,   235,    -1,   236,
-      -1,   239,    -1,   240,    -1,   241,    -1,   254,    -1,   215,
-      -1,   216,    -1,   217,    -1,   218,    -1,   242,    -1,   257,
-      -1,   211,    -1,   213,    -1,   258,    -1,   264,    -1,   265,
-      -1,   266,    -1,   187,    -1,   224,    -1,   274,    -1,   275,
-      -1,   212,    -1,   269,    -1,   199,    -1,   182,    -1,   207,
-      -1,   255,    -1,   261,    -1,   243,    -1,   256,    -1,   277,
-      -1,   278,    -1,   188,    -1,   177,    -1,   198,    -1,   247,
-      -1,   178,    -1,   184,    -1,   185,    -1,   208,    -1,   209,
-      -1,   276,    -1,   245,    -1,   249,    -1,   250,    -1,   179,
-      -1,   279,    -1,   228,    -1,   253,    -1,   200,    -1,   214,
-      -1,   259,    -1,   260,    -1,   263,    -1,   268,    -1,   210,
-      -1,   270,    -1,   271,    -1,   272,    -1,   219,    -1,   223,
-      -1,   251,    -1,   252,    -1,   220,    -1,   244,    -1,   267,
-      -1,   201,    -1,   193,    -1,   194,    -1,   195,    -1,   196,
-      -1,   197,    -1,   280,    -1,   281,    -1,   282,    -1,   221,
-      -1,   229,    -1,   230,    -1,   283,    -1,   284,    -1,   238,
-      -1,   246,    -1,   222,    -1,   285,    -1,   287,    -1,   286,
-      -1,   288,    -1,   289,    -1,   290,    -1,   248,    -1,   262,
-      -1,   273,    -1,   291,    -1,    38,    -1,   170,   171,    -1,
-      -1,   292,    -1,   293,    -1,   294,    -1,   296,    -1,   295,
-      -1,    44,    -1,   173,   174,    -1,    -1,   297,    -1,   298,
-      -1,   299,    -1,   300,    -1,    13,    10,    -1,    12,    10,
-      -1,    76,    10,    -1,    79,    10,    -1,    97,    10,    -1,
-      14,    10,    -1,    16,    10,    -1,    67,    10,    -1,    15,
-      10,    -1,    80,    10,    -1,    81,    10,    -1,    31,    10,
-      -1,    60,    10,    -1,    75,    10,    -1,    17,    10,    -1,
-      18,    10,    -1,    19,    10,    -1,    20,    10,    -1,   123,
-      10,    -1,   124,    10,    -1,   125,    10,    -1,   126,    10,
-      -1,   127,    10,    -1,    77,    10,    -1,    66,    10,    -1,
-     102,    10,    -1,   122,    10,    -1,    21,    10,    -1,    22,
-      10,    -1,    23,    10,    -1,    24,    10,    -1,    25,    10,
-      -1,    68,    10,    -1,    82,    10,    -1,    83,    10,    -1,
-     110,    10,    -1,    54,    10,    -1,    64,    10,    -1,    55,
-      10,    -1,   103,    10,    -1,    48,    10,    -1,    49,    10,
-      -1,    50,    10,    -1,    51,    10,    -1,   114,    10,    -1,
-     118,    10,    -1,   119,    10,    -1,   152,    10,    -1,   115,
-      10,    -1,    61,    10,    -1,    26,    10,    -1,    27,    10,
-      -1,    28,    10,    -1,    99,    10,    -1,   133,    10,    -1,
-     134,    10,    -1,    29,    10,    -1,    30,    10,    -1,    32,
-      10,    -1,    33,    10,    -1,    35,    10,    -1,    36,    10,
-      -1,    34,    10,    -1,   135,    10,    -1,    41,    10,    -1,
-      42,    10,    -1,    43,    10,    -1,    52,    10,    -1,    71,
-      10,    -1,   120,    10,    -1,    85,    10,    -1,   151,    10,
-      -1,    78,    10,    -1,   159,    10,    -1,    86,    10,    -1,
-      87,    10,    -1,   116,    10,    -1,   117,    10,    -1,   101,
-      10,    -1,    47,    10,    -1,    69,    10,    -1,    72,    10,
-      10,    -1,    53,    10,    -1,    56,    10,    -1,   106,    10,
-      -1,   107,    10,    -1,    70,    10,    -1,   160,    10,    -1,
-     108,    10,    -1,    57,    10,    -1,    58,    10,    -1,    59,
-      10,    -1,   121,    10,    -1,   109,    10,    -1,    65,    10,
-      -1,   112,    10,    -1,   113,    10,    -1,   111,    10,    -1,
-     161,    10,    -1,    62,    10,    -1,    63,    10,    -1,    84,
-      10,    -1,    73,    10,    10,    -1,    74,    10,    -1,    98,
-      10,    -1,   130,    10,    -1,   131,    10,    -1,   132,    10,
-      -1,   136,    10,    -1,   137,    10,    -1,   153,    10,    -1,
-     155,    10,    -1,   154,    10,    -1,   156,    10,    10,    -1,
-     157,    10,    10,    -1,   158,    10,    -1,   162,    10,    -1,
-      37,    10,    -1,    39,    10,    -1,    40,    10,    -1,   129,
-      10,    -1,   100,    10,    -1,    37,    10,    -1,    45,    10,
-      -1,    46,    10,    -1,   128,    10,    -1,    88,    -1,   302,
-     303,    -1,    -1,   304,    -1,   306,    -1,   305,    -1,   308,
-      -1,   309,    -1,   310,    -1,   311,    -1,   307,    -1,    89,
-      10,    -1,    91,    10,    -1,    90,    10,    -1,    96,    10,
-      -1,    92,    10,    -1,    93,    10,    -1,    94,    10,    -1,
-      95,    10,    -1,   138,    -1,   313,   314,    -1,    -1,   315,
-      -1,   316,    -1,   317,    -1,   318,    -1,   319,    -1,   320,
-      -1,   321,    -1,   322,    -1,   323,    -1,   324,    -1,   325,
-      -1,   326,    -1,   139,    10,    -1,   140,    10,    -1,   141,
-      10,    -1,   142,    10,    -1,   143,    10,    -1,   144,    10,
-      -1,   145,    10,    -1,   146,    10,    -1,   147,    10,    -1,
-     148,    10,    -1,   149,    10,    -1,   150,    10,    -1,   104,
-      -1,   328,   329,    -1,    -1,   330,    -1,   105,    10,    -1
+     166,     0,    -1,    -1,   166,   167,    -1,   168,   169,    -1,
+     171,   172,    -1,   174,   175,    -1,   331,   332,    -1,   305,
+     306,    -1,   316,   317,    -1,    11,    -1,   169,   170,    -1,
+      -1,   177,    -1,   178,    -1,   182,    -1,   185,    -1,   191,
+      -1,   192,    -1,   193,    -1,   194,    -1,   195,    -1,   196,
+      -1,   183,    -1,   206,    -1,   207,    -1,   208,    -1,   209,
+      -1,   210,    -1,   229,    -1,   230,    -1,   231,    -1,   235,
+      -1,   236,    -1,   188,    -1,   237,    -1,   238,    -1,   241,
+      -1,   239,    -1,   240,    -1,   243,    -1,   244,    -1,   245,
+      -1,   258,    -1,   219,    -1,   220,    -1,   221,    -1,   222,
+      -1,   246,    -1,   261,    -1,   215,    -1,   217,    -1,   262,
+      -1,   268,    -1,   269,    -1,   270,    -1,   189,    -1,   228,
+      -1,   278,    -1,   279,    -1,   216,    -1,   273,    -1,   203,
+      -1,   184,    -1,   211,    -1,   259,    -1,   265,    -1,   247,
+      -1,   260,    -1,   281,    -1,   282,    -1,   190,    -1,   179,
+      -1,   202,    -1,   251,    -1,   180,    -1,   186,    -1,   187,
+      -1,   212,    -1,   213,    -1,   280,    -1,   249,    -1,   253,
+      -1,   254,    -1,   181,    -1,   283,    -1,   232,    -1,   257,
+      -1,   204,    -1,   218,    -1,   263,    -1,   264,    -1,   267,
+      -1,   272,    -1,   214,    -1,   274,    -1,   275,    -1,   276,
+      -1,   223,    -1,   227,    -1,   255,    -1,   256,    -1,   224,
+      -1,   248,    -1,   271,    -1,   205,    -1,   197,    -1,   198,
+      -1,   199,    -1,   200,    -1,   201,    -1,   284,    -1,   285,
+      -1,   286,    -1,   225,    -1,   233,    -1,   234,    -1,   287,
+      -1,   288,    -1,   242,    -1,   250,    -1,   226,    -1,   289,
+      -1,   291,    -1,   290,    -1,   292,    -1,   293,    -1,   294,
+      -1,   252,    -1,   266,    -1,   277,    -1,   295,    -1,    40,
+      -1,   172,   173,    -1,    -1,   296,    -1,   297,    -1,   298,
+      -1,   300,    -1,   299,    -1,    46,    -1,   175,   176,    -1,
+      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,    13,
+      10,    -1,    12,    10,    -1,    78,    10,    -1,    81,    10,
+      -1,    99,    10,    -1,    14,    10,    -1,    16,    10,    -1,
+      69,    10,    -1,    15,    10,    -1,    82,    10,    -1,    83,
+      10,    -1,    33,    10,    -1,    62,    10,    -1,    77,    10,
+      -1,    17,    10,    -1,    18,    10,    -1,    19,    10,    -1,
+      20,    10,    -1,    21,    10,    -1,    22,    10,    -1,   125,
+      10,    -1,   126,    10,    -1,   127,    10,    -1,   128,    10,
+      -1,   129,    10,    -1,    79,    10,    -1,    68,    10,    -1,
+     104,    10,    -1,   124,    10,    -1,    23,    10,    -1,    24,
+      10,    -1,    25,    10,    -1,    26,    10,    -1,    27,    10,
+      -1,    70,    10,    -1,    84,    10,    -1,    85,    10,    -1,
+     112,    10,    -1,    56,    10,    -1,    66,    10,    -1,    57,
+      10,    -1,   105,    10,    -1,    50,    10,    -1,    51,    10,
+      -1,    52,    10,    -1,    53,    10,    -1,   116,    10,    -1,
+     120,    10,    -1,   121,    10,    -1,   154,    10,    -1,   117,
+      10,    -1,    63,    10,    -1,    28,    10,    -1,    29,    10,
+      -1,    30,    10,    -1,   101,    10,    -1,   135,    10,    -1,
+     136,    10,    -1,    31,    10,    -1,    32,    10,    -1,    34,
+      10,    -1,    35,    10,    -1,    37,    10,    -1,    38,    10,
+      -1,    36,    10,    -1,   137,    10,    -1,    43,    10,    -1,
+      44,    10,    -1,    45,    10,    -1,    54,    10,    -1,    73,
+      10,    -1,   122,    10,    -1,    87,    10,    -1,   153,    10,
+      -1,    80,    10,    -1,   161,    10,    -1,    88,    10,    -1,
+      89,    10,    -1,   118,    10,    -1,   119,    10,    -1,   103,
+      10,    -1,    49,    10,    -1,    71,    10,    -1,    74,    10,
+      10,    -1,    55,    10,    -1,    58,    10,    -1,   108,    10,
+      -1,   109,    10,    -1,    72,    10,    -1,   162,    10,    -1,
+     110,    10,    -1,    59,    10,    -1,    60,    10,    -1,    61,
+      10,    -1,   123,    10,    -1,   111,    10,    -1,    67,    10,
+      -1,   114,    10,    -1,   115,    10,    -1,   113,    10,    -1,
+     163,    10,    -1,    64,    10,    -1,    65,    10,    -1,    86,
+      10,    -1,    75,    10,    10,    -1,    76,    10,    -1,   100,
+      10,    -1,   132,    10,    -1,   133,    10,    -1,   134,    10,
+      -1,   138,    10,    -1,   139,    10,    -1,   155,    10,    -1,
+     157,    10,    -1,   156,    10,    -1,   158,    10,    10,    -1,
+     159,    10,    10,    -1,   160,    10,    -1,   164,    10,    -1,
+      39,    10,    -1,    41,    10,    -1,    42,    10,    -1,   131,
+      10,    -1,   102,    10,    -1,    39,    10,    -1,    47,    10,
+      -1,    48,    10,    -1,   130,    10,    -1,    90,    -1,   306,
+     307,    -1,    -1,   308,    -1,   310,    -1,   309,    -1,   312,
+      -1,   313,    -1,   314,    -1,   315,    -1,   311,    -1,    91,
+      10,    -1,    93,    10,    -1,    92,    10,    -1,    98,    10,
+      -1,    94,    10,    -1,    95,    10,    -1,    96,    10,    -1,
+      97,    10,    -1,   140,    -1,   317,   318,    -1,    -1,   319,
+      -1,   320,    -1,   321,    -1,   322,    -1,   323,    -1,   324,
+      -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,   329,
+      -1,   330,    -1,   141,    10,    -1,   142,    10,    -1,   143,
+      10,    -1,   144,    10,    -1,   145,    10,    -1,   146,    10,
+      -1,   147,    10,    -1,   148,    10,    -1,   149,    10,    -1,
+     150,    10,    -1,   151,    10,    -1,   152,    10,    -1,   106,
+      -1,   332,   333,    -1,    -1,   334,    -1,   107,    10,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   128,   128,   128,   129,   129,   130,   130,   131,   131,
-     135,   140,   141,   142,   142,   142,   143,   143,   144,   144,
-     144,   145,   145,   145,   146,   146,   146,   147,   147,   148,
-     148,   149,   149,   150,   150,   151,   151,   152,   152,   153,
-     153,   154,   154,   155,   155,   155,   156,   156,   156,   157,
-     157,   157,   158,   158,   159,   159,   160,   160,   161,   161,
-     162,   162,   162,   163,   163,   164,   164,   165,   165,   165,
-     166,   166,   167,   167,   168,   168,   169,   169,   169,   170,
-     170,   171,   171,   172,   172,   173,   173,   174,   174,   175,
-     175,   175,   176,   176,   177,   177,   177,   178,   178,   178,
-     179,   179,   179,   180,   180,   180,   181,   181,   181,   182,
-     182,   182,   183,   183,   183,   184,   184,   185,   185,   186,
-     186,   186,   187,   187,   188,   188,   189,   189,   190,   190,
-     192,   204,   205,   206,   206,   206,   206,   206,   208,   220,
-     221,   222,   222,   222,   222,   224,   233,   242,   253,   262,
-     271,   280,   293,   308,   317,   326,   335,   344,   353,   362,
-     371,   380,   389,   398,   407,   416,   423,   430,   439,   448,
-     462,   471,   480,   487,   494,   501,   509,   516,   523,   530,
-     537,   545,   553,   561,   568,   575,   584,   593,   600,   607,
-     615,   623,   633,   643,   656,   667,   675,   688,   697,   706,
-     715,   725,   733,   746,   755,   763,   772,   780,   793,   802,
-     809,   819,   829,   839,   849,   859,   869,   879,   889,   896,
-     903,   910,   919,   928,   937,   944,   954,   971,   978,   996,
-    1009,  1022,  1031,  1040,  1049,  1058,  1068,  1078,  1087,  1096,
-    1103,  1112,  1121,  1130,  1139,  1147,  1160,  1168,  1192,  1199,
-    1214,  1224,  1234,  1241,  1248,  1257,  1266,  1274,  1287,  1300,
-    1313,  1322,  1332,  1342,  1349,  1356,  1365,  1375,  1385,  1392,
-    1399,  1408,  1413,  1414,  1415,  1415,  1415,  1416,  1416,  1416,
-    1417,  1417,  1419,  1429,  1438,  1445,  1455,  1462,  1469,  1476,
-    1483,  1488,  1489,  1490,  1490,  1491,  1491,  1492,  1492,  1493,
-    1494,  1495,  1496,  1497,  1498,  1500,  1508,  1515,  1523,  1531,
-    1538,  1545,  1554,  1563,  1572,  1581,  1590,  1599,  1604,  1605,
-    1606,  1608
+       0,   129,   129,   129,   130,   130,   131,   131,   132,   132,
+     136,   141,   142,   143,   143,   143,   144,   144,   145,   145,
+     145,   146,   146,   147,   147,   147,   148,   148,   148,   149,
+     149,   150,   150,   151,   151,   152,   152,   153,   153,   154,
+     154,   155,   155,   156,   156,   157,   157,   157,   158,   158,
+     158,   159,   159,   159,   160,   160,   161,   161,   162,   162,
+     163,   163,   164,   164,   164,   165,   165,   166,   166,   167,
+     167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
+     171,   172,   172,   173,   173,   174,   174,   175,   175,   176,
+     176,   177,   177,   177,   178,   178,   179,   179,   179,   180,
+     180,   180,   181,   181,   181,   182,   182,   182,   183,   183,
+     183,   184,   184,   184,   185,   185,   185,   186,   186,   187,
+     187,   188,   188,   188,   189,   189,   190,   190,   191,   191,
+     192,   192,   194,   206,   207,   208,   208,   208,   208,   208,
+     210,   222,   223,   224,   224,   224,   224,   226,   235,   244,
+     255,   264,   273,   282,   295,   310,   319,   328,   337,   346,
+     355,   364,   373,   382,   391,   400,   409,   418,   427,   436,
+     443,   450,   459,   468,   482,   491,   500,   507,   514,   521,
+     529,   536,   543,   550,   557,   565,   573,   581,   588,   595,
+     604,   613,   620,   627,   635,   643,   653,   663,   676,   687,
+     695,   708,   717,   726,   735,   745,   753,   766,   775,   783,
+     792,   800,   813,   822,   829,   839,   849,   859,   869,   879,
+     889,   899,   909,   916,   923,   930,   939,   948,   957,   964,
+     974,   991,   998,  1016,  1029,  1042,  1051,  1060,  1069,  1078,
+    1088,  1098,  1107,  1116,  1123,  1132,  1141,  1150,  1159,  1167,
+    1180,  1188,  1212,  1219,  1234,  1244,  1254,  1261,  1268,  1277,
+    1286,  1294,  1307,  1320,  1333,  1342,  1352,  1362,  1369,  1376,
+    1385,  1395,  1405,  1412,  1419,  1428,  1433,  1434,  1435,  1435,
+    1435,  1436,  1436,  1436,  1437,  1437,  1439,  1449,  1458,  1465,
+    1475,  1482,  1489,  1496,  1503,  1508,  1509,  1510,  1510,  1511,
+    1511,  1512,  1512,  1513,  1514,  1515,  1516,  1517,  1518,  1520,
+    1528,  1535,  1543,  1551,  1558,  1565,  1574,  1583,  1592,  1601,
+    1610,  1619,  1624,  1625,  1626,  1628
 };
 #endif
 
@@ -948,12 +953,12 @@ static const char *const yytname[] =
   "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
   "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_SERVER", "VAR_VERBOSITY",
   "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE",
-  "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT",
-  "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
-  "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
-  "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
-  "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
-  "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
+  "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_TCP_MSS",
+  "VAR_OUTGOING_TCP_MSS", "VAR_CHROOT", "VAR_USERNAME", "VAR_DIRECTORY",
+  "VAR_LOGFILE", "VAR_PIDFILE", "VAR_MSG_CACHE_SIZE",
+  "VAR_MSG_CACHE_SLABS", "VAR_NUM_QUERIES_PER_THREAD",
+  "VAR_RRSET_CACHE_SIZE", "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP",
+  "VAR_INFRA_HOST_TTL", "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
   "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
   "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
   "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
@@ -1012,42 +1017,42 @@ static const char *const yytname[] =
   "server_outgoing_range", "server_outgoing_port_permit",
   "server_outgoing_port_avoid", "server_outgoing_num_tcp",
   "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
-  "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream",
-  "server_ssl_upstream", "server_ssl_service_key",
-  "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
-  "server_use_syslog", "server_log_time_ascii", "server_log_queries",
-  "server_chroot", "server_username", "server_directory", "server_logfile",
-  "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
-  "server_dlv_anchor", "server_auto_trust_anchor_file",
-  "server_trust_anchor_file", "server_trusted_keys_file",
-  "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
-  "server_hide_version", "server_identity", "server_version",
-  "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport",
-  "server_ip_transparent", "server_edns_buffer_size",
-  "server_msg_buffer_size", "server_msg_cache_size",
-  "server_msg_cache_slabs", "server_num_queries_per_thread",
-  "server_jostle_timeout", "server_delay_close",
-  "server_unblock_lan_zones", "server_rrset_cache_size",
-  "server_rrset_cache_slabs", "server_infra_host_ttl",
-  "server_infra_lame_ttl", "server_infra_cache_numhosts",
-  "server_infra_cache_lame_size", "server_infra_cache_slabs",
-  "server_infra_cache_min_rtt", "server_target_fetch_policy",
-  "server_harden_short_bufsize", "server_harden_large_queries",
-  "server_harden_glue", "server_harden_dnssec_stripped",
-  "server_harden_below_nxdomain", "server_harden_referral_path",
-  "server_harden_algo_downgrade", "server_use_caps_for_id",
-  "server_caps_whitelist", "server_private_address",
-  "server_private_domain", "server_prefetch", "server_prefetch_key",
-  "server_unwanted_reply_threshold", "server_do_not_query_address",
-  "server_do_not_query_localhost", "server_access_control",
-  "server_module_conf", "server_val_override_date",
-  "server_val_sig_skew_min", "server_val_sig_skew_max",
-  "server_cache_max_ttl", "server_cache_max_negative_ttl",
-  "server_cache_min_ttl", "server_bogus_ttl",
-  "server_val_clean_additional", "server_val_permissive_mode",
-  "server_ignore_cd_flag", "server_val_log_level",
-  "server_val_nsec3_keysize_iterations", "server_add_holddown",
-  "server_del_holddown", "server_keep_missing",
+  "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_mss",
+  "server_outgoing_tcp_mss", "server_tcp_upstream", "server_ssl_upstream",
+  "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port",
+  "server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
+  "server_log_queries", "server_chroot", "server_username",
+  "server_directory", "server_logfile", "server_pidfile",
+  "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor",
+  "server_auto_trust_anchor_file", "server_trust_anchor_file",
+  "server_trusted_keys_file", "server_trust_anchor",
+  "server_domain_insecure", "server_hide_identity", "server_hide_version",
+  "server_identity", "server_version", "server_so_rcvbuf",
+  "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent",
+  "server_edns_buffer_size", "server_msg_buffer_size",
+  "server_msg_cache_size", "server_msg_cache_slabs",
+  "server_num_queries_per_thread", "server_jostle_timeout",
+  "server_delay_close", "server_unblock_lan_zones",
+  "server_rrset_cache_size", "server_rrset_cache_slabs",
+  "server_infra_host_ttl", "server_infra_lame_ttl",
+  "server_infra_cache_numhosts", "server_infra_cache_lame_size",
+  "server_infra_cache_slabs", "server_infra_cache_min_rtt",
+  "server_target_fetch_policy", "server_harden_short_bufsize",
+  "server_harden_large_queries", "server_harden_glue",
+  "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
+  "server_harden_referral_path", "server_harden_algo_downgrade",
+  "server_use_caps_for_id", "server_caps_whitelist",
+  "server_private_address", "server_private_domain", "server_prefetch",
+  "server_prefetch_key", "server_unwanted_reply_threshold",
+  "server_do_not_query_address", "server_do_not_query_localhost",
+  "server_access_control", "server_module_conf",
+  "server_val_override_date", "server_val_sig_skew_min",
+  "server_val_sig_skew_max", "server_cache_max_ttl",
+  "server_cache_max_negative_ttl", "server_cache_min_ttl",
+  "server_bogus_ttl", "server_val_clean_additional",
+  "server_val_permissive_mode", "server_ignore_cd_flag",
+  "server_val_log_level", "server_val_nsec3_keysize_iterations",
+  "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",
@@ -1095,28 +1100,28 @@ static const yytype_uint16 yytoknum[] =
      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
+     415,   416,   417,   418,   419
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   163,   164,   164,   165,   165,   165,   165,   165,   165,
-     166,   167,   167,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     169,   170,   170,   171,   171,   171,   171,   171,   172,   173,
-     173,   174,   174,   174,   174,   175,   176,   177,   178,   179,
+       0,   165,   166,   166,   167,   167,   167,   167,   167,   167,
+     168,   169,   169,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   171,   172,   172,   173,   173,   173,   173,   173,
+     174,   175,   175,   176,   176,   176,   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,
@@ -1129,12 +1134,12 @@ static const yytype_uint16 yyr1[] =
      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,   302,   303,   303,   303,   303,   303,   303,
-     303,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   313,   314,   314,   314,   314,   314,   314,   314,
-     314,   314,   314,   314,   314,   315,   316,   317,   318,   319,
-     320,   321,   322,   323,   324,   325,   326,   327,   328,   328,
-     329,   330
+     300,   301,   302,   303,   304,   305,   306,   306,   307,   307,
+     307,   307,   307,   307,   307,   307,   308,   309,   310,   311,
+     312,   313,   314,   315,   316,   317,   317,   318,   318,   318,
+     318,   318,   318,   318,   318,   318,   318,   318,   318,   319,
+     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,   332,   332,   333,   334
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1153,8 +1158,8 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     2,     0,     1,     1,     1,     1,     1,     1,     2,
-       0,     1,     1,     1,     1,     2,     2,     2,     2,     2,
+       1,     1,     1,     2,     0,     1,     1,     1,     1,     1,
+       1,     2,     0,     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,
@@ -1162,17 +1167,17 @@ static const yytype_uint8 yyr2[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     3,     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,
+       3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     1,     2,     0,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
-       1,     2,     0,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     1,     2,     0,
-       1,     2
+       2,     3,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     3,     3,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     1,     2,     0,     1,     1,
+       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
+       2,     2,     2,     2,     1,     2,     0,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     1,     2,     0,     1,     2
 };
 
 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -1180,8 +1185,8 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       2,     0,     1,    10,   130,   138,   271,   317,   290,     3,
-      12,   132,   140,   273,   292,   319,     4,     5,     6,     8,
+       2,     0,     1,    10,   132,   140,   275,   321,   294,     3,
+      12,   134,   142,   277,   296,   323,     4,     5,     6,     8,
        9,     7,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -1193,63 +1198,63 @@ static const yytype_uint16 yydefact[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
-      13,    14,    70,    73,    82,    15,    21,    61,    16,    74,
-      75,    32,    54,    69,    17,    18,    19,    20,   104,   105,
-     106,   107,   108,    71,    60,    86,   103,    22,    23,    24,
-      25,    26,    62,    76,    77,    92,    48,    58,    49,    87,
-      42,    43,    44,    45,    96,   100,   112,   119,    97,    55,
-      27,    28,    29,    84,   113,   114,    30,    31,    33,    34,
-      36,    37,    35,   117,    38,    39,    40,    46,    65,   101,
-      79,   118,    72,   126,    80,    81,    98,    99,    85,    41,
-      63,    66,    47,    50,    88,    89,    64,   127,    90,    51,
-      52,    53,   102,    91,    59,    93,    94,    95,   128,    56,
-      57,    78,    67,    68,    83,   109,   110,   111,   115,   116,
-     120,   122,   121,   123,   124,   125,   129,     0,     0,     0,
-       0,     0,   131,   133,   134,   135,   137,   136,     0,     0,
-       0,     0,   139,   141,   142,   143,   144,     0,     0,     0,
-       0,     0,     0,     0,     0,   272,   274,   276,   275,   281,
-     277,   278,   279,   280,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   291,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,   303,   304,     0,
-     318,   320,   146,   145,   150,   153,   151,   159,   160,   161,
-     162,   172,   173,   174,   175,   176,   195,   196,   197,   201,
-     202,   156,   203,   204,   207,   205,   206,   209,   210,   211,
-     224,   185,   186,   187,   188,   212,   227,   181,   183,   228,
-     234,   235,   236,   157,   194,   244,   245,   182,   239,   169,
-     152,   177,   225,   231,   213,     0,     0,   248,   158,   147,
-     168,   217,   148,   154,   155,   178,   179,   246,   215,   219,
-     220,   149,   249,   198,   223,   170,   184,   229,   230,   233,
-     238,   180,   242,   240,   241,   189,   193,   221,   222,   190,
-     191,   214,   237,   171,   163,   164,   165,   166,   167,   250,
-     251,   252,   199,   200,   208,   253,   254,   216,   192,   255,
-     257,   256,     0,     0,   260,   218,   232,   243,   261,   262,
-     263,   264,   266,   265,   267,   268,   269,   270,   282,   284,
-     283,   286,   287,   288,   289,   285,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,   315,   316,   321,   226,
-     247,   258,   259
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    11,    13,    14,    72,    75,    84,    15,    23,    63,
+      16,    76,    77,    34,    56,    71,    17,    18,    19,    20,
+      21,    22,   106,   107,   108,   109,   110,    73,    62,    88,
+     105,    24,    25,    26,    27,    28,    64,    78,    79,    94,
+      50,    60,    51,    89,    44,    45,    46,    47,    98,   102,
+     114,   121,    99,    57,    29,    30,    31,    86,   115,   116,
+      32,    33,    35,    36,    38,    39,    37,   119,    40,    41,
+      42,    48,    67,   103,    81,   120,    74,   128,    82,    83,
+     100,   101,    87,    43,    65,    68,    49,    52,    90,    91,
+      66,   129,    92,    53,    54,    55,   104,    93,    61,    95,
+      96,    97,   130,    58,    59,    80,    69,    70,    85,   111,
+     112,   113,   117,   118,   122,   124,   123,   125,   126,   127,
+     131,     0,     0,     0,     0,     0,   133,   135,   136,   137,
+     139,   138,     0,     0,     0,     0,   141,   143,   144,   145,
+     146,     0,     0,     0,     0,     0,     0,     0,     0,   276,
+     278,   280,   279,   285,   281,   282,   283,   284,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     295,   297,   298,   299,   300,   301,   302,   303,   304,   305,
+     306,   307,   308,     0,   322,   324,   148,   147,   152,   155,
+     153,   161,   162,   163,   164,   165,   166,   176,   177,   178,
+     179,   180,   199,   200,   201,   205,   206,   158,   207,   208,
+     211,   209,   210,   213,   214,   215,   228,   189,   190,   191,
+     192,   216,   231,   185,   187,   232,   238,   239,   240,   159,
+     198,   248,   249,   186,   243,   173,   154,   181,   229,   235,
+     217,     0,     0,   252,   160,   149,   172,   221,   150,   156,
+     157,   182,   183,   250,   219,   223,   224,   151,   253,   202,
+     227,   174,   188,   233,   234,   237,   242,   184,   246,   244,
+     245,   193,   197,   225,   226,   194,   195,   218,   241,   175,
+     167,   168,   169,   170,   171,   254,   255,   256,   203,   204,
+     212,   257,   258,   220,   196,   259,   261,   260,     0,     0,
+     264,   222,   236,   247,   265,   266,   267,   268,   270,   269,
+     271,   272,   273,   274,   286,   288,   287,   290,   291,   292,
+     293,   289,   309,   310,   311,   312,   313,   314,   315,   316,
+     317,   318,   319,   320,   325,   230,   251,   262,   263
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,     9,    10,    16,   139,    11,    17,   262,    12,
-      18,   272,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
-     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
-     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
-     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
-     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
-     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
-     248,   249,   250,   251,   252,   253,   254,   255,   256,   263,
-     264,   265,   266,   267,   273,   274,   275,   276,    13,    19,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,    14,
-      20,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,    15,    21,   320,   321
+      -1,     1,     9,    10,    16,   141,    11,    17,   266,    12,
+      18,   276,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   267,   268,   269,   270,   271,   277,   278,   279,   280,
+      13,    19,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,    14,    20,   310,   311,   312,   313,   314,   315,   316,
+     317,   318,   319,   320,   321,   322,    15,    21,   324,   325
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -1257,20 +1262,21 @@ static const yytype_int16 yydefgoto[] =
 #define YYPACT_NINF -81
 static const yytype_int16 yypact[] =
 {
-     -81,   116,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   118,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -12,    89,    47,   -13,
-      22,   -80,    16,    17,    18,    23,    24,    78,   107,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   141,   142,
-     143,   145,   146,   147,   148,   149,   163,   164,   166,   167,
-     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
-     178,   180,   181,   182,   183,   184,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   209,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   259,   260,   261,   -81,
+      24,   -80,    18,    19,    20,    25,    26,    80,   109,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   143,   144,
+     145,   146,   147,   149,   150,   151,   152,   153,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   182,   183,   184,   185,   186,   187,   188,   189,   190,
+     191,   192,   193,   194,   195,   196,   197,   199,   200,   201,
+     202,   203,   204,   205,   206,   207,   208,   209,   211,   212,
+     213,   215,   216,   217,   218,   219,   220,   221,   222,   223,
+     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
+     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
+     244,   245,   246,   247,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
@@ -1282,29 +1288,28 @@ static const yytype_int16 yypact[] =
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   262,   263,   264,
-     265,   266,   -81,   -81,   -81,   -81,   -81,   -81,   267,   268,
-     269,   270,   -81,   -81,   -81,   -81,   -81,   271,   272,   273,
-     274,   275,   276,   277,   278,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   291,
+     -81,   266,   267,   268,   269,   270,   -81,   -81,   -81,   -81,
+     -81,   -81,   271,   272,   273,   274,   -81,   -81,   -81,   -81,
+     -81,   275,   276,   277,   278,   279,   280,   281,   282,   -81,
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   -81,   -81,   295,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   292,   293,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   296,   297,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   294,   295,   -81,   -81,   -81,   -81,   -81,   -81,
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   298,   299,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81
 };
 
 /* YYPGOTO[NTERM-NUM].  */
@@ -1326,7 +1331,7 @@ static const yytype_int8 yypgoto[] =
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
      -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81
+     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1337,35 +1342,35 @@ static const yytype_uint16 yytable[] =
 {
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,   319,   322,   323,   324,    47,
-      48,    49,     0,   325,   326,    50,    51,    52,    53,    54,
+      42,    43,    44,    45,    46,    47,    48,   323,   326,   327,
+     328,    49,    50,    51,     0,   329,   330,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,   277,   278,   279,   280,
-     281,   282,   283,   284,   268,    91,    92,    93,   327,    94,
-      95,    96,   269,   270,    97,    98,    99,   100,   101,   102,
+      85,    86,    87,    88,    89,    90,    91,    92,   281,   282,
+     283,   284,   285,   286,   287,   288,   272,    93,    94,    95,
+     331,    96,    97,    98,   273,   274,    99,   100,   101,   102,
      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,     2,   328,   119,   120,
-     121,   122,   123,   124,   125,   126,   257,     3,   258,   259,
-     329,   330,   331,   332,   333,   334,   335,   336,   337,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
-     138,   338,   339,   340,     4,   341,   342,   343,   344,   345,
-       5,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-     303,   304,   305,   346,   347,   271,   348,   349,   350,   351,
-     352,   353,   354,   355,   356,   357,   358,   359,   360,   260,
-     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
-     371,   372,   373,   374,     6,   375,   376,   377,   378,   379,
-     380,   381,   382,   383,   384,   385,   386,   387,   261,   388,
-       7,   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,     8,   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
+     113,   114,   115,   116,   117,   118,   119,   120,     2,   332,
+     121,   122,   123,   124,   125,   126,   127,   128,   261,     3,
+     262,   263,   333,   334,   335,   336,   337,   338,   339,   340,
+     341,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   342,   343,   344,   345,   346,     4,   347,
+     348,   349,   350,   351,     5,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   275,   352,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,   264,   365,   366,   367,   368,   369,   370,   371,   372,
+     373,   374,   375,   376,   377,   378,   379,   380,     6,   381,
+     382,   383,   384,   385,   386,   387,   388,   389,   390,   391,
+     265,   392,   393,   394,     7,   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,     8,   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
 };
 
 #define yypact_value_is_default(Yystate) \
@@ -1378,56 +1383,56 @@ static const yytype_int16 yycheck[] =
 {
       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,   105,    10,    10,    10,    41,
-      42,    43,    -1,    10,    10,    47,    48,    49,    50,    51,
+      32,    33,    34,    35,    36,    37,    38,   107,    10,    10,
+      10,    43,    44,    45,    -1,    10,    10,    49,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    89,    90,    91,    92,
-      93,    94,    95,    96,    37,    97,    98,    99,    10,   101,
-     102,   103,    45,    46,   106,   107,   108,   109,   110,   111,
+      82,    83,    84,    85,    86,    87,    88,    89,    91,    92,
+      93,    94,    95,    96,    97,    98,    39,    99,   100,   101,
+      10,   103,   104,   105,    47,    48,   108,   109,   110,   111,
      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,     0,    10,   130,   131,
-     132,   133,   134,   135,   136,   137,    37,    11,    39,    40,
-      10,    10,    10,    10,    10,    10,    10,    10,    10,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,    10,    10,    10,    38,    10,    10,    10,    10,    10,
-      44,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,    10,    10,   128,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10,    10,    10,    10,   100,
+     122,   123,   124,   125,   126,   127,   128,   129,     0,    10,
+     132,   133,   134,   135,   136,   137,   138,   139,    39,    11,
+      41,    42,    10,    10,    10,    10,    10,    10,    10,    10,
+      10,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+     162,   163,   164,    10,    10,    10,    10,    10,    40,    10,
+      10,    10,    10,    10,    46,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   130,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    88,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10,    10,    10,   129,    10,
-     104,    10,    10,    10,    10,    10,    10,    10,    10,    10,
+      10,   102,    10,    10,    10,    10,    10,    10,    10,    10,
+      10,    10,    10,    10,    10,    10,    10,    10,    90,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
+     131,    10,    10,    10,   106,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,   138,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
+      10,    10,    10,    10,    10,    10,    10,    10,   140,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10
+      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
+      10,    10,    10,    10,    10,    10,    10,    10,    10,    10
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   164,     0,    11,    38,    44,    88,   104,   138,   165,
-     166,   169,   172,   301,   312,   327,   167,   170,   173,   302,
-     313,   328,    12,    13,    14,    15,    16,    17,    18,    19,
+       0,   166,     0,    11,    40,    46,    90,   106,   140,   167,
+     168,   171,   174,   305,   316,   331,   169,   172,   175,   306,
+     317,   332,    12,    13,    14,    15,    16,    17,    18,    19,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    41,    42,    43,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    43,
+      44,    45,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    97,    98,    99,   101,   102,   103,   106,   107,   108,
+      87,    88,    89,    99,   100,   101,   103,   104,   105,   108,
      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   130,
-     131,   132,   133,   134,   135,   136,   137,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   168,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
+     129,   132,   133,   134,   135,   136,   137,   138,   139,   153,
+     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,   170,   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,
@@ -1438,14 +1443,14 @@ static const yytype_uint16 yystos[] =
      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,    37,    39,    40,
-     100,   129,   171,   292,   293,   294,   295,   296,    37,    45,
-      46,   128,   174,   297,   298,   299,   300,    89,    90,    91,
-      92,    93,    94,    95,    96,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   314,   315,   316,   317,
-     318,   319,   320,   321,   322,   323,   324,   325,   326,   105,
-     329,   330,    10,    10,    10,    10,    10,    10,    10,    10,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,    39,    41,    42,   102,   131,   173,   296,   297,   298,
+     299,   300,    39,    47,    48,   130,   176,   301,   302,   303,
+     304,    91,    92,    93,    94,    95,    96,    97,    98,   307,
+     308,   309,   310,   311,   312,   313,   314,   315,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   107,   333,   334,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
@@ -1460,7 +1465,7 @@ static const yytype_uint16 yystos[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10
+      10,    10,    10,    10,    10,    10,    10,    10,    10
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2262,15 +2267,15 @@ yyreduce:
     {
         case 10:
 /* Line 1792 of yacc.c  */
-#line 136 "./util/configparser.y"
+#line 137 "./util/configparser.y"
     { 
                OUTYY(("\nP(server:)\n")); 
        }
     break;
 
-  case 130:
+  case 132:
 /* Line 1792 of yacc.c  */
-#line 193 "./util/configparser.y"
+#line 195 "./util/configparser.y"
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -2283,9 +2288,9 @@ yyreduce:
        }
     break;
 
-  case 138:
+  case 140:
 /* Line 1792 of yacc.c  */
-#line 209 "./util/configparser.y"
+#line 211 "./util/configparser.y"
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -2298,9 +2303,9 @@ yyreduce:
        }
     break;
 
-  case 145:
+  case 147:
 /* Line 1792 of yacc.c  */
-#line 225 "./util/configparser.y"
+#line 227 "./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)
@@ -2310,9 +2315,9 @@ yyreduce:
        }
     break;
 
-  case 146:
+  case 148:
 /* Line 1792 of yacc.c  */
-#line 234 "./util/configparser.y"
+#line 236 "./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)
@@ -2322,9 +2327,9 @@ yyreduce:
        }
     break;
 
-  case 147:
+  case 149:
 /* Line 1792 of yacc.c  */
-#line 243 "./util/configparser.y"
+#line 245 "./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)
@@ -2336,9 +2341,9 @@ yyreduce:
        }
     break;
 
-  case 148:
+  case 150:
 /* Line 1792 of yacc.c  */
-#line 254 "./util/configparser.y"
+#line 256 "./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)
@@ -2348,9 +2353,9 @@ yyreduce:
        }
     break;
 
-  case 149:
+  case 151:
 /* Line 1792 of yacc.c  */
-#line 263 "./util/configparser.y"
+#line 265 "./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)
@@ -2360,9 +2365,9 @@ yyreduce:
        }
     break;
 
-  case 150:
+  case 152:
 /* Line 1792 of yacc.c  */
-#line 272 "./util/configparser.y"
+#line 274 "./util/configparser.y"
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2372,9 +2377,9 @@ yyreduce:
        }
     break;
 
-  case 151:
+  case 153:
 /* Line 1792 of yacc.c  */
-#line 281 "./util/configparser.y"
+#line 283 "./util/configparser.y"
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -2388,9 +2393,9 @@ yyreduce:
        }
     break;
 
-  case 152:
+  case 154:
 /* Line 1792 of yacc.c  */
-#line 294 "./util/configparser.y"
+#line 296 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2406,9 +2411,9 @@ yyreduce:
        }
     break;
 
-  case 153:
+  case 155:
 /* Line 1792 of yacc.c  */
-#line 309 "./util/configparser.y"
+#line 311 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2418,9 +2423,9 @@ yyreduce:
        }
     break;
 
-  case 154:
+  case 156:
 /* Line 1792 of yacc.c  */
-#line 318 "./util/configparser.y"
+#line 320 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, 
@@ -2430,9 +2435,9 @@ yyreduce:
        }
     break;
 
-  case 155:
+  case 157:
 /* Line 1792 of yacc.c  */
-#line 327 "./util/configparser.y"
+#line 329 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, 
@@ -2442,9 +2447,9 @@ yyreduce:
        }
     break;
 
-  case 156:
+  case 158:
 /* Line 1792 of yacc.c  */
-#line 336 "./util/configparser.y"
+#line 338 "./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)
@@ -2454,9 +2459,9 @@ yyreduce:
        }
     break;
 
-  case 157:
+  case 159:
 /* Line 1792 of yacc.c  */
-#line 345 "./util/configparser.y"
+#line 347 "./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)
@@ -2466,9 +2471,9 @@ yyreduce:
        }
     break;
 
-  case 158:
+  case 160:
 /* Line 1792 of yacc.c  */
-#line 354 "./util/configparser.y"
+#line 356 "./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)
@@ -2478,9 +2483,9 @@ yyreduce:
        }
     break;
 
-  case 159:
+  case 161:
 /* Line 1792 of yacc.c  */
-#line 363 "./util/configparser.y"
+#line 365 "./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)
@@ -2490,9 +2495,9 @@ yyreduce:
        }
     break;
 
-  case 160:
+  case 162:
 /* Line 1792 of yacc.c  */
-#line 372 "./util/configparser.y"
+#line 374 "./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)
@@ -2502,9 +2507,9 @@ yyreduce:
        }
     break;
 
-  case 161:
+  case 163:
 /* Line 1792 of yacc.c  */
-#line 381 "./util/configparser.y"
+#line 383 "./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)
@@ -2514,9 +2519,9 @@ yyreduce:
        }
     break;
 
-  case 162:
+  case 164:
 /* Line 1792 of yacc.c  */
-#line 390 "./util/configparser.y"
+#line 392 "./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)
@@ -2526,9 +2531,33 @@ yyreduce:
        }
     break;
 
-  case 163:
+  case 165:
+/* Line 1792 of yacc.c  */
+#line 401 "./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));
+       }
+    break;
+
+  case 166:
+/* Line 1792 of yacc.c  */
+#line 410 "./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 167:
 /* Line 1792 of yacc.c  */
-#line 399 "./util/configparser.y"
+#line 419 "./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)
@@ -2538,9 +2567,9 @@ yyreduce:
        }
     break;
 
-  case 164:
+  case 168:
 /* Line 1792 of yacc.c  */
-#line 408 "./util/configparser.y"
+#line 428 "./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)
@@ -2550,9 +2579,9 @@ yyreduce:
        }
     break;
 
-  case 165:
+  case 169:
 /* Line 1792 of yacc.c  */
-#line 417 "./util/configparser.y"
+#line 437 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ssl_service_key);
@@ -2560,9 +2589,9 @@ yyreduce:
        }
     break;
 
-  case 166:
+  case 170:
 /* Line 1792 of yacc.c  */
-#line 424 "./util/configparser.y"
+#line 444 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ssl_service_pem);
@@ -2570,9 +2599,9 @@ yyreduce:
        }
     break;
 
-  case 167:
+  case 171:
 /* Line 1792 of yacc.c  */
-#line 431 "./util/configparser.y"
+#line 451 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2582,9 +2611,9 @@ yyreduce:
        }
     break;
 
-  case 168:
+  case 172:
 /* Line 1792 of yacc.c  */
-#line 440 "./util/configparser.y"
+#line 460 "./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)
@@ -2594,9 +2623,9 @@ yyreduce:
        }
     break;
 
-  case 169:
+  case 173:
 /* Line 1792 of yacc.c  */
-#line 449 "./util/configparser.y"
+#line 469 "./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)
@@ -2611,9 +2640,9 @@ yyreduce:
        }
     break;
 
-  case 170:
+  case 174:
 /* Line 1792 of yacc.c  */
-#line 463 "./util/configparser.y"
+#line 483 "./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)
@@ -2623,9 +2652,9 @@ yyreduce:
        }
     break;
 
-  case 171:
+  case 175:
 /* Line 1792 of yacc.c  */
-#line 472 "./util/configparser.y"
+#line 492 "./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)
@@ -2635,9 +2664,9 @@ yyreduce:
        }
     break;
 
-  case 172:
+  case 176:
 /* Line 1792 of yacc.c  */
-#line 481 "./util/configparser.y"
+#line 501 "./util/configparser.y"
     {
                OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->chrootdir);
@@ -2645,9 +2674,9 @@ yyreduce:
        }
     break;
 
-  case 173:
+  case 177:
 /* Line 1792 of yacc.c  */
-#line 488 "./util/configparser.y"
+#line 508 "./util/configparser.y"
     {
                OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->username);
@@ -2655,9 +2684,9 @@ yyreduce:
        }
     break;
 
-  case 174:
+  case 178:
 /* Line 1792 of yacc.c  */
-#line 495 "./util/configparser.y"
+#line 515 "./util/configparser.y"
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->directory);
@@ -2665,9 +2694,9 @@ yyreduce:
        }
     break;
 
-  case 175:
+  case 179:
 /* Line 1792 of yacc.c  */
-#line 502 "./util/configparser.y"
+#line 522 "./util/configparser.y"
     {
                OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->logfile);
@@ -2676,9 +2705,9 @@ yyreduce:
        }
     break;
 
-  case 176:
+  case 180:
 /* Line 1792 of yacc.c  */
-#line 510 "./util/configparser.y"
+#line 530 "./util/configparser.y"
     {
                OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->pidfile);
@@ -2686,9 +2715,9 @@ yyreduce:
        }
     break;
 
-  case 177:
+  case 181:
 /* Line 1792 of yacc.c  */
-#line 517 "./util/configparser.y"
+#line 537 "./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)))
@@ -2696,9 +2725,9 @@ yyreduce:
        }
     break;
 
-  case 178:
+  case 182:
 /* Line 1792 of yacc.c  */
-#line 524 "./util/configparser.y"
+#line 544 "./util/configparser.y"
     {
                OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dlv_anchor_file);
@@ -2706,9 +2735,9 @@ yyreduce:
        }
     break;
 
-  case 179:
+  case 183:
 /* Line 1792 of yacc.c  */
-#line 531 "./util/configparser.y"
+#line 551 "./util/configparser.y"
     {
                OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
@@ -2716,9 +2745,9 @@ yyreduce:
        }
     break;
 
-  case 180:
+  case 184:
 /* Line 1792 of yacc.c  */
-#line 538 "./util/configparser.y"
+#line 558 "./util/configparser.y"
     {
                OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2727,9 +2756,9 @@ yyreduce:
        }
     break;
 
-  case 181:
+  case 185:
 /* Line 1792 of yacc.c  */
-#line 546 "./util/configparser.y"
+#line 566 "./util/configparser.y"
     {
                OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2738,9 +2767,9 @@ yyreduce:
        }
     break;
 
-  case 182:
+  case 186:
 /* Line 1792 of yacc.c  */
-#line 554 "./util/configparser.y"
+#line 574 "./util/configparser.y"
     {
                OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2749,9 +2778,9 @@ yyreduce:
        }
     break;
 
-  case 183:
+  case 187:
 /* Line 1792 of yacc.c  */
-#line 562 "./util/configparser.y"
+#line 582 "./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)))
@@ -2759,9 +2788,9 @@ yyreduce:
        }
     break;
 
-  case 184:
+  case 188:
 /* Line 1792 of yacc.c  */
-#line 569 "./util/configparser.y"
+#line 589 "./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)))
@@ -2769,9 +2798,9 @@ yyreduce:
        }
     break;
 
-  case 185:
+  case 189:
 /* Line 1792 of yacc.c  */
-#line 576 "./util/configparser.y"
+#line 596 "./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)
@@ -2781,9 +2810,9 @@ yyreduce:
        }
     break;
 
-  case 186:
+  case 190:
 /* Line 1792 of yacc.c  */
-#line 585 "./util/configparser.y"
+#line 605 "./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)
@@ -2793,9 +2822,9 @@ yyreduce:
        }
     break;
 
-  case 187:
+  case 191:
 /* Line 1792 of yacc.c  */
-#line 594 "./util/configparser.y"
+#line 614 "./util/configparser.y"
     {
                OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->identity);
@@ -2803,9 +2832,9 @@ yyreduce:
        }
     break;
 
-  case 188:
+  case 192:
 /* Line 1792 of yacc.c  */
-#line 601 "./util/configparser.y"
+#line 621 "./util/configparser.y"
     {
                OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->version);
@@ -2813,9 +2842,9 @@ yyreduce:
        }
     break;
 
-  case 189:
+  case 193:
 /* Line 1792 of yacc.c  */
-#line 608 "./util/configparser.y"
+#line 628 "./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))
@@ -2824,9 +2853,9 @@ yyreduce:
        }
     break;
 
-  case 190:
+  case 194:
 /* Line 1792 of yacc.c  */
-#line 616 "./util/configparser.y"
+#line 636 "./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))
@@ -2835,9 +2864,9 @@ yyreduce:
        }
     break;
 
-  case 191:
+  case 195:
 /* Line 1792 of yacc.c  */
-#line 624 "./util/configparser.y"
+#line 644 "./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)
@@ -2848,9 +2877,9 @@ yyreduce:
     }
     break;
 
-  case 192:
+  case 196:
 /* Line 1792 of yacc.c  */
-#line 634 "./util/configparser.y"
+#line 654 "./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)
@@ -2861,9 +2890,9 @@ yyreduce:
     }
     break;
 
-  case 193:
+  case 197:
 /* Line 1792 of yacc.c  */
-#line 644 "./util/configparser.y"
+#line 664 "./util/configparser.y"
     {
                OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2877,9 +2906,9 @@ yyreduce:
        }
     break;
 
-  case 194:
+  case 198:
 /* Line 1792 of yacc.c  */
-#line 657 "./util/configparser.y"
+#line 677 "./util/configparser.y"
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2891,9 +2920,9 @@ yyreduce:
        }
     break;
 
-  case 195:
+  case 199:
 /* Line 1792 of yacc.c  */
-#line 668 "./util/configparser.y"
+#line 688 "./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))
@@ -2902,9 +2931,9 @@ yyreduce:
        }
     break;
 
-  case 196:
+  case 200:
 /* Line 1792 of yacc.c  */
-#line 676 "./util/configparser.y"
+#line 696 "./util/configparser.y"
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2918,9 +2947,9 @@ yyreduce:
        }
     break;
 
-  case 197:
+  case 201:
 /* Line 1792 of yacc.c  */
-#line 689 "./util/configparser.y"
+#line 709 "./util/configparser.y"
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2930,9 +2959,9 @@ yyreduce:
        }
     break;
 
-  case 198:
+  case 202:
 /* Line 1792 of yacc.c  */
-#line 698 "./util/configparser.y"
+#line 718 "./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)
@@ -2942,9 +2971,9 @@ yyreduce:
        }
     break;
 
-  case 199:
+  case 203:
 /* Line 1792 of yacc.c  */
-#line 707 "./util/configparser.y"
+#line 727 "./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)
@@ -2954,9 +2983,9 @@ yyreduce:
        }
     break;
 
-  case 200:
+  case 204:
 /* Line 1792 of yacc.c  */
-#line 716 "./util/configparser.y"
+#line 736 "./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)
@@ -2967,9 +2996,9 @@ yyreduce:
        }
     break;
 
-  case 201:
+  case 205:
 /* Line 1792 of yacc.c  */
-#line 726 "./util/configparser.y"
+#line 746 "./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))
@@ -2978,9 +3007,9 @@ yyreduce:
        }
     break;
 
-  case 202:
+  case 206:
 /* Line 1792 of yacc.c  */
-#line 734 "./util/configparser.y"
+#line 754 "./util/configparser.y"
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2994,9 +3023,9 @@ yyreduce:
        }
     break;
 
-  case 203:
+  case 207:
 /* Line 1792 of yacc.c  */
-#line 747 "./util/configparser.y"
+#line 767 "./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)
@@ -3006,9 +3035,9 @@ yyreduce:
        }
     break;
 
-  case 204:
+  case 208:
 /* Line 1792 of yacc.c  */
-#line 756 "./util/configparser.y"
+#line 776 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
@@ -3017,9 +3046,9 @@ yyreduce:
        }
     break;
 
-  case 205:
+  case 209:
 /* Line 1792 of yacc.c  */
-#line 764 "./util/configparser.y"
+#line 784 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3029,9 +3058,9 @@ yyreduce:
        }
     break;
 
-  case 206:
+  case 210:
 /* Line 1792 of yacc.c  */
-#line 773 "./util/configparser.y"
+#line 793 "./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 "
@@ -3040,9 +3069,9 @@ yyreduce:
        }
     break;
 
-  case 207:
+  case 211:
 /* Line 1792 of yacc.c  */
-#line 781 "./util/configparser.y"
+#line 801 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3056,9 +3085,9 @@ yyreduce:
        }
     break;
 
-  case 208:
+  case 212:
 /* Line 1792 of yacc.c  */
-#line 794 "./util/configparser.y"
+#line 814 "./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)
@@ -3068,9 +3097,9 @@ yyreduce:
        }
     break;
 
-  case 209:
+  case 213:
 /* Line 1792 of yacc.c  */
-#line 803 "./util/configparser.y"
+#line 823 "./util/configparser.y"
     {
                OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->target_fetch_policy);
@@ -3078,9 +3107,9 @@ yyreduce:
        }
     break;
 
-  case 210:
+  case 214:
 /* Line 1792 of yacc.c  */
-#line 810 "./util/configparser.y"
+#line 830 "./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)
@@ -3091,9 +3120,9 @@ yyreduce:
        }
     break;
 
-  case 211:
+  case 215:
 /* Line 1792 of yacc.c  */
-#line 820 "./util/configparser.y"
+#line 840 "./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)
@@ -3104,9 +3133,9 @@ yyreduce:
        }
     break;
 
-  case 212:
+  case 216:
 /* Line 1792 of yacc.c  */
-#line 830 "./util/configparser.y"
+#line 850 "./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)
@@ -3117,9 +3146,9 @@ yyreduce:
        }
     break;
 
-  case 213:
+  case 217:
 /* Line 1792 of yacc.c  */
-#line 840 "./util/configparser.y"
+#line 860 "./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)
@@ -3130,9 +3159,9 @@ yyreduce:
        }
     break;
 
-  case 214:
+  case 218:
 /* Line 1792 of yacc.c  */
-#line 850 "./util/configparser.y"
+#line 870 "./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)
@@ -3143,9 +3172,9 @@ yyreduce:
        }
     break;
 
-  case 215:
+  case 219:
 /* Line 1792 of yacc.c  */
-#line 860 "./util/configparser.y"
+#line 880 "./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)
@@ -3156,9 +3185,9 @@ yyreduce:
        }
     break;
 
-  case 216:
+  case 220:
 /* Line 1792 of yacc.c  */
-#line 870 "./util/configparser.y"
+#line 890 "./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)
@@ -3169,9 +3198,9 @@ yyreduce:
        }
     break;
 
-  case 217:
+  case 221:
 /* Line 1792 of yacc.c  */
-#line 880 "./util/configparser.y"
+#line 900 "./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)
@@ -3182,9 +3211,9 @@ yyreduce:
        }
     break;
 
-  case 218:
+  case 222:
 /* Line 1792 of yacc.c  */
-#line 890 "./util/configparser.y"
+#line 910 "./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)))
@@ -3192,9 +3221,9 @@ yyreduce:
        }
     break;
 
-  case 219:
+  case 223:
 /* Line 1792 of yacc.c  */
-#line 897 "./util/configparser.y"
+#line 917 "./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)))
@@ -3202,9 +3231,9 @@ yyreduce:
        }
     break;
 
-  case 220:
+  case 224:
 /* Line 1792 of yacc.c  */
-#line 904 "./util/configparser.y"
+#line 924 "./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)))
@@ -3212,9 +3241,9 @@ yyreduce:
        }
     break;
 
-  case 221:
+  case 225:
 /* Line 1792 of yacc.c  */
-#line 911 "./util/configparser.y"
+#line 931 "./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)
@@ -3224,9 +3253,9 @@ yyreduce:
        }
     break;
 
-  case 222:
+  case 226:
 /* Line 1792 of yacc.c  */
-#line 920 "./util/configparser.y"
+#line 940 "./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)
@@ -3236,9 +3265,9 @@ yyreduce:
        }
     break;
 
-  case 223:
+  case 227:
 /* Line 1792 of yacc.c  */
-#line 929 "./util/configparser.y"
+#line 949 "./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)
@@ -3248,9 +3277,9 @@ yyreduce:
        }
     break;
 
-  case 224:
+  case 228:
 /* Line 1792 of yacc.c  */
-#line 938 "./util/configparser.y"
+#line 958 "./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)))
@@ -3258,9 +3287,9 @@ yyreduce:
        }
     break;
 
-  case 225:
+  case 229:
 /* Line 1792 of yacc.c  */
-#line 945 "./util/configparser.y"
+#line 965 "./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)
@@ -3271,9 +3300,9 @@ yyreduce:
        }
     break;
 
-  case 226:
+  case 230:
 /* Line 1792 of yacc.c  */
-#line 955 "./util/configparser.y"
+#line 975 "./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 &&
@@ -3291,9 +3320,9 @@ yyreduce:
        }
     break;
 
-  case 227:
+  case 231:
 /* Line 1792 of yacc.c  */
-#line 972 "./util/configparser.y"
+#line 992 "./util/configparser.y"
     {
                OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->module_conf);
@@ -3301,9 +3330,9 @@ yyreduce:
        }
     break;
 
-  case 228:
+  case 232:
 /* Line 1792 of yacc.c  */
-#line 979 "./util/configparser.y"
+#line 999 "./util/configparser.y"
     {
                OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3322,9 +3351,9 @@ yyreduce:
        }
     break;
 
-  case 229:
+  case 233:
 /* Line 1792 of yacc.c  */
-#line 997 "./util/configparser.y"
+#line 1017 "./util/configparser.y"
     {
                OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3338,9 +3367,9 @@ yyreduce:
        }
     break;
 
-  case 230:
+  case 234:
 /* Line 1792 of yacc.c  */
-#line 1010 "./util/configparser.y"
+#line 1030 "./util/configparser.y"
     {
                OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3354,9 +3383,9 @@ yyreduce:
        }
     break;
 
-  case 231:
+  case 235:
 /* Line 1792 of yacc.c  */
-#line 1023 "./util/configparser.y"
+#line 1043 "./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)
@@ -3366,9 +3395,9 @@ yyreduce:
        }
     break;
 
-  case 232:
+  case 236:
 /* Line 1792 of yacc.c  */
-#line 1032 "./util/configparser.y"
+#line 1052 "./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)
@@ -3378,9 +3407,9 @@ yyreduce:
        }
     break;
 
-  case 233:
+  case 237:
 /* Line 1792 of yacc.c  */
-#line 1041 "./util/configparser.y"
+#line 1061 "./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)
@@ -3390,9 +3419,9 @@ yyreduce:
        }
     break;
 
-  case 234:
+  case 238:
 /* Line 1792 of yacc.c  */
-#line 1050 "./util/configparser.y"
+#line 1070 "./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)
@@ -3402,9 +3431,9 @@ yyreduce:
        }
     break;
 
-  case 235:
+  case 239:
 /* Line 1792 of yacc.c  */
-#line 1059 "./util/configparser.y"
+#line 1079 "./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)
@@ -3415,9 +3444,9 @@ yyreduce:
        }
     break;
 
-  case 236:
+  case 240:
 /* Line 1792 of yacc.c  */
-#line 1069 "./util/configparser.y"
+#line 1089 "./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)
@@ -3428,9 +3457,9 @@ yyreduce:
        }
     break;
 
-  case 237:
+  case 241:
 /* Line 1792 of yacc.c  */
-#line 1079 "./util/configparser.y"
+#line 1099 "./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)
@@ -3440,9 +3469,9 @@ yyreduce:
        }
     break;
 
-  case 238:
+  case 242:
 /* Line 1792 of yacc.c  */
-#line 1088 "./util/configparser.y"
+#line 1108 "./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)
@@ -3452,9 +3481,9 @@ yyreduce:
        }
     break;
 
-  case 239:
+  case 243:
 /* Line 1792 of yacc.c  */
-#line 1097 "./util/configparser.y"
+#line 1117 "./util/configparser.y"
     {
                OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->val_nsec3_key_iterations);
@@ -3462,9 +3491,9 @@ yyreduce:
        }
     break;
 
-  case 240:
+  case 244:
 /* Line 1792 of yacc.c  */
-#line 1104 "./util/configparser.y"
+#line 1124 "./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)
@@ -3474,9 +3503,9 @@ yyreduce:
        }
     break;
 
-  case 241:
+  case 245:
 /* Line 1792 of yacc.c  */
-#line 1113 "./util/configparser.y"
+#line 1133 "./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)
@@ -3486,9 +3515,9 @@ yyreduce:
        }
     break;
 
-  case 242:
+  case 246:
 /* Line 1792 of yacc.c  */
-#line 1122 "./util/configparser.y"
+#line 1142 "./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)
@@ -3498,9 +3527,9 @@ yyreduce:
        }
     break;
 
-  case 243:
+  case 247:
 /* Line 1792 of yacc.c  */
-#line 1131 "./util/configparser.y"
+#line 1151 "./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)
@@ -3511,9 +3540,9 @@ yyreduce:
        }
     break;
 
-  case 244:
+  case 248:
 /* Line 1792 of yacc.c  */
-#line 1140 "./util/configparser.y"
+#line 1160 "./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))
@@ -3522,9 +3551,9 @@ yyreduce:
        }
     break;
 
-  case 245:
+  case 249:
 /* Line 1792 of yacc.c  */
-#line 1148 "./util/configparser.y"
+#line 1168 "./util/configparser.y"
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3538,9 +3567,9 @@ yyreduce:
        }
     break;
 
-  case 246:
+  case 250:
 /* Line 1792 of yacc.c  */
-#line 1161 "./util/configparser.y"
+#line 1181 "./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))
@@ -3549,9 +3578,9 @@ yyreduce:
        }
     break;
 
-  case 247:
+  case 251:
 /* Line 1792 of yacc.c  */
-#line 1169 "./util/configparser.y"
+#line 1189 "./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 &&
@@ -3576,9 +3605,9 @@ yyreduce:
        }
     break;
 
-  case 248:
+  case 252:
 /* Line 1792 of yacc.c  */
-#line 1193 "./util/configparser.y"
+#line 1213 "./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)))
@@ -3586,9 +3615,9 @@ yyreduce:
        }
     break;
 
-  case 249:
+  case 253:
 /* Line 1792 of yacc.c  */
-#line 1200 "./util/configparser.y"
+#line 1220 "./util/configparser.y"
     {
                char* ptr;
                OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
@@ -3604,9 +3633,9 @@ yyreduce:
        }
     break;
 
-  case 250:
+  case 254:
 /* Line 1792 of yacc.c  */
-#line 1215 "./util/configparser.y"
+#line 1235 "./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)
@@ -3617,9 +3646,9 @@ yyreduce:
        }
     break;
 
-  case 251:
+  case 255:
 /* Line 1792 of yacc.c  */
-#line 1225 "./util/configparser.y"
+#line 1245 "./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)
@@ -3630,9 +3659,9 @@ yyreduce:
        }
     break;
 
-  case 252:
+  case 256:
 /* Line 1792 of yacc.c  */
-#line 1235 "./util/configparser.y"
+#line 1255 "./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));
@@ -3640,9 +3669,9 @@ yyreduce:
        }
     break;
 
-  case 253:
+  case 257:
 /* Line 1792 of yacc.c  */
-#line 1242 "./util/configparser.y"
+#line 1262 "./util/configparser.y"
     {
                OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dns64_prefix);
@@ -3650,9 +3679,9 @@ yyreduce:
        }
     break;
 
-  case 254:
+  case 258:
 /* Line 1792 of yacc.c  */
-#line 1249 "./util/configparser.y"
+#line 1269 "./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)
@@ -3662,9 +3691,9 @@ yyreduce:
        }
     break;
 
-  case 255:
+  case 259:
 /* Line 1792 of yacc.c  */
-#line 1258 "./util/configparser.y"
+#line 1278 "./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)
@@ -3674,9 +3703,9 @@ yyreduce:
        }
     break;
 
-  case 256:
+  case 260:
 /* Line 1792 of yacc.c  */
-#line 1267 "./util/configparser.y"
+#line 1287 "./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))
@@ -3685,9 +3714,9 @@ yyreduce:
        }
     break;
 
-  case 257:
+  case 261:
 /* Line 1792 of yacc.c  */
-#line 1275 "./util/configparser.y"
+#line 1295 "./util/configparser.y"
     {
                OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3701,9 +3730,9 @@ yyreduce:
        }
     break;
 
-  case 258:
+  case 262:
 /* Line 1792 of yacc.c  */
-#line 1288 "./util/configparser.y"
+#line 1308 "./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) {
@@ -3717,9 +3746,9 @@ yyreduce:
        }
     break;
 
-  case 259:
+  case 263:
 /* Line 1792 of yacc.c  */
-#line 1301 "./util/configparser.y"
+#line 1321 "./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) {
@@ -3733,9 +3762,9 @@ yyreduce:
        }
     break;
 
-  case 260:
+  case 264:
 /* Line 1792 of yacc.c  */
-#line 1314 "./util/configparser.y"
+#line 1334 "./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)
@@ -3745,9 +3774,9 @@ yyreduce:
        }
     break;
 
-  case 261:
+  case 265:
 /* Line 1792 of yacc.c  */
-#line 1323 "./util/configparser.y"
+#line 1343 "./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)
@@ -3758,9 +3787,9 @@ yyreduce:
        }
     break;
 
-  case 262:
+  case 266:
 /* Line 1792 of yacc.c  */
-#line 1333 "./util/configparser.y"
+#line 1353 "./util/configparser.y"
     {
                OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->stubs->name)
@@ -3771,9 +3800,9 @@ yyreduce:
        }
     break;
 
-  case 263:
+  case 267:
 /* Line 1792 of yacc.c  */
-#line 1343 "./util/configparser.y"
+#line 1363 "./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)))
@@ -3781,9 +3810,9 @@ yyreduce:
        }
     break;
 
-  case 264:
+  case 268:
 /* Line 1792 of yacc.c  */
-#line 1350 "./util/configparser.y"
+#line 1370 "./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)))
@@ -3791,9 +3820,9 @@ yyreduce:
        }
     break;
 
-  case 265:
+  case 269:
 /* Line 1792 of yacc.c  */
-#line 1357 "./util/configparser.y"
+#line 1377 "./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)
@@ -3803,9 +3832,9 @@ yyreduce:
        }
     break;
 
-  case 266:
+  case 270:
 /* Line 1792 of yacc.c  */
-#line 1366 "./util/configparser.y"
+#line 1386 "./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)
@@ -3816,9 +3845,9 @@ yyreduce:
        }
     break;
 
-  case 267:
+  case 271:
 /* Line 1792 of yacc.c  */
-#line 1376 "./util/configparser.y"
+#line 1396 "./util/configparser.y"
     {
                OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->forwards->name)
@@ -3829,9 +3858,9 @@ yyreduce:
        }
     break;
 
-  case 268:
+  case 272:
 /* Line 1792 of yacc.c  */
-#line 1386 "./util/configparser.y"
+#line 1406 "./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)))
@@ -3839,9 +3868,9 @@ yyreduce:
        }
     break;
 
-  case 269:
+  case 273:
 /* Line 1792 of yacc.c  */
-#line 1393 "./util/configparser.y"
+#line 1413 "./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)))
@@ -3849,9 +3878,9 @@ yyreduce:
        }
     break;
 
-  case 270:
+  case 274:
 /* Line 1792 of yacc.c  */
-#line 1400 "./util/configparser.y"
+#line 1420 "./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)
@@ -3861,17 +3890,17 @@ yyreduce:
        }
     break;
 
-  case 271:
+  case 275:
 /* Line 1792 of yacc.c  */
-#line 1409 "./util/configparser.y"
+#line 1429 "./util/configparser.y"
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
     break;
 
-  case 282:
+  case 286:
 /* Line 1792 of yacc.c  */
-#line 1420 "./util/configparser.y"
+#line 1440 "./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)
@@ -3882,9 +3911,9 @@ yyreduce:
        }
     break;
 
-  case 283:
+  case 287:
 /* Line 1792 of yacc.c  */
-#line 1430 "./util/configparser.y"
+#line 1450 "./util/configparser.y"
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3894,9 +3923,9 @@ yyreduce:
        }
     break;
 
-  case 284:
+  case 288:
 /* Line 1792 of yacc.c  */
-#line 1439 "./util/configparser.y"
+#line 1459 "./util/configparser.y"
     {
                OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
@@ -3904,9 +3933,9 @@ yyreduce:
        }
     break;
 
-  case 285:
+  case 289:
 /* Line 1792 of yacc.c  */
-#line 1446 "./util/configparser.y"
+#line 1466 "./util/configparser.y"
     {
                OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3917,9 +3946,9 @@ yyreduce:
        }
     break;
 
-  case 286:
+  case 290:
 /* Line 1792 of yacc.c  */
-#line 1456 "./util/configparser.y"
+#line 1476 "./util/configparser.y"
     {
                OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_key_file);
@@ -3927,9 +3956,9 @@ yyreduce:
        }
     break;
 
-  case 287:
+  case 291:
 /* Line 1792 of yacc.c  */
-#line 1463 "./util/configparser.y"
+#line 1483 "./util/configparser.y"
     {
                OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_cert_file);
@@ -3937,9 +3966,9 @@ yyreduce:
        }
     break;
 
-  case 288:
+  case 292:
 /* Line 1792 of yacc.c  */
-#line 1470 "./util/configparser.y"
+#line 1490 "./util/configparser.y"
     {
                OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_key_file);
@@ -3947,9 +3976,9 @@ yyreduce:
        }
     break;
 
-  case 289:
+  case 293:
 /* Line 1792 of yacc.c  */
-#line 1477 "./util/configparser.y"
+#line 1497 "./util/configparser.y"
     {
                OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_cert_file);
@@ -3957,17 +3986,17 @@ yyreduce:
        }
     break;
 
-  case 290:
+  case 294:
 /* Line 1792 of yacc.c  */
-#line 1484 "./util/configparser.y"
+#line 1504 "./util/configparser.y"
     {
                OUTYY(("\nP(dnstap:)\n"));
        }
     break;
 
-  case 305:
+  case 309:
 /* Line 1792 of yacc.c  */
-#line 1501 "./util/configparser.y"
+#line 1521 "./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)
@@ -3976,9 +4005,9 @@ yyreduce:
        }
     break;
 
-  case 306:
+  case 310:
 /* Line 1792 of yacc.c  */
-#line 1509 "./util/configparser.y"
+#line 1529 "./util/configparser.y"
     {
                OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_socket_path);
@@ -3986,9 +4015,9 @@ yyreduce:
        }
     break;
 
-  case 307:
+  case 311:
 /* Line 1792 of yacc.c  */
-#line 1516 "./util/configparser.y"
+#line 1536 "./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)
@@ -3997,9 +4026,9 @@ yyreduce:
        }
     break;
 
-  case 308:
+  case 312:
 /* Line 1792 of yacc.c  */
-#line 1524 "./util/configparser.y"
+#line 1544 "./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)
@@ -4008,9 +4037,9 @@ yyreduce:
        }
     break;
 
-  case 309:
+  case 313:
 /* Line 1792 of yacc.c  */
-#line 1532 "./util/configparser.y"
+#line 1552 "./util/configparser.y"
     {
                OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_identity);
@@ -4018,9 +4047,9 @@ yyreduce:
        }
     break;
 
-  case 310:
+  case 314:
 /* Line 1792 of yacc.c  */
-#line 1539 "./util/configparser.y"
+#line 1559 "./util/configparser.y"
     {
                OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dnstap_version);
@@ -4028,9 +4057,9 @@ yyreduce:
        }
     break;
 
-  case 311:
+  case 315:
 /* Line 1792 of yacc.c  */
-#line 1546 "./util/configparser.y"
+#line 1566 "./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)
@@ -4040,9 +4069,9 @@ yyreduce:
        }
     break;
 
-  case 312:
+  case 316:
 /* Line 1792 of yacc.c  */
-#line 1555 "./util/configparser.y"
+#line 1575 "./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)
@@ -4052,9 +4081,9 @@ yyreduce:
        }
     break;
 
-  case 313:
+  case 317:
 /* Line 1792 of yacc.c  */
-#line 1564 "./util/configparser.y"
+#line 1584 "./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)
@@ -4064,9 +4093,9 @@ yyreduce:
        }
     break;
 
-  case 314:
+  case 318:
 /* Line 1792 of yacc.c  */
-#line 1573 "./util/configparser.y"
+#line 1593 "./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)
@@ -4076,9 +4105,9 @@ yyreduce:
        }
     break;
 
-  case 315:
+  case 319:
 /* Line 1792 of yacc.c  */
-#line 1582 "./util/configparser.y"
+#line 1602 "./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)
@@ -4088,9 +4117,9 @@ yyreduce:
        }
     break;
 
-  case 316:
+  case 320:
 /* Line 1792 of yacc.c  */
-#line 1591 "./util/configparser.y"
+#line 1611 "./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)
@@ -4100,17 +4129,17 @@ yyreduce:
        }
     break;
 
-  case 317:
+  case 321:
 /* Line 1792 of yacc.c  */
-#line 1600 "./util/configparser.y"
+#line 1620 "./util/configparser.y"
     { 
                OUTYY(("\nP(python:)\n")); 
        }
     break;
 
-  case 321:
+  case 325:
 /* Line 1792 of yacc.c  */
-#line 1609 "./util/configparser.y"
+#line 1629 "./util/configparser.y"
     {
                OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->python_script);
@@ -4120,7 +4149,7 @@ yyreduce:
 
 
 /* Line 1792 of yacc.c  */
-#line 4124 "util/configparser.c"
+#line 4153 "util/configparser.c"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4352,7 +4381,7 @@ yyreturn:
 
 
 /* Line 2055 of yacc.c  */
-#line 1614 "./util/configparser.y"
+#line 1634 "./util/configparser.y"
 
 
 /* parse helper routines could be here */
index 53e5adcb6e6226b1f2ecfeda1528371e9c842e6a..40ad011d7819db34141e385fbd0fa00919f0ad7c 100644 (file)
@@ -64,148 +64,150 @@ extern int yydebug;
      VAR_DO_IP6 = 273,
      VAR_DO_UDP = 274,
      VAR_DO_TCP = 275,
-     VAR_CHROOT = 276,
-     VAR_USERNAME = 277,
-     VAR_DIRECTORY = 278,
-     VAR_LOGFILE = 279,
-     VAR_PIDFILE = 280,
-     VAR_MSG_CACHE_SIZE = 281,
-     VAR_MSG_CACHE_SLABS = 282,
-     VAR_NUM_QUERIES_PER_THREAD = 283,
-     VAR_RRSET_CACHE_SIZE = 284,
-     VAR_RRSET_CACHE_SLABS = 285,
-     VAR_OUTGOING_NUM_TCP = 286,
-     VAR_INFRA_HOST_TTL = 287,
-     VAR_INFRA_LAME_TTL = 288,
-     VAR_INFRA_CACHE_SLABS = 289,
-     VAR_INFRA_CACHE_NUMHOSTS = 290,
-     VAR_INFRA_CACHE_LAME_SIZE = 291,
-     VAR_NAME = 292,
-     VAR_STUB_ZONE = 293,
-     VAR_STUB_HOST = 294,
-     VAR_STUB_ADDR = 295,
-     VAR_TARGET_FETCH_POLICY = 296,
-     VAR_HARDEN_SHORT_BUFSIZE = 297,
-     VAR_HARDEN_LARGE_QUERIES = 298,
-     VAR_FORWARD_ZONE = 299,
-     VAR_FORWARD_HOST = 300,
-     VAR_FORWARD_ADDR = 301,
-     VAR_DO_NOT_QUERY_ADDRESS = 302,
-     VAR_HIDE_IDENTITY = 303,
-     VAR_HIDE_VERSION = 304,
-     VAR_IDENTITY = 305,
-     VAR_VERSION = 306,
-     VAR_HARDEN_GLUE = 307,
-     VAR_MODULE_CONF = 308,
-     VAR_TRUST_ANCHOR_FILE = 309,
-     VAR_TRUST_ANCHOR = 310,
-     VAR_VAL_OVERRIDE_DATE = 311,
-     VAR_BOGUS_TTL = 312,
-     VAR_VAL_CLEAN_ADDITIONAL = 313,
-     VAR_VAL_PERMISSIVE_MODE = 314,
-     VAR_INCOMING_NUM_TCP = 315,
-     VAR_MSG_BUFFER_SIZE = 316,
-     VAR_KEY_CACHE_SIZE = 317,
-     VAR_KEY_CACHE_SLABS = 318,
-     VAR_TRUSTED_KEYS_FILE = 319,
-     VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320,
-     VAR_USE_SYSLOG = 321,
-     VAR_OUTGOING_INTERFACE = 322,
-     VAR_ROOT_HINTS = 323,
-     VAR_DO_NOT_QUERY_LOCALHOST = 324,
-     VAR_CACHE_MAX_TTL = 325,
-     VAR_HARDEN_DNSSEC_STRIPPED = 326,
-     VAR_ACCESS_CONTROL = 327,
-     VAR_LOCAL_ZONE = 328,
-     VAR_LOCAL_DATA = 329,
-     VAR_INTERFACE_AUTOMATIC = 330,
-     VAR_STATISTICS_INTERVAL = 331,
-     VAR_DO_DAEMONIZE = 332,
-     VAR_USE_CAPS_FOR_ID = 333,
-     VAR_STATISTICS_CUMULATIVE = 334,
-     VAR_OUTGOING_PORT_PERMIT = 335,
-     VAR_OUTGOING_PORT_AVOID = 336,
-     VAR_DLV_ANCHOR_FILE = 337,
-     VAR_DLV_ANCHOR = 338,
-     VAR_NEG_CACHE_SIZE = 339,
-     VAR_HARDEN_REFERRAL_PATH = 340,
-     VAR_PRIVATE_ADDRESS = 341,
-     VAR_PRIVATE_DOMAIN = 342,
-     VAR_REMOTE_CONTROL = 343,
-     VAR_CONTROL_ENABLE = 344,
-     VAR_CONTROL_INTERFACE = 345,
-     VAR_CONTROL_PORT = 346,
-     VAR_SERVER_KEY_FILE = 347,
-     VAR_SERVER_CERT_FILE = 348,
-     VAR_CONTROL_KEY_FILE = 349,
-     VAR_CONTROL_CERT_FILE = 350,
-     VAR_CONTROL_USE_CERT = 351,
-     VAR_EXTENDED_STATISTICS = 352,
-     VAR_LOCAL_DATA_PTR = 353,
-     VAR_JOSTLE_TIMEOUT = 354,
-     VAR_STUB_PRIME = 355,
-     VAR_UNWANTED_REPLY_THRESHOLD = 356,
-     VAR_LOG_TIME_ASCII = 357,
-     VAR_DOMAIN_INSECURE = 358,
-     VAR_PYTHON = 359,
-     VAR_PYTHON_SCRIPT = 360,
-     VAR_VAL_SIG_SKEW_MIN = 361,
-     VAR_VAL_SIG_SKEW_MAX = 362,
-     VAR_CACHE_MIN_TTL = 363,
-     VAR_VAL_LOG_LEVEL = 364,
-     VAR_AUTO_TRUST_ANCHOR_FILE = 365,
-     VAR_KEEP_MISSING = 366,
-     VAR_ADD_HOLDDOWN = 367,
-     VAR_DEL_HOLDDOWN = 368,
-     VAR_SO_RCVBUF = 369,
-     VAR_EDNS_BUFFER_SIZE = 370,
-     VAR_PREFETCH = 371,
-     VAR_PREFETCH_KEY = 372,
-     VAR_SO_SNDBUF = 373,
-     VAR_SO_REUSEPORT = 374,
-     VAR_HARDEN_BELOW_NXDOMAIN = 375,
-     VAR_IGNORE_CD_FLAG = 376,
-     VAR_LOG_QUERIES = 377,
-     VAR_TCP_UPSTREAM = 378,
-     VAR_SSL_UPSTREAM = 379,
-     VAR_SSL_SERVICE_KEY = 380,
-     VAR_SSL_SERVICE_PEM = 381,
-     VAR_SSL_PORT = 382,
-     VAR_FORWARD_FIRST = 383,
-     VAR_STUB_FIRST = 384,
-     VAR_MINIMAL_RESPONSES = 385,
-     VAR_RRSET_ROUNDROBIN = 386,
-     VAR_MAX_UDP_SIZE = 387,
-     VAR_DELAY_CLOSE = 388,
-     VAR_UNBLOCK_LAN_ZONES = 389,
-     VAR_INFRA_CACHE_MIN_RTT = 390,
-     VAR_DNS64_PREFIX = 391,
-     VAR_DNS64_SYNTHALL = 392,
-     VAR_DNSTAP = 393,
-     VAR_DNSTAP_ENABLE = 394,
-     VAR_DNSTAP_SOCKET_PATH = 395,
-     VAR_DNSTAP_SEND_IDENTITY = 396,
-     VAR_DNSTAP_SEND_VERSION = 397,
-     VAR_DNSTAP_IDENTITY = 398,
-     VAR_DNSTAP_VERSION = 399,
-     VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400,
-     VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401,
-     VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402,
-     VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403,
-     VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404,
-     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405,
-     VAR_HARDEN_ALGO_DOWNGRADE = 406,
-     VAR_IP_TRANSPARENT = 407,
-     VAR_RATELIMIT = 408,
-     VAR_RATELIMIT_SLABS = 409,
-     VAR_RATELIMIT_SIZE = 410,
-     VAR_RATELIMIT_FOR_DOMAIN = 411,
-     VAR_RATELIMIT_BELOW_DOMAIN = 412,
-     VAR_RATELIMIT_FACTOR = 413,
-     VAR_CAPS_WHITELIST = 414,
-     VAR_CACHE_MAX_NEGATIVE_TTL = 415,
-     VAR_PERMIT_SMALL_HOLDDOWN = 416,
-     VAR_QNAME_MINIMISATION = 417
+     VAR_TCP_MSS = 276,
+     VAR_OUTGOING_TCP_MSS = 277,
+     VAR_CHROOT = 278,
+     VAR_USERNAME = 279,
+     VAR_DIRECTORY = 280,
+     VAR_LOGFILE = 281,
+     VAR_PIDFILE = 282,
+     VAR_MSG_CACHE_SIZE = 283,
+     VAR_MSG_CACHE_SLABS = 284,
+     VAR_NUM_QUERIES_PER_THREAD = 285,
+     VAR_RRSET_CACHE_SIZE = 286,
+     VAR_RRSET_CACHE_SLABS = 287,
+     VAR_OUTGOING_NUM_TCP = 288,
+     VAR_INFRA_HOST_TTL = 289,
+     VAR_INFRA_LAME_TTL = 290,
+     VAR_INFRA_CACHE_SLABS = 291,
+     VAR_INFRA_CACHE_NUMHOSTS = 292,
+     VAR_INFRA_CACHE_LAME_SIZE = 293,
+     VAR_NAME = 294,
+     VAR_STUB_ZONE = 295,
+     VAR_STUB_HOST = 296,
+     VAR_STUB_ADDR = 297,
+     VAR_TARGET_FETCH_POLICY = 298,
+     VAR_HARDEN_SHORT_BUFSIZE = 299,
+     VAR_HARDEN_LARGE_QUERIES = 300,
+     VAR_FORWARD_ZONE = 301,
+     VAR_FORWARD_HOST = 302,
+     VAR_FORWARD_ADDR = 303,
+     VAR_DO_NOT_QUERY_ADDRESS = 304,
+     VAR_HIDE_IDENTITY = 305,
+     VAR_HIDE_VERSION = 306,
+     VAR_IDENTITY = 307,
+     VAR_VERSION = 308,
+     VAR_HARDEN_GLUE = 309,
+     VAR_MODULE_CONF = 310,
+     VAR_TRUST_ANCHOR_FILE = 311,
+     VAR_TRUST_ANCHOR = 312,
+     VAR_VAL_OVERRIDE_DATE = 313,
+     VAR_BOGUS_TTL = 314,
+     VAR_VAL_CLEAN_ADDITIONAL = 315,
+     VAR_VAL_PERMISSIVE_MODE = 316,
+     VAR_INCOMING_NUM_TCP = 317,
+     VAR_MSG_BUFFER_SIZE = 318,
+     VAR_KEY_CACHE_SIZE = 319,
+     VAR_KEY_CACHE_SLABS = 320,
+     VAR_TRUSTED_KEYS_FILE = 321,
+     VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 322,
+     VAR_USE_SYSLOG = 323,
+     VAR_OUTGOING_INTERFACE = 324,
+     VAR_ROOT_HINTS = 325,
+     VAR_DO_NOT_QUERY_LOCALHOST = 326,
+     VAR_CACHE_MAX_TTL = 327,
+     VAR_HARDEN_DNSSEC_STRIPPED = 328,
+     VAR_ACCESS_CONTROL = 329,
+     VAR_LOCAL_ZONE = 330,
+     VAR_LOCAL_DATA = 331,
+     VAR_INTERFACE_AUTOMATIC = 332,
+     VAR_STATISTICS_INTERVAL = 333,
+     VAR_DO_DAEMONIZE = 334,
+     VAR_USE_CAPS_FOR_ID = 335,
+     VAR_STATISTICS_CUMULATIVE = 336,
+     VAR_OUTGOING_PORT_PERMIT = 337,
+     VAR_OUTGOING_PORT_AVOID = 338,
+     VAR_DLV_ANCHOR_FILE = 339,
+     VAR_DLV_ANCHOR = 340,
+     VAR_NEG_CACHE_SIZE = 341,
+     VAR_HARDEN_REFERRAL_PATH = 342,
+     VAR_PRIVATE_ADDRESS = 343,
+     VAR_PRIVATE_DOMAIN = 344,
+     VAR_REMOTE_CONTROL = 345,
+     VAR_CONTROL_ENABLE = 346,
+     VAR_CONTROL_INTERFACE = 347,
+     VAR_CONTROL_PORT = 348,
+     VAR_SERVER_KEY_FILE = 349,
+     VAR_SERVER_CERT_FILE = 350,
+     VAR_CONTROL_KEY_FILE = 351,
+     VAR_CONTROL_CERT_FILE = 352,
+     VAR_CONTROL_USE_CERT = 353,
+     VAR_EXTENDED_STATISTICS = 354,
+     VAR_LOCAL_DATA_PTR = 355,
+     VAR_JOSTLE_TIMEOUT = 356,
+     VAR_STUB_PRIME = 357,
+     VAR_UNWANTED_REPLY_THRESHOLD = 358,
+     VAR_LOG_TIME_ASCII = 359,
+     VAR_DOMAIN_INSECURE = 360,
+     VAR_PYTHON = 361,
+     VAR_PYTHON_SCRIPT = 362,
+     VAR_VAL_SIG_SKEW_MIN = 363,
+     VAR_VAL_SIG_SKEW_MAX = 364,
+     VAR_CACHE_MIN_TTL = 365,
+     VAR_VAL_LOG_LEVEL = 366,
+     VAR_AUTO_TRUST_ANCHOR_FILE = 367,
+     VAR_KEEP_MISSING = 368,
+     VAR_ADD_HOLDDOWN = 369,
+     VAR_DEL_HOLDDOWN = 370,
+     VAR_SO_RCVBUF = 371,
+     VAR_EDNS_BUFFER_SIZE = 372,
+     VAR_PREFETCH = 373,
+     VAR_PREFETCH_KEY = 374,
+     VAR_SO_SNDBUF = 375,
+     VAR_SO_REUSEPORT = 376,
+     VAR_HARDEN_BELOW_NXDOMAIN = 377,
+     VAR_IGNORE_CD_FLAG = 378,
+     VAR_LOG_QUERIES = 379,
+     VAR_TCP_UPSTREAM = 380,
+     VAR_SSL_UPSTREAM = 381,
+     VAR_SSL_SERVICE_KEY = 382,
+     VAR_SSL_SERVICE_PEM = 383,
+     VAR_SSL_PORT = 384,
+     VAR_FORWARD_FIRST = 385,
+     VAR_STUB_FIRST = 386,
+     VAR_MINIMAL_RESPONSES = 387,
+     VAR_RRSET_ROUNDROBIN = 388,
+     VAR_MAX_UDP_SIZE = 389,
+     VAR_DELAY_CLOSE = 390,
+     VAR_UNBLOCK_LAN_ZONES = 391,
+     VAR_INFRA_CACHE_MIN_RTT = 392,
+     VAR_DNS64_PREFIX = 393,
+     VAR_DNS64_SYNTHALL = 394,
+     VAR_DNSTAP = 395,
+     VAR_DNSTAP_ENABLE = 396,
+     VAR_DNSTAP_SOCKET_PATH = 397,
+     VAR_DNSTAP_SEND_IDENTITY = 398,
+     VAR_DNSTAP_SEND_VERSION = 399,
+     VAR_DNSTAP_IDENTITY = 400,
+     VAR_DNSTAP_VERSION = 401,
+     VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 402,
+     VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 403,
+     VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 404,
+     VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 405,
+     VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 406,
+     VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 407,
+     VAR_HARDEN_ALGO_DOWNGRADE = 408,
+     VAR_IP_TRANSPARENT = 409,
+     VAR_RATELIMIT = 410,
+     VAR_RATELIMIT_SLABS = 411,
+     VAR_RATELIMIT_SIZE = 412,
+     VAR_RATELIMIT_FOR_DOMAIN = 413,
+     VAR_RATELIMIT_BELOW_DOMAIN = 414,
+     VAR_RATELIMIT_FACTOR = 415,
+     VAR_CAPS_WHITELIST = 416,
+     VAR_CACHE_MAX_NEGATIVE_TTL = 417,
+     VAR_PERMIT_SMALL_HOLDDOWN = 418,
+     VAR_QNAME_MINIMISATION = 419
    };
 #endif
 /* Tokens.  */
@@ -227,148 +229,150 @@ extern int yydebug;
 #define VAR_DO_IP6 273
 #define VAR_DO_UDP 274
 #define VAR_DO_TCP 275
-#define VAR_CHROOT 276
-#define VAR_USERNAME 277
-#define VAR_DIRECTORY 278
-#define VAR_LOGFILE 279
-#define VAR_PIDFILE 280
-#define VAR_MSG_CACHE_SIZE 281
-#define VAR_MSG_CACHE_SLABS 282
-#define VAR_NUM_QUERIES_PER_THREAD 283
-#define VAR_RRSET_CACHE_SIZE 284
-#define VAR_RRSET_CACHE_SLABS 285
-#define VAR_OUTGOING_NUM_TCP 286
-#define VAR_INFRA_HOST_TTL 287
-#define VAR_INFRA_LAME_TTL 288
-#define VAR_INFRA_CACHE_SLABS 289
-#define VAR_INFRA_CACHE_NUMHOSTS 290
-#define VAR_INFRA_CACHE_LAME_SIZE 291
-#define VAR_NAME 292
-#define VAR_STUB_ZONE 293
-#define VAR_STUB_HOST 294
-#define VAR_STUB_ADDR 295
-#define VAR_TARGET_FETCH_POLICY 296
-#define VAR_HARDEN_SHORT_BUFSIZE 297
-#define VAR_HARDEN_LARGE_QUERIES 298
-#define VAR_FORWARD_ZONE 299
-#define VAR_FORWARD_HOST 300
-#define VAR_FORWARD_ADDR 301
-#define VAR_DO_NOT_QUERY_ADDRESS 302
-#define VAR_HIDE_IDENTITY 303
-#define VAR_HIDE_VERSION 304
-#define VAR_IDENTITY 305
-#define VAR_VERSION 306
-#define VAR_HARDEN_GLUE 307
-#define VAR_MODULE_CONF 308
-#define VAR_TRUST_ANCHOR_FILE 309
-#define VAR_TRUST_ANCHOR 310
-#define VAR_VAL_OVERRIDE_DATE 311
-#define VAR_BOGUS_TTL 312
-#define VAR_VAL_CLEAN_ADDITIONAL 313
-#define VAR_VAL_PERMISSIVE_MODE 314
-#define VAR_INCOMING_NUM_TCP 315
-#define VAR_MSG_BUFFER_SIZE 316
-#define VAR_KEY_CACHE_SIZE 317
-#define VAR_KEY_CACHE_SLABS 318
-#define VAR_TRUSTED_KEYS_FILE 319
-#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320
-#define VAR_USE_SYSLOG 321
-#define VAR_OUTGOING_INTERFACE 322
-#define VAR_ROOT_HINTS 323
-#define VAR_DO_NOT_QUERY_LOCALHOST 324
-#define VAR_CACHE_MAX_TTL 325
-#define VAR_HARDEN_DNSSEC_STRIPPED 326
-#define VAR_ACCESS_CONTROL 327
-#define VAR_LOCAL_ZONE 328
-#define VAR_LOCAL_DATA 329
-#define VAR_INTERFACE_AUTOMATIC 330
-#define VAR_STATISTICS_INTERVAL 331
-#define VAR_DO_DAEMONIZE 332
-#define VAR_USE_CAPS_FOR_ID 333
-#define VAR_STATISTICS_CUMULATIVE 334
-#define VAR_OUTGOING_PORT_PERMIT 335
-#define VAR_OUTGOING_PORT_AVOID 336
-#define VAR_DLV_ANCHOR_FILE 337
-#define VAR_DLV_ANCHOR 338
-#define VAR_NEG_CACHE_SIZE 339
-#define VAR_HARDEN_REFERRAL_PATH 340
-#define VAR_PRIVATE_ADDRESS 341
-#define VAR_PRIVATE_DOMAIN 342
-#define VAR_REMOTE_CONTROL 343
-#define VAR_CONTROL_ENABLE 344
-#define VAR_CONTROL_INTERFACE 345
-#define VAR_CONTROL_PORT 346
-#define VAR_SERVER_KEY_FILE 347
-#define VAR_SERVER_CERT_FILE 348
-#define VAR_CONTROL_KEY_FILE 349
-#define VAR_CONTROL_CERT_FILE 350
-#define VAR_CONTROL_USE_CERT 351
-#define VAR_EXTENDED_STATISTICS 352
-#define VAR_LOCAL_DATA_PTR 353
-#define VAR_JOSTLE_TIMEOUT 354
-#define VAR_STUB_PRIME 355
-#define VAR_UNWANTED_REPLY_THRESHOLD 356
-#define VAR_LOG_TIME_ASCII 357
-#define VAR_DOMAIN_INSECURE 358
-#define VAR_PYTHON 359
-#define VAR_PYTHON_SCRIPT 360
-#define VAR_VAL_SIG_SKEW_MIN 361
-#define VAR_VAL_SIG_SKEW_MAX 362
-#define VAR_CACHE_MIN_TTL 363
-#define VAR_VAL_LOG_LEVEL 364
-#define VAR_AUTO_TRUST_ANCHOR_FILE 365
-#define VAR_KEEP_MISSING 366
-#define VAR_ADD_HOLDDOWN 367
-#define VAR_DEL_HOLDDOWN 368
-#define VAR_SO_RCVBUF 369
-#define VAR_EDNS_BUFFER_SIZE 370
-#define VAR_PREFETCH 371
-#define VAR_PREFETCH_KEY 372
-#define VAR_SO_SNDBUF 373
-#define VAR_SO_REUSEPORT 374
-#define VAR_HARDEN_BELOW_NXDOMAIN 375
-#define VAR_IGNORE_CD_FLAG 376
-#define VAR_LOG_QUERIES 377
-#define VAR_TCP_UPSTREAM 378
-#define VAR_SSL_UPSTREAM 379
-#define VAR_SSL_SERVICE_KEY 380
-#define VAR_SSL_SERVICE_PEM 381
-#define VAR_SSL_PORT 382
-#define VAR_FORWARD_FIRST 383
-#define VAR_STUB_FIRST 384
-#define VAR_MINIMAL_RESPONSES 385
-#define VAR_RRSET_ROUNDROBIN 386
-#define VAR_MAX_UDP_SIZE 387
-#define VAR_DELAY_CLOSE 388
-#define VAR_UNBLOCK_LAN_ZONES 389
-#define VAR_INFRA_CACHE_MIN_RTT 390
-#define VAR_DNS64_PREFIX 391
-#define VAR_DNS64_SYNTHALL 392
-#define VAR_DNSTAP 393
-#define VAR_DNSTAP_ENABLE 394
-#define VAR_DNSTAP_SOCKET_PATH 395
-#define VAR_DNSTAP_SEND_IDENTITY 396
-#define VAR_DNSTAP_SEND_VERSION 397
-#define VAR_DNSTAP_IDENTITY 398
-#define VAR_DNSTAP_VERSION 399
-#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 400
-#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 401
-#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 402
-#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 403
-#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 404
-#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 405
-#define VAR_HARDEN_ALGO_DOWNGRADE 406
-#define VAR_IP_TRANSPARENT 407
-#define VAR_RATELIMIT 408
-#define VAR_RATELIMIT_SLABS 409
-#define VAR_RATELIMIT_SIZE 410
-#define VAR_RATELIMIT_FOR_DOMAIN 411
-#define VAR_RATELIMIT_BELOW_DOMAIN 412
-#define VAR_RATELIMIT_FACTOR 413
-#define VAR_CAPS_WHITELIST 414
-#define VAR_CACHE_MAX_NEGATIVE_TTL 415
-#define VAR_PERMIT_SMALL_HOLDDOWN 416
-#define VAR_QNAME_MINIMISATION 417
+#define VAR_TCP_MSS 276
+#define VAR_OUTGOING_TCP_MSS 277
+#define VAR_CHROOT 278
+#define VAR_USERNAME 279
+#define VAR_DIRECTORY 280
+#define VAR_LOGFILE 281
+#define VAR_PIDFILE 282
+#define VAR_MSG_CACHE_SIZE 283
+#define VAR_MSG_CACHE_SLABS 284
+#define VAR_NUM_QUERIES_PER_THREAD 285
+#define VAR_RRSET_CACHE_SIZE 286
+#define VAR_RRSET_CACHE_SLABS 287
+#define VAR_OUTGOING_NUM_TCP 288
+#define VAR_INFRA_HOST_TTL 289
+#define VAR_INFRA_LAME_TTL 290
+#define VAR_INFRA_CACHE_SLABS 291
+#define VAR_INFRA_CACHE_NUMHOSTS 292
+#define VAR_INFRA_CACHE_LAME_SIZE 293
+#define VAR_NAME 294
+#define VAR_STUB_ZONE 295
+#define VAR_STUB_HOST 296
+#define VAR_STUB_ADDR 297
+#define VAR_TARGET_FETCH_POLICY 298
+#define VAR_HARDEN_SHORT_BUFSIZE 299
+#define VAR_HARDEN_LARGE_QUERIES 300
+#define VAR_FORWARD_ZONE 301
+#define VAR_FORWARD_HOST 302
+#define VAR_FORWARD_ADDR 303
+#define VAR_DO_NOT_QUERY_ADDRESS 304
+#define VAR_HIDE_IDENTITY 305
+#define VAR_HIDE_VERSION 306
+#define VAR_IDENTITY 307
+#define VAR_VERSION 308
+#define VAR_HARDEN_GLUE 309
+#define VAR_MODULE_CONF 310
+#define VAR_TRUST_ANCHOR_FILE 311
+#define VAR_TRUST_ANCHOR 312
+#define VAR_VAL_OVERRIDE_DATE 313
+#define VAR_BOGUS_TTL 314
+#define VAR_VAL_CLEAN_ADDITIONAL 315
+#define VAR_VAL_PERMISSIVE_MODE 316
+#define VAR_INCOMING_NUM_TCP 317
+#define VAR_MSG_BUFFER_SIZE 318
+#define VAR_KEY_CACHE_SIZE 319
+#define VAR_KEY_CACHE_SLABS 320
+#define VAR_TRUSTED_KEYS_FILE 321
+#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 322
+#define VAR_USE_SYSLOG 323
+#define VAR_OUTGOING_INTERFACE 324
+#define VAR_ROOT_HINTS 325
+#define VAR_DO_NOT_QUERY_LOCALHOST 326
+#define VAR_CACHE_MAX_TTL 327
+#define VAR_HARDEN_DNSSEC_STRIPPED 328
+#define VAR_ACCESS_CONTROL 329
+#define VAR_LOCAL_ZONE 330
+#define VAR_LOCAL_DATA 331
+#define VAR_INTERFACE_AUTOMATIC 332
+#define VAR_STATISTICS_INTERVAL 333
+#define VAR_DO_DAEMONIZE 334
+#define VAR_USE_CAPS_FOR_ID 335
+#define VAR_STATISTICS_CUMULATIVE 336
+#define VAR_OUTGOING_PORT_PERMIT 337
+#define VAR_OUTGOING_PORT_AVOID 338
+#define VAR_DLV_ANCHOR_FILE 339
+#define VAR_DLV_ANCHOR 340
+#define VAR_NEG_CACHE_SIZE 341
+#define VAR_HARDEN_REFERRAL_PATH 342
+#define VAR_PRIVATE_ADDRESS 343
+#define VAR_PRIVATE_DOMAIN 344
+#define VAR_REMOTE_CONTROL 345
+#define VAR_CONTROL_ENABLE 346
+#define VAR_CONTROL_INTERFACE 347
+#define VAR_CONTROL_PORT 348
+#define VAR_SERVER_KEY_FILE 349
+#define VAR_SERVER_CERT_FILE 350
+#define VAR_CONTROL_KEY_FILE 351
+#define VAR_CONTROL_CERT_FILE 352
+#define VAR_CONTROL_USE_CERT 353
+#define VAR_EXTENDED_STATISTICS 354
+#define VAR_LOCAL_DATA_PTR 355
+#define VAR_JOSTLE_TIMEOUT 356
+#define VAR_STUB_PRIME 357
+#define VAR_UNWANTED_REPLY_THRESHOLD 358
+#define VAR_LOG_TIME_ASCII 359
+#define VAR_DOMAIN_INSECURE 360
+#define VAR_PYTHON 361
+#define VAR_PYTHON_SCRIPT 362
+#define VAR_VAL_SIG_SKEW_MIN 363
+#define VAR_VAL_SIG_SKEW_MAX 364
+#define VAR_CACHE_MIN_TTL 365
+#define VAR_VAL_LOG_LEVEL 366
+#define VAR_AUTO_TRUST_ANCHOR_FILE 367
+#define VAR_KEEP_MISSING 368
+#define VAR_ADD_HOLDDOWN 369
+#define VAR_DEL_HOLDDOWN 370
+#define VAR_SO_RCVBUF 371
+#define VAR_EDNS_BUFFER_SIZE 372
+#define VAR_PREFETCH 373
+#define VAR_PREFETCH_KEY 374
+#define VAR_SO_SNDBUF 375
+#define VAR_SO_REUSEPORT 376
+#define VAR_HARDEN_BELOW_NXDOMAIN 377
+#define VAR_IGNORE_CD_FLAG 378
+#define VAR_LOG_QUERIES 379
+#define VAR_TCP_UPSTREAM 380
+#define VAR_SSL_UPSTREAM 381
+#define VAR_SSL_SERVICE_KEY 382
+#define VAR_SSL_SERVICE_PEM 383
+#define VAR_SSL_PORT 384
+#define VAR_FORWARD_FIRST 385
+#define VAR_STUB_FIRST 386
+#define VAR_MINIMAL_RESPONSES 387
+#define VAR_RRSET_ROUNDROBIN 388
+#define VAR_MAX_UDP_SIZE 389
+#define VAR_DELAY_CLOSE 390
+#define VAR_UNBLOCK_LAN_ZONES 391
+#define VAR_INFRA_CACHE_MIN_RTT 392
+#define VAR_DNS64_PREFIX 393
+#define VAR_DNS64_SYNTHALL 394
+#define VAR_DNSTAP 395
+#define VAR_DNSTAP_ENABLE 396
+#define VAR_DNSTAP_SOCKET_PATH 397
+#define VAR_DNSTAP_SEND_IDENTITY 398
+#define VAR_DNSTAP_SEND_VERSION 399
+#define VAR_DNSTAP_IDENTITY 400
+#define VAR_DNSTAP_VERSION 401
+#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 402
+#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 403
+#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 404
+#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 405
+#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 406
+#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 407
+#define VAR_HARDEN_ALGO_DOWNGRADE 408
+#define VAR_IP_TRANSPARENT 409
+#define VAR_RATELIMIT 410
+#define VAR_RATELIMIT_SLABS 411
+#define VAR_RATELIMIT_SIZE 412
+#define VAR_RATELIMIT_FOR_DOMAIN 413
+#define VAR_RATELIMIT_BELOW_DOMAIN 414
+#define VAR_RATELIMIT_FACTOR 415
+#define VAR_CAPS_WHITELIST 416
+#define VAR_CACHE_MAX_NEGATIVE_TTL 417
+#define VAR_PERMIT_SMALL_HOLDDOWN 418
+#define VAR_QNAME_MINIMISATION 419
 
 
 
@@ -382,7 +386,7 @@ typedef union YYSTYPE
 
 
 /* Line 2058 of yacc.c  */
-#line 386 "util/configparser.h"
+#line 390 "util/configparser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
index abc0bb0d77f8dc0f8723d7cd65118799e4d44460..bcaeead561d7859c764430db0f3a8088cf49a35b 100644 (file)
@@ -70,6 +70,7 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_SERVER VAR_VERBOSITY VAR_NUM_THREADS VAR_PORT
 %token VAR_OUTGOING_RANGE VAR_INTERFACE
 %token VAR_DO_IP4 VAR_DO_IP6 VAR_DO_UDP VAR_DO_TCP 
+%token VAR_TCP_MSS VAR_OUTGOING_TCP_MSS
 %token VAR_CHROOT VAR_USERNAME VAR_DIRECTORY VAR_LOGFILE VAR_PIDFILE
 %token VAR_MSG_CACHE_SIZE VAR_MSG_CACHE_SLABS VAR_NUM_QUERIES_PER_THREAD
 %token VAR_RRSET_CACHE_SIZE VAR_RRSET_CACHE_SLABS VAR_OUTGOING_NUM_TCP
@@ -142,6 +143,7 @@ contents_server: contents_server content_server
 content_server: server_num_threads | server_verbosity | server_port |
        server_outgoing_range | server_do_ip4 |
        server_do_ip6 | server_do_udp | server_do_tcp | 
+       server_tcp_mss | server_outgoing_tcp_mss |
        server_interface | server_chroot | server_username | 
        server_directory | server_logfile | server_pidfile |
        server_msg_cache_size | server_msg_cache_slabs |
@@ -395,6 +397,24 @@ server_do_tcp: VAR_DO_TCP STRING_ARG
                free($2);
        }
        ;
+server_tcp_mss: VAR_TCP_MSS STRING_ARG
+       {
+               OUTYY(("P(server_tcp_mss:%s)\n", $2));
+                if(atoi($2) == 0 && strcmp($2, "0") != 0)
+                        yyerror("number expected");
+                else cfg_parser->cfg->tcp_mss = atoi($2);
+                free($2);
+       }
+       ;
+server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG
+       {
+               OUTYY(("P(server_outgoing_tcp_mss:%s)\n", $2));
+               if(atoi($2) == 0 && strcmp($2, "0") != 0)
+                       yyerror("number expected");
+               else cfg_parser->cfg->outgoing_tcp_mss = atoi($2);
+               free($2);
+       }
+       ;
 server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG
        {
                OUTYY(("P(server_tcp_upstream:%s)\n", $2));