]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 3758] Provide a 'device' config statement for refclocks
authorJuergen Perlinger <perlinger@ntp.org>
Mon, 28 Mar 2022 07:18:23 +0000 (09:18 +0200)
committerJuergen Perlinger <perlinger@ntp.org>
Mon, 28 Mar 2022 07:18:23 +0000 (09:18 +0200)
bk: 6241613fyWAgidpuQfkvbwfikwfoCg

51 files changed:
ChangeLog
html/clockopt.html
html/scripts/clockopt.txt
include/ntp_config.h
include/ntp_refclock.h
include/ntp_stdlib.h
libntp/refnumtoa.c
ntpd/Makefile.am
ntpd/keyword-gen-utd
ntpd/keyword-gen.c
ntpd/ntp_clockdev.c [new file with mode: 0644]
ntpd/ntp_clockdev.h [new file with mode: 0644]
ntpd/ntp_config.c
ntpd/ntp_keyword.h
ntpd/ntp_parser.c
ntpd/ntp_parser.h
ntpd/ntp_parser.y
ntpd/ntp_ppsdev.c
ntpd/ntp_refclock.c
ntpd/refclock_acts.c
ntpd/refclock_arbiter.c
ntpd/refclock_arc.c
ntpd/refclock_as2201.c
ntpd/refclock_chronolog.c
ntpd/refclock_chu.c
ntpd/refclock_dumbclock.c
ntpd/refclock_fg.c
ntpd/refclock_heath.c
ntpd/refclock_hopfser.c
ntpd/refclock_hpgps.c
ntpd/refclock_jjy.c
ntpd/refclock_jupiter.c
ntpd/refclock_mx4200.c
ntpd/refclock_neoclock4x.c
ntpd/refclock_nmea.c
ntpd/refclock_oncore.c
ntpd/refclock_palisade.c
ntpd/refclock_parse.c
ntpd/refclock_pst.c
ntpd/refclock_ripencc.c
ntpd/refclock_true.c
ntpd/refclock_ulink.c
ntpd/refclock_wwvb.c
ntpd/refclock_zyfer.c
ports/winnt/libntp/termios.c
ports/winnt/vs2005/ntpd.vcproj
ports/winnt/vs2008/ntpd/ntpd.vcproj
ports/winnt/vs2013/ntpd/ntpd.vcxproj
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters
ports/winnt/vs2015/ntpd/ntpd.vcxproj
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters

index 73b3d8cc11430b2449f7528300a1a4fe597ab914..c4e56b2994ba1ec08f3297491ab625ba2bb43b7e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 ---
 * [Bug 3741] 4.2.8p15 can't build with glibc 2.34 <perlinger@ntp.org>
 * [Bug 3757] Improve handling of Linux-PPS in NTPD <perlinger@ntp.org>
+* [Bug 3758] Provide a 'device' config statement for refclocks <perlinger@ntp.org> 
 
 ---
 (4.2.8p15) 2020/06/23 Released by Harlan Stenn <stenn@ntp.org>
index 2c2d0a8fdfe982a9885e86dab8656acbbfee6c63..5b2de7e58d6ea375e6102291781f011fe2d546e8 100644 (file)
       </dd>
     </dl>
   </dd>
+  <dt id="device"><tt>device 127.127.<i>t.u</i> [timedata <i>devpath</i>] [ppsdata <i>devpath</i>]</tt></dt>
+  <dd>
+    This command can be used to specify the devices a reference
+    clocks should use.  Every clock has a special hard-coded builtin
+    name to use, and while it is possible to make a symlink from the
+    expected name to the real device, doing so is not always
+    convenient.  On some platforms or setups it is much easier to
+    specify the real device name in <i>ntpd</i>'s configuration file.
+  </dd><dd>
+    Note: It is <i>not</i> necessary to specify device names
+    in the configuration file; in such a case the builtin name will be
+    used.  But once a device name is given, it will be used as
+    specified.  There's no fallback in case of errors.
+  </dd><dd>
+    The arguments are:
+    <dl>
+      <dt><tt>timedata <i>devpath</i></tt></dt>
+      <dd>
+       Defines the device that provides the time code data stream;
+       for e.g. NMEA, <i>devpath</i> could be "<tt>/dev/ttyS7</tt>" on a
+       POSIX-like system or "<tt>\\.\COM4</tt>" for another widely used OS.
+      </dd>
+      <dt><tt>ppsdata <i>devpath</i></tt></dt>
+      <dd>
+       Defines the device that provides the PPS timing stream.  By
+       default, the time data stream is expected to be able to
+       provide the PPS data, too.  (Proper wiring and hardware
+       assumed, of course.)  This is true for all OSes that implement
+       the PPS API as originally designed for BSD variants.
+       <p/>    
+       But on some hardware the PPS signal cannot not delivered to
+       the UART that handles the serial data; instead it might
+       be routed to a GPIO pin, and that means that we need a
+       way to define the device where the PPS data can be acquired
+       from.  The <tt>ppsdata</tt> definition provides support for such
+       use cases.
+      </dd>
+    </dl>
+  </dd>
 </dl>
 <hr>
 <script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
index 1c76a1ce408c746ce7d44703ea2e56c7c5ad5f6b..873524dcac61d0849b7dbe6bcac947b8da1380f4 100644 (file)
@@ -1,5 +1,6 @@
 document.write("<p>Reference Clock Commands and Options</p><ul>\
 <li class='inline'><a href='clockopt.html#fudge'>fudge - specify fudge parameters</a><br>\
+<li class='inline'><a href='clockopt.html#device'>device - specify I/O and PPS device(s) for reference clock</a><br>\
 <li class='inline'><a href='clockopt.html#server'>server - specify reference clock server</a><br>\
 <li class='inline'><a href='comdex.html'>Command Index</a></li>\
 </ul>")
index 53546df8d6cabfa2a69f00442620cdd25747be15..dbb64e3a2eeee4920992666385a2f051cbd8f6a9 100644 (file)
@@ -234,6 +234,7 @@ struct config_tree_tag {
        restrict_fifo * restrict_opts;
 
        addr_opts_fifo *fudge;
+       addr_opts_fifo *device;
        attr_val_fifo * rlimit;
        attr_val_fifo * tinker;
        attr_val_fifo * enable_opts;
index 5604cf240fec2f31d018712ecc2b90aa60116857..6ab47491a91d1e7fb098fd4c6aba7ede51d14d8a 100644 (file)
@@ -219,7 +219,7 @@ extern      void    refclock_buginfo(sockaddr_u *,
 extern void    refclock_control(sockaddr_u *,
                                 const struct refclockstat *,
                                 struct refclockstat *);
-extern int     refclock_open   (const char *, u_int, u_int);
+extern int     refclock_open   (const sockaddr_u *srcadr, const char *, u_int, u_int);
 extern int     refclock_setup  (int, u_int, u_int);
 extern void    refclock_timer  (struct peer *);
 extern void    refclock_transmit(struct peer *);
@@ -250,7 +250,8 @@ extern int  refclock_ppsaugment(
     const struct refclock_atom*, l_fp *rcvtime ,
     double rcvfudge, double ppsfudge);
 
-extern int ppsdev_reopen(int ttyfd, int ppsfd, const char *ppspath,
+extern int ppsdev_reopen(const sockaddr_u *srcadr,
+                        int ttyfd, int ppsfd, const char *ppspath,
                         int mode, int flags);
 extern void ppsdev_close(int ttyfd, int ppsfd);
 
index 265aafa73ebc03cc7cb57dcc798c2c1e2d803405..7b1d2a37c27b744e3471fb2cce1c8d60b1480254 100644 (file)
@@ -174,7 +174,7 @@ extern      int     sockaddr_masktoprefixlen(const sockaddr_u *);
 extern const char * socktohost (const sockaddr_u *);
 extern int     octtoint        (const char *, u_long *);
 extern u_long  ranp2           (int);
-extern const char *refnumtoa   (sockaddr_u *);
+extern const char *refnumtoa   (const sockaddr_u *);
 extern const char *refid_str   (u_int32, int);
 
 extern int     decodenetnum    (const char *, sockaddr_u *);
index e6ca55aef868155723977a7de5aede61f289bb4f..cfebefe1ed18161c05c14592f1288d7a5da52700 100644 (file)
@@ -10,7 +10,7 @@
 
 const char *
 refnumtoa(
-       sockaddr_u *num
+       const sockaddr_u *num
        )
 {
        u_int32 netnum;
index 9b993c0fc38232aef986c7f68e7b863e00e94a50..5a3b7ed3008872d10290ba9b3377717c1b195f2a 100644 (file)
@@ -234,6 +234,7 @@ ntpdsim_SOURCES =           \
 libntpd_a_SOURCES =            \
        cmd_args.c              \
        jupiter.h               \
+       ntp_clockdev.c          \
        ntp_control.c           \
        ntp_crypto.c            \
        ntp_filegen.c           \
index 6a74fdf219832ff3eb5036d1005e19a3e386f260..0eb94005b839bb3a8e5dec125a20005d4a005222 100644 (file)
@@ -1 +1 @@
- *      Generated 2020-02-13 08:56:28 UTC        diff_ignore_line
+ *      Generated 2022-03-27 14:17:11 UTC        diff_ignore_line
index fbc6423d33e35274c8a40f700b7a26f30bea35a2..104d95e8b3e15497cd448e96f85dcb393b5cb600 100644 (file)
@@ -45,6 +45,7 @@ struct key_tok ntp_keywords[] = {
 { "broadcastdelay",    T_Broadcastdelay,       FOLLBY_TOKEN },
 { "checkhash",         T_Checkhash,            FOLLBY_TOKEN },
 { "ctl",               T_Ctl,                  FOLLBY_TOKEN },
+{ "device",            T_Device,               FOLLBY_STRING },
 { "disable",           T_Disable,              FOLLBY_TOKEN },
 { "driftfile",         T_Driftfile,            FOLLBY_STRING },
 { "dscp",              T_Dscp,                 FOLLBY_TOKEN },
@@ -207,6 +208,9 @@ struct key_tok ntp_keywords[] = {
 { "time1",             T_Time1,                FOLLBY_TOKEN },
 { "time2",             T_Time2,                FOLLBY_TOKEN },
 { "minjitter",         T_Minjitter,            FOLLBY_TOKEN },
+/* device spec */
+{ "ppsdata",           T_PpsData,              FOLLBY_STRING },
+{ "timedata",          T_TimeData,             FOLLBY_STRING },
 /* system_option */
 { "auth",              T_Auth,                 FOLLBY_TOKEN },
 { "bclient",           T_Bclient,              FOLLBY_TOKEN },
diff --git a/ntpd/ntp_clockdev.c b/ntpd/ntp_clockdev.c
new file mode 100644 (file)
index 0000000..fbd59f0
--- /dev/null
@@ -0,0 +1,187 @@
+/* ntp_clockdev.c - map clock instances to devices
+ *
+ * Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project.
+ * The contents of 'html/copyright.html' apply.
+ * ---------------------------------------------------------------------
+ * The runtime support for the 'device' configuration statement.  Just a
+ * simple list to map refclock source addresses to the device(s) to use
+ * instead of the builtin names.
+ * ---------------------------------------------------------------------
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef HAVE_NETINFO
+# include <netinfo/ni.h>
+#endif
+
+#include <stdio.h>
+#include <isc/net.h>
+
+#include "ntp.h"
+#include "ntpd.h"
+#include "ntp_clockdev.h"
+
+/* In the windows port 'refclock_open' is in 'libntp' (windows specific
+ * 'termios.c' source) and calling a function located in NTPD from the
+ * library is not something we should do.  Therefore 'termios.c' now
+ * provides a hook to set a callback function used for the lookup, and
+ * we have to populate that when we have indeed device name
+ * redirections...
+ */
+#ifdef SYS_WINNT
+extern const char * (*termios_device_lookup_func)(const sockaddr_u*, int);
+#endif
+
+/* What we remember for a device redirection */
+typedef struct DeviceInfoS DeviceInfoT;
+struct DeviceInfoS {
+       DeviceInfoT *next;      /* link to next record          */
+       int          ident;     /* type (byte1) and unit (byte0)*/
+       char        *ttyName;   /* time data IO device          */
+       char        *ppsName;   /* PPS device                   */
+};
+
+/* Our list of device redirections: */
+static DeviceInfoT * InfoList = NULL;
+
+/* Free a single record: */
+static void freeDeviceInfo(
+       DeviceInfoT *item
+       )
+{
+       if (NULL != item) {
+               free(item->ttyName);
+               free(item->ppsName);
+               free(item);
+       }
+}
+
+/* Get clock ID from pseudo network address. Returns -1 on error. */
+static int
+getClockIdent(
+       const sockaddr_u *srcadr
+       )
+{
+       int clkType, clkUnit;
+
+       /*
+        * Check for valid address and running peer
+        */
+       if (!ISREFCLOCKADR(srcadr))
+               return -1;
+
+       clkType = REFCLOCKTYPE(srcadr);
+       clkUnit = REFCLOCKUNIT(srcadr);
+       return (clkType << 8) + clkUnit;
+}
+
+/* Purge the complete redirection lis.t */
+void
+clockdev_clear(void)
+{
+       DeviceInfoT * item;
+       while (NULL != (item = InfoList)) {
+               InfoList = item->next;
+               freeDeviceInfo(item);
+       }
+}
+
+/* Remove record(s) for a clock.
+ * returns number of removed records (maybe zero) or -1 on error
+ */
+int
+clockdev_remove(
+       const sockaddr_u *addr_sock
+       )
+{
+       DeviceInfoT *item, **ppl;
+       int          rcnt  = 0;
+       const int    ident = getClockIdent(addr_sock);
+
+       if (ident < 0)
+               return -1;
+
+       ppl = &InfoList;
+       while (NULL != (item = *ppl)) {
+               if (ident == item->ident) {
+                       *ppl = item->next;
+                       freeDeviceInfo(item);
+                       ++rcnt;
+               } else {
+                       ppl = &item->next;
+               }
+       }
+       return rcnt;
+}
+
+/* Update or create a redirection record for a clock instace */
+int /*error*/
+clockdev_update(
+       const sockaddr_u *addr_sock,
+       const char       *ttyName,
+       const char       *ppsName
+       )
+{
+       DeviceInfoT *item;
+       const int   ident = getClockIdent(addr_sock);
+       if (ident < 0)
+               return EINVAL;
+
+       /* make sure Windows can use device redirections, too: */
+#   ifdef SYS_WINNT
+       termios_device_lookup_func = clockdev_lookup;
+#   endif
+
+       /* try to update an existing record */
+       for (item = InfoList;  NULL != item;  item = item->next)
+               if (ident == item->ident) {
+                       msyslog(LOG_INFO, "Update IO devices for %s: timedata='%s' ppsdata='%s'",
+                               refnumtoa(addr_sock),
+                               ttyName ? ttyName : "(null)",
+                               ppsName ? ppsName : "(null)");
+                       free(item->ttyName);
+                       free(item->ppsName);
+                       item->ttyName = ttyName ? estrdup(ttyName) : NULL;
+                       item->ppsName = ppsName ? estrdup(ppsName) : NULL;
+                       return 0;
+               }
+
+       /* seems we have to create a new entry... */
+       msyslog(LOG_INFO, "Add IO devices for %s: timedata='%s' ppsdata='%s'",
+               refnumtoa(addr_sock),
+               ttyName ? ttyName : "(null)",
+               ppsName ? ppsName : "(null)");
+
+       item = emalloc(sizeof(*item));
+       item->next    = InfoList;
+       item->ident   = ident;
+       item->ttyName = ttyName ? estrdup(ttyName) : NULL;
+       item->ppsName = ppsName ? estrdup(ppsName) : NULL;
+       InfoList = item;
+       return 0;
+}
+
+/* Lookup a redirection for a clock instance. Returns either the name
+ * registered for the device or NULL if no redirection is found.
+ */
+const char*
+clockdev_lookup(
+       const sockaddr_u *addr_sock,
+       int               getPPS
+       )
+{
+       const DeviceInfoT *item;
+       const int         ident = getClockIdent(addr_sock);
+
+       if (ident < 0)
+               return NULL;
+
+       for (item = InfoList;  NULL != item;  item = item->next)
+               if (ident == item->ident)
+                       return getPPS ? item->ppsName : item->ttyName;
+
+       return NULL;
+}
diff --git a/ntpd/ntp_clockdev.h b/ntpd/ntp_clockdev.h
new file mode 100644 (file)
index 0000000..8769515
--- /dev/null
@@ -0,0 +1,25 @@
+/* ntp_clockdev.h - map clock instances to devices
+ *
+ * Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project.
+ * The contents of 'html/copyright.html' apply.
+ * ---------------------------------------------------------------------
+ * The runtime support for the 'device' configuration statement.  Just a
+ * simple list to map refclock source addresses to the device(s) to use
+ * instead of the builtin names.
+ * ---------------------------------------------------------------------
+ */
+#ifndef NTP_CLOCKDEV_H
+#define NTP_CLOCKDEV_H
+
+extern void clockdev_clear(void);
+
+extern int clockdev_remove(
+       const sockaddr_u *addr_sock);
+
+extern int clockdev_update(
+       const sockaddr_u *addr_sock, const char *ttyName, const char *ppsName);
+
+extern const char *clockdev_lookup(
+       const sockaddr_u * addr_sock, int getPps);
+
+#endif /*!defined(NTP_CLOCKDEV_H)*/
index cdc391c1b95b05025a2b94aa3ae8618233e2dc13..7e13d39b842c14cf52fae5bae3fb8a4b929e14ac 100644 (file)
@@ -39,6 +39,7 @@
 #include "ntp_io.h"
 #include "ntp_unixtime.h"
 #include "ntp_refclock.h"
+#include "ntp_clockdev.h"
 #include "ntp_filegen.h"
 #include "ntp_stdlib.h"
 #include "lib_strbuf.h"
@@ -242,6 +243,7 @@ static void free_all_config_trees(void);
 static void free_config_access(config_tree *);
 static void free_config_auth(config_tree *);
 static void free_config_fudge(config_tree *);
+static void free_config_device(config_tree *);
 static void free_config_logconfig(config_tree *);
 static void free_config_monitor(config_tree *);
 static void free_config_nic_rules(config_tree *);
@@ -343,6 +345,7 @@ static void config_setvar(config_tree *);
 static void config_ttl(config_tree *);
 static void config_trap(config_tree *);
 static void config_fudge(config_tree *);
+static void config_device(config_tree *);
 static void config_peers(config_tree *);
 static void config_unpeers(config_tree *);
 static void config_nic_rules(config_tree *, int/*BOOL*/ input_from_file);
@@ -483,6 +486,7 @@ free_config_tree(
        free_config_ttl(ptree);
        free_config_trap(ptree);
        free_config_fudge(ptree);
+       free_config_device(ptree);
        free_config_vars(ptree);
        free_config_peers(ptree);
        free_config_unpeers(ptree);
@@ -906,6 +910,42 @@ dump_config_tree(
                        }
                        fprintf(df, "\n");
                }
+
+               addr_opts = HEAD_PFIFO(ptree->device);
+               for ( ; addr_opts != NULL; addr_opts = addr_opts->link) {
+                       peer_addr = peern->addr;
+                       fudge_addr = addr_opts->addr;
+
+                       s1 = peer_addr->address;
+                       s2 = fudge_addr->address;
+
+                       if (strcmp(s1, s2))
+                               continue;
+
+                       fprintf(df, "device %s", s1);
+
+                       for (atrv = HEAD_PFIFO(addr_opts->options);
+                            atrv != NULL;
+                            atrv = atrv->link) {
+
+                               switch (atrv->type) {
+#ifdef DEBUG
+                               default:
+                                       fprintf(df, "\n# dump error:\n"
+                                               "# unknown device atrv->type %d\n"
+                                               "device %s", atrv->type,
+                                               s1);
+                                       break;
+#endif
+                               case T_String:
+                                       fprintf(df, " %s %s",
+                                               keyword(atrv->attr),
+                                               atrv->value.s);
+                                       break;
+                               }
+                       }
+                       fprintf(df, "\n");
+               }
        }
 
        addr = HEAD_PFIFO(ptree->manycastserver);
@@ -3957,6 +3997,67 @@ config_fudge(
 }
 #endif /* !SIM */
 
+#ifndef SIM
+static void
+config_device(
+       config_tree *ptree
+       )
+{
+       addr_opts_node *curr_device;
+       attr_val *curr_opt;
+       sockaddr_u addr_sock;
+       address_node *addr_node;
+       char *ttyName, *ppsName;
+
+       curr_device = HEAD_PFIFO(ptree->device);
+       for (; curr_device != NULL; curr_device = curr_device->link) {
+               /* Get the reference clock address and
+                * ensure that it is sane
+                */
+               addr_node = curr_device->addr;
+               ZERO_SOCK(&addr_sock);
+               if (getnetnum(addr_node->address, &addr_sock, 1, t_REF)
+                   != 1) {
+                       msyslog(LOG_ERR,
+                               "unrecognized device reference clock address %s, line ignored",
+                               addr_node->address);
+                       continue;
+               }
+               if (!ISREFCLOCKADR(&addr_sock)) {
+                       msyslog(LOG_ERR,
+                               "inappropriate address %s for the device command, line ignored",
+                               stoa(&addr_sock));
+                       continue;
+               }
+
+               ppsName = ttyName = NULL;
+               curr_opt = HEAD_PFIFO(curr_device->options);
+               for (; curr_opt != NULL; curr_opt = curr_opt->link) {
+                       switch (curr_opt->attr) {
+
+                       case T_TimeData:
+                               ttyName = curr_opt->value.s;
+                               break;
+
+                       case T_PpsData:
+                               ppsName = curr_opt->value.s;
+                               break;
+
+                       default:
+                               msyslog(LOG_ERR,
+                                       "Unexpected device spec %s (%d) for %s",
+                                       token_name(curr_opt->attr),
+                                       curr_opt->attr, addr_node->address);
+                               exit(curr_opt->attr ? curr_opt->attr : 1);
+                       }
+               }
+# ifdef REFCLOCK
+               clockdev_update(&addr_sock, ttyName, ppsName);
+# endif
+       }
+}
+#endif /* !SIM */
+
 
 #ifdef FREE_CFG_T
 static void
@@ -3966,6 +4067,14 @@ free_config_fudge(
 {
        FREE_ADDR_OPTS_FIFO(ptree->fudge);
 }
+
+static void
+free_config_device(
+       config_tree *ptree
+       )
+{
+       FREE_ADDR_OPTS_FIFO(ptree->device);
+}
 #endif /* FREE_CFG_T */
 
 
@@ -4848,6 +4957,7 @@ config_ntpd(
 
        config_trap(ptree);     /* [bug 2923] dep. on io_open_sockets() */
        config_other_modes(ptree);
+       config_device(ptree);
        config_peers(ptree);
        config_unpeers(ptree);
        config_fudge(ptree);
index ab96b47c0d7a2c5a4c194c1eac4243ed1560d403..7b3efc2cda30411820e97f3bc9821fed375e9cec 100644 (file)
@@ -2,7 +2,7 @@
  * ntp_keyword.h
  * 
  * NOTE: edit this file with caution, it is generated by keyword-gen.c
- *      Generated 2020-02-13 08:56:28 UTC        diff_ignore_line
+ *      Generated 2022-03-27 14:17:11 UTC        diff_ignore_line
  *
  */
 #include "ntp_scanner.h"
@@ -10,7 +10,7 @@
 
 #define LOWEST_KEYWORD_ID 258
 
-const char * const keyword_text[209] = {
+const char * const keyword_text[212] = {
        /* 0       258             T_Abbrev */  "abbrev",
        /* 1       259                T_Age */  "age",
        /* 2       260                T_All */  "all",
@@ -39,197 +39,200 @@ const char * const keyword_text[209] = {
        /* 25      283                T_Ctl */  "ctl",
        /* 26      284                T_Day */  "day",
        /* 27      285            T_Default */  "default",
-       /* 28      286             T_Digest */  "digest",
-       /* 29      287            T_Disable */  "disable",
-       /* 30      288            T_Discard */  "discard",
-       /* 31      289         T_Dispersion */  "dispersion",
-       /* 32      290             T_Double */  NULL,
-       /* 33      291          T_Driftfile */  "driftfile",
-       /* 34      292               T_Drop */  "drop",
-       /* 35      293               T_Dscp */  "dscp",
-       /* 36      294           T_Ellipsis */  "...",
-       /* 37      295             T_Enable */  "enable",
-       /* 38      296                T_End */  "end",
-       /* 39      297              T_Epeer */  "epeer",
-       /* 40      298              T_False */  NULL,
-       /* 41      299               T_File */  "file",
-       /* 42      300            T_Filegen */  "filegen",
-       /* 43      301            T_Filenum */  "filenum",
-       /* 44      302              T_Flag1 */  "flag1",
-       /* 45      303              T_Flag2 */  "flag2",
-       /* 46      304              T_Flag3 */  "flag3",
-       /* 47      305              T_Flag4 */  "flag4",
-       /* 48      306              T_Flake */  "flake",
-       /* 49      307              T_Floor */  "floor",
-       /* 50      308               T_Freq */  "freq",
-       /* 51      309              T_Fudge */  "fudge",
-       /* 52      310               T_Fuzz */  "fuzz",
-       /* 53      311               T_Host */  "host",
-       /* 54      312           T_Huffpuff */  "huffpuff",
-       /* 55      313             T_Iburst */  "iburst",
-       /* 56      314              T_Ident */  "ident",
-       /* 57      315             T_Ignore */  "ignore",
-       /* 58      316         T_Ignorehash */  "ignorehash",
-       /* 59      317           T_Incalloc */  "incalloc",
-       /* 60      318             T_Incmem */  "incmem",
-       /* 61      319          T_Initalloc */  "initalloc",
-       /* 62      320            T_Initmem */  "initmem",
-       /* 63      321        T_Includefile */  "includefile",
-       /* 64      322            T_Integer */  NULL,
-       /* 65      323          T_Interface */  "interface",
-       /* 66      324           T_Intrange */  NULL,
-       /* 67      325                 T_Io */  "io",
-       /* 68      326        T_Ippeerlimit */  "ippeerlimit",
-       /* 69      327               T_Ipv4 */  "ipv4",
-       /* 70      328          T_Ipv4_flag */  "-4",
-       /* 71      329               T_Ipv6 */  "ipv6",
-       /* 72      330          T_Ipv6_flag */  "-6",
-       /* 73      331             T_Kernel */  "kernel",
-       /* 74      332                T_Key */  "key",
-       /* 75      333               T_Keys */  "keys",
-       /* 76      334            T_Keysdir */  "keysdir",
-       /* 77      335                T_Kod */  "kod",
-       /* 78      336           T_Leapfile */  "leapfile",
-       /* 79      337  T_Leapsmearinterval */  "leapsmearinterval",
-       /* 80      338            T_Limited */  "limited",
-       /* 81      339               T_Link */  "link",
-       /* 82      340             T_Listen */  "listen",
-       /* 83      341          T_Logconfig */  "logconfig",
-       /* 84      342            T_Logfile */  "logfile",
-       /* 85      343          T_Loopstats */  "loopstats",
-       /* 86      344        T_Lowpriotrap */  "lowpriotrap",
-       /* 87      345     T_Manycastclient */  "manycastclient",
-       /* 88      346     T_Manycastserver */  "manycastserver",
-       /* 89      347               T_Mask */  "mask",
-       /* 90      348             T_Maxage */  "maxage",
-       /* 91      349           T_Maxclock */  "maxclock",
-       /* 92      350           T_Maxdepth */  "maxdepth",
-       /* 93      351            T_Maxdist */  "maxdist",
-       /* 94      352             T_Maxmem */  "maxmem",
-       /* 95      353            T_Maxpoll */  "maxpoll",
-       /* 96      354          T_Mdnstries */  "mdnstries",
-       /* 97      355                T_Mem */  "mem",
-       /* 98      356            T_Memlock */  "memlock",
-       /* 99      357           T_Minclock */  "minclock",
-       /* 100     358           T_Mindepth */  "mindepth",
-       /* 101     359            T_Mindist */  "mindist",
-       /* 102     360            T_Minimum */  "minimum",
-       /* 103     361          T_Minjitter */  "minjitter",
-       /* 104     362            T_Minpoll */  "minpoll",
-       /* 105     363            T_Minsane */  "minsane",
-       /* 106     364               T_Mode */  "mode",
-       /* 107     365              T_Mode7 */  "mode7",
-       /* 108     366            T_Monitor */  "monitor",
-       /* 109     367              T_Month */  "month",
-       /* 110     368                T_Mru */  "mru",
-       /* 111     369             T_Mssntp */  "mssntp",
-       /* 112     370    T_Multicastclient */  "multicastclient",
-       /* 113     371                T_Nic */  "nic",
-       /* 114     372             T_Nolink */  "nolink",
-       /* 115     373           T_Nomodify */  "nomodify",
-       /* 116     374          T_Nomrulist */  "nomrulist",
-       /* 117     375               T_None */  "none",
-       /* 118     376        T_Nonvolatile */  "nonvolatile",
-       /* 119     377            T_Noepeer */  "noepeer",
-       /* 120     378             T_Nopeer */  "nopeer",
-       /* 121     379            T_Noquery */  "noquery",
-       /* 122     380           T_Noselect */  "noselect",
-       /* 123     381            T_Noserve */  "noserve",
-       /* 124     382             T_Notrap */  "notrap",
-       /* 125     383            T_Notrust */  "notrust",
-       /* 126     384                T_Ntp */  "ntp",
-       /* 127     385            T_Ntpport */  "ntpport",
-       /* 128     386     T_NtpSignDsocket */  "ntpsigndsocket",
-       /* 129     387             T_Orphan */  "orphan",
-       /* 130     388         T_Orphanwait */  "orphanwait",
-       /* 131     389          T_PCEdigest */  "peer_clear_digest_early",
-       /* 132     390              T_Panic */  "panic",
-       /* 133     391               T_Peer */  "peer",
-       /* 134     392          T_Peerstats */  "peerstats",
-       /* 135     393              T_Phone */  "phone",
-       /* 136     394                T_Pid */  "pid",
-       /* 137     395            T_Pidfile */  "pidfile",
-       /* 138     396               T_Poll */  "poll",
-       /* 139     397       T_PollSkewList */  "pollskewlist",
-       /* 140     398               T_Pool */  "pool",
-       /* 141     399               T_Port */  "port",
-       /* 142     400            T_Preempt */  "preempt",
-       /* 143     401             T_Prefer */  "prefer",
-       /* 144     402         T_Protostats */  "protostats",
-       /* 145     403                 T_Pw */  "pw",
-       /* 146     404           T_Randfile */  "randfile",
-       /* 147     405           T_Rawstats */  "rawstats",
-       /* 148     406              T_Refid */  "refid",
-       /* 149     407         T_Requestkey */  "requestkey",
-       /* 150     408              T_Reset */  "reset",
-       /* 151     409           T_Restrict */  "restrict",
-       /* 152     410             T_Revoke */  "revoke",
-       /* 153     411             T_Rlimit */  "rlimit",
-       /* 154     412      T_Saveconfigdir */  "saveconfigdir",
-       /* 155     413             T_Server */  "server",
-       /* 156     414     T_Serverresponse */  "serverresponse",
-       /* 157     415 T_ServerresponseFuzz */  NULL,
-       /* 158     416             T_Setvar */  "setvar",
-       /* 159     417             T_Source */  "source",
-       /* 160     418          T_Stacksize */  "stacksize",
-       /* 161     419         T_Statistics */  "statistics",
-       /* 162     420              T_Stats */  "stats",
-       /* 163     421           T_Statsdir */  "statsdir",
-       /* 164     422               T_Step */  "step",
-       /* 165     423           T_Stepback */  "stepback",
-       /* 166     424            T_Stepfwd */  "stepfwd",
-       /* 167     425            T_Stepout */  "stepout",
-       /* 168     426            T_Stratum */  "stratum",
-       /* 169     427             T_String */  NULL,
-       /* 170     428                T_Sys */  "sys",
-       /* 171     429           T_Sysstats */  "sysstats",
-       /* 172     430               T_Tick */  "tick",
-       /* 173     431              T_Time1 */  "time1",
-       /* 174     432              T_Time2 */  "time2",
-       /* 175     433              T_Timer */  "timer",
-       /* 176     434        T_Timingstats */  "timingstats",
-       /* 177     435             T_Tinker */  "tinker",
-       /* 178     436                T_Tos */  "tos",
-       /* 179     437               T_Trap */  "trap",
-       /* 180     438               T_True */  "true",
-       /* 181     439         T_Trustedkey */  "trustedkey",
-       /* 182     440                T_Ttl */  "ttl",
-       /* 183     441               T_Type */  "type",
-       /* 184     442              T_U_int */  NULL,
-       /* 185     443           T_UEcrypto */  "unpeer_crypto_early",
-       /* 186     444        T_UEcryptonak */  "unpeer_crypto_nak_early",
-       /* 187     445           T_UEdigest */  "unpeer_digest_early",
-       /* 188     446           T_Unconfig */  "unconfig",
-       /* 189     447             T_Unpeer */  "unpeer",
-       /* 190     448            T_Version */  "version",
-       /* 191     449    T_WanderThreshold */  NULL,
-       /* 192     450               T_Week */  "week",
-       /* 193     451           T_Wildcard */  "wildcard",
-       /* 194     452             T_Xleave */  "xleave",
-       /* 195     453           T_Xmtnonce */  "xmtnonce",
-       /* 196     454               T_Year */  "year",
-       /* 197     455               T_Flag */  NULL,
-       /* 198     456                T_EOC */  NULL,
-       /* 199     457           T_Simulate */  "simulate",
-       /* 200     458         T_Beep_Delay */  "beep_delay",
-       /* 201     459       T_Sim_Duration */  "simulation_duration",
-       /* 202     460      T_Server_Offset */  "server_offset",
-       /* 203     461           T_Duration */  "duration",
-       /* 204     462        T_Freq_Offset */  "freq_offset",
-       /* 205     463             T_Wander */  "wander",
-       /* 206     464             T_Jitter */  "jitter",
-       /* 207     465         T_Prop_Delay */  "prop_delay",
-       /* 208     466         T_Proc_Delay */  "proc_delay"
+       /* 28      286             T_Device */  "device",
+       /* 29      287             T_Digest */  "digest",
+       /* 30      288            T_Disable */  "disable",
+       /* 31      289            T_Discard */  "discard",
+       /* 32      290         T_Dispersion */  "dispersion",
+       /* 33      291             T_Double */  NULL,
+       /* 34      292          T_Driftfile */  "driftfile",
+       /* 35      293               T_Drop */  "drop",
+       /* 36      294               T_Dscp */  "dscp",
+       /* 37      295           T_Ellipsis */  "...",
+       /* 38      296             T_Enable */  "enable",
+       /* 39      297                T_End */  "end",
+       /* 40      298              T_Epeer */  "epeer",
+       /* 41      299              T_False */  NULL,
+       /* 42      300               T_File */  "file",
+       /* 43      301            T_Filegen */  "filegen",
+       /* 44      302            T_Filenum */  "filenum",
+       /* 45      303              T_Flag1 */  "flag1",
+       /* 46      304              T_Flag2 */  "flag2",
+       /* 47      305              T_Flag3 */  "flag3",
+       /* 48      306              T_Flag4 */  "flag4",
+       /* 49      307              T_Flake */  "flake",
+       /* 50      308              T_Floor */  "floor",
+       /* 51      309               T_Freq */  "freq",
+       /* 52      310              T_Fudge */  "fudge",
+       /* 53      311               T_Fuzz */  "fuzz",
+       /* 54      312               T_Host */  "host",
+       /* 55      313           T_Huffpuff */  "huffpuff",
+       /* 56      314             T_Iburst */  "iburst",
+       /* 57      315              T_Ident */  "ident",
+       /* 58      316             T_Ignore */  "ignore",
+       /* 59      317         T_Ignorehash */  "ignorehash",
+       /* 60      318           T_Incalloc */  "incalloc",
+       /* 61      319             T_Incmem */  "incmem",
+       /* 62      320          T_Initalloc */  "initalloc",
+       /* 63      321            T_Initmem */  "initmem",
+       /* 64      322        T_Includefile */  "includefile",
+       /* 65      323            T_Integer */  NULL,
+       /* 66      324          T_Interface */  "interface",
+       /* 67      325           T_Intrange */  NULL,
+       /* 68      326                 T_Io */  "io",
+       /* 69      327        T_Ippeerlimit */  "ippeerlimit",
+       /* 70      328               T_Ipv4 */  "ipv4",
+       /* 71      329          T_Ipv4_flag */  "-4",
+       /* 72      330               T_Ipv6 */  "ipv6",
+       /* 73      331          T_Ipv6_flag */  "-6",
+       /* 74      332             T_Kernel */  "kernel",
+       /* 75      333                T_Key */  "key",
+       /* 76      334               T_Keys */  "keys",
+       /* 77      335            T_Keysdir */  "keysdir",
+       /* 78      336                T_Kod */  "kod",
+       /* 79      337           T_Leapfile */  "leapfile",
+       /* 80      338  T_Leapsmearinterval */  "leapsmearinterval",
+       /* 81      339            T_Limited */  "limited",
+       /* 82      340               T_Link */  "link",
+       /* 83      341             T_Listen */  "listen",
+       /* 84      342          T_Logconfig */  "logconfig",
+       /* 85      343            T_Logfile */  "logfile",
+       /* 86      344          T_Loopstats */  "loopstats",
+       /* 87      345        T_Lowpriotrap */  "lowpriotrap",
+       /* 88      346     T_Manycastclient */  "manycastclient",
+       /* 89      347     T_Manycastserver */  "manycastserver",
+       /* 90      348               T_Mask */  "mask",
+       /* 91      349             T_Maxage */  "maxage",
+       /* 92      350           T_Maxclock */  "maxclock",
+       /* 93      351           T_Maxdepth */  "maxdepth",
+       /* 94      352            T_Maxdist */  "maxdist",
+       /* 95      353             T_Maxmem */  "maxmem",
+       /* 96      354            T_Maxpoll */  "maxpoll",
+       /* 97      355          T_Mdnstries */  "mdnstries",
+       /* 98      356                T_Mem */  "mem",
+       /* 99      357            T_Memlock */  "memlock",
+       /* 100     358           T_Minclock */  "minclock",
+       /* 101     359           T_Mindepth */  "mindepth",
+       /* 102     360            T_Mindist */  "mindist",
+       /* 103     361            T_Minimum */  "minimum",
+       /* 104     362          T_Minjitter */  "minjitter",
+       /* 105     363            T_Minpoll */  "minpoll",
+       /* 106     364            T_Minsane */  "minsane",
+       /* 107     365               T_Mode */  "mode",
+       /* 108     366              T_Mode7 */  "mode7",
+       /* 109     367            T_Monitor */  "monitor",
+       /* 110     368              T_Month */  "month",
+       /* 111     369                T_Mru */  "mru",
+       /* 112     370             T_Mssntp */  "mssntp",
+       /* 113     371    T_Multicastclient */  "multicastclient",
+       /* 114     372                T_Nic */  "nic",
+       /* 115     373             T_Nolink */  "nolink",
+       /* 116     374           T_Nomodify */  "nomodify",
+       /* 117     375          T_Nomrulist */  "nomrulist",
+       /* 118     376               T_None */  "none",
+       /* 119     377        T_Nonvolatile */  "nonvolatile",
+       /* 120     378            T_Noepeer */  "noepeer",
+       /* 121     379             T_Nopeer */  "nopeer",
+       /* 122     380            T_Noquery */  "noquery",
+       /* 123     381           T_Noselect */  "noselect",
+       /* 124     382            T_Noserve */  "noserve",
+       /* 125     383             T_Notrap */  "notrap",
+       /* 126     384            T_Notrust */  "notrust",
+       /* 127     385                T_Ntp */  "ntp",
+       /* 128     386            T_Ntpport */  "ntpport",
+       /* 129     387     T_NtpSignDsocket */  "ntpsigndsocket",
+       /* 130     388             T_Orphan */  "orphan",
+       /* 131     389         T_Orphanwait */  "orphanwait",
+       /* 132     390          T_PCEdigest */  "peer_clear_digest_early",
+       /* 133     391              T_Panic */  "panic",
+       /* 134     392               T_Peer */  "peer",
+       /* 135     393          T_Peerstats */  "peerstats",
+       /* 136     394              T_Phone */  "phone",
+       /* 137     395                T_Pid */  "pid",
+       /* 138     396            T_Pidfile */  "pidfile",
+       /* 139     397               T_Poll */  "poll",
+       /* 140     398       T_PollSkewList */  "pollskewlist",
+       /* 141     399               T_Pool */  "pool",
+       /* 142     400               T_Port */  "port",
+       /* 143     401            T_PpsData */  "ppsdata",
+       /* 144     402            T_Preempt */  "preempt",
+       /* 145     403             T_Prefer */  "prefer",
+       /* 146     404         T_Protostats */  "protostats",
+       /* 147     405                 T_Pw */  "pw",
+       /* 148     406           T_Randfile */  "randfile",
+       /* 149     407           T_Rawstats */  "rawstats",
+       /* 150     408              T_Refid */  "refid",
+       /* 151     409         T_Requestkey */  "requestkey",
+       /* 152     410              T_Reset */  "reset",
+       /* 153     411           T_Restrict */  "restrict",
+       /* 154     412             T_Revoke */  "revoke",
+       /* 155     413             T_Rlimit */  "rlimit",
+       /* 156     414      T_Saveconfigdir */  "saveconfigdir",
+       /* 157     415             T_Server */  "server",
+       /* 158     416     T_Serverresponse */  "serverresponse",
+       /* 159     417 T_ServerresponseFuzz */  NULL,
+       /* 160     418             T_Setvar */  "setvar",
+       /* 161     419             T_Source */  "source",
+       /* 162     420          T_Stacksize */  "stacksize",
+       /* 163     421         T_Statistics */  "statistics",
+       /* 164     422              T_Stats */  "stats",
+       /* 165     423           T_Statsdir */  "statsdir",
+       /* 166     424               T_Step */  "step",
+       /* 167     425           T_Stepback */  "stepback",
+       /* 168     426            T_Stepfwd */  "stepfwd",
+       /* 169     427            T_Stepout */  "stepout",
+       /* 170     428            T_Stratum */  "stratum",
+       /* 171     429             T_String */  NULL,
+       /* 172     430                T_Sys */  "sys",
+       /* 173     431           T_Sysstats */  "sysstats",
+       /* 174     432               T_Tick */  "tick",
+       /* 175     433              T_Time1 */  "time1",
+       /* 176     434              T_Time2 */  "time2",
+       /* 177     435           T_TimeData */  "timedata",
+       /* 178     436              T_Timer */  "timer",
+       /* 179     437        T_Timingstats */  "timingstats",
+       /* 180     438             T_Tinker */  "tinker",
+       /* 181     439                T_Tos */  "tos",
+       /* 182     440               T_Trap */  "trap",
+       /* 183     441               T_True */  "true",
+       /* 184     442         T_Trustedkey */  "trustedkey",
+       /* 185     443                T_Ttl */  "ttl",
+       /* 186     444               T_Type */  "type",
+       /* 187     445              T_U_int */  NULL,
+       /* 188     446           T_UEcrypto */  "unpeer_crypto_early",
+       /* 189     447        T_UEcryptonak */  "unpeer_crypto_nak_early",
+       /* 190     448           T_UEdigest */  "unpeer_digest_early",
+       /* 191     449           T_Unconfig */  "unconfig",
+       /* 192     450             T_Unpeer */  "unpeer",
+       /* 193     451            T_Version */  "version",
+       /* 194     452    T_WanderThreshold */  NULL,
+       /* 195     453               T_Week */  "week",
+       /* 196     454           T_Wildcard */  "wildcard",
+       /* 197     455             T_Xleave */  "xleave",
+       /* 198     456           T_Xmtnonce */  "xmtnonce",
+       /* 199     457               T_Year */  "year",
+       /* 200     458               T_Flag */  NULL,
+       /* 201     459                T_EOC */  NULL,
+       /* 202     460           T_Simulate */  "simulate",
+       /* 203     461         T_Beep_Delay */  "beep_delay",
+       /* 204     462       T_Sim_Duration */  "simulation_duration",
+       /* 205     463      T_Server_Offset */  "server_offset",
+       /* 206     464           T_Duration */  "duration",
+       /* 207     465        T_Freq_Offset */  "freq_offset",
+       /* 208     466             T_Wander */  "wander",
+       /* 209     467             T_Jitter */  "jitter",
+       /* 210     468         T_Prop_Delay */  "prop_delay",
+       /* 211     469         T_Proc_Delay */  "proc_delay"
 };
 
-#define SCANNER_INIT_S 985
+#define SCANNER_INIT_S 999
 
-const scan_state sst[988] = {
+const scan_state sst[1002] = {
 /*SS_T( ch,    f-by, match, other ),                            */
   0,                                 /*     0                   */
-  S_ST( '-',   3,      330,     0 ), /*     1                   */
+  S_ST( '-',   3,      331,     0 ), /*     1                   */
   S_ST( '.',   3,        3,     1 ), /*     2                   */
-  S_ST( '.',   3,      294,     0 ), /*     3 .                 */
+  S_ST( '.',   3,      295,     0 ), /*     3 .                 */
   S_ST( 'a',   3,       23,     2 ), /*     4                   */
   S_ST( 'b',   3,        6,     0 ), /*     5 a                 */
   S_ST( 'b',   3,        7,     0 ), /*     6 ab                */
@@ -284,7 +287,7 @@ const scan_state sst[988] = {
   S_ST( 'd',   3,       56,     0 ), /*    55 beep_             */
   S_ST( 'e',   3,       57,     0 ), /*    56 beep_d            */
   S_ST( 'l',   3,       58,     0 ), /*    57 beep_de           */
-  S_ST( 'a',   3,      458,     0 ), /*    58 beep_del          */
+  S_ST( 'a',   3,      461,     0 ), /*    58 beep_del          */
   S_ST( 'r',   3,       60,    48 ), /*    59 b                 */
   S_ST( 'o',   3,       61,     0 ), /*    60 br                */
   S_ST( 'a',   3,       62,     0 ), /*    61 bro               */
@@ -352,138 +355,138 @@ const scan_state sst[988] = {
   S_ST( 'a',   3,      124,     0 ), /*   123 cryptost          */
   S_ST( 't',   3,      282,     0 ), /*   124 cryptosta         */
   S_ST( 't',   3,      283,   117 ), /*   125 c                 */
-  S_ST( 'd',   3,      160,    78 ), /*   126                   */
+  S_ST( 'd',   3,      163,    78 ), /*   126                   */
   S_ST( 'a',   3,      284,     0 ), /*   127 d                 */
-  S_ST( 'e',   3,      129,   127 ), /*   128 d                 */
+  S_ST( 'e',   3,      133,   127 ), /*   128 d                 */
   S_ST( 'f',   3,      130,     0 ), /*   129 de                */
   S_ST( 'a',   3,      131,     0 ), /*   130 def               */
   S_ST( 'u',   3,      132,     0 ), /*   131 defa              */
   S_ST( 'l',   3,      285,     0 ), /*   132 defau             */
-  S_ST( 'i',   3,      137,   128 ), /*   133 d                 */
-  S_ST( 'g',   3,      135,     0 ), /*   134 di                */
-  S_ST( 'e',   3,      136,     0 ), /*   135 dig               */
-  S_ST( 's',   3,      286,     0 ), /*   136 dige              */
-  S_ST( 's',   3,      144,   134 ), /*   137 di                */
-  S_ST( 'a',   3,      139,     0 ), /*   138 dis               */
-  S_ST( 'b',   3,      140,     0 ), /*   139 disa              */
-  S_ST( 'l',   3,      287,     0 ), /*   140 disab             */
-  S_ST( 'c',   3,      142,   138 ), /*   141 dis               */
-  S_ST( 'a',   3,      143,     0 ), /*   142 disc              */
-  S_ST( 'r',   3,      288,     0 ), /*   143 disca             */
-  S_ST( 'p',   3,      145,   141 ), /*   144 dis               */
-  S_ST( 'e',   3,      146,     0 ), /*   145 disp              */
-  S_ST( 'r',   3,      147,     0 ), /*   146 dispe             */
-  S_ST( 's',   3,      148,     0 ), /*   147 disper            */
-  S_ST( 'i',   3,      149,     0 ), /*   148 dispers           */
-  S_ST( 'o',   3,      289,     0 ), /*   149 dispersi          */
-  S_ST( 'r',   3,      157,   133 ), /*   150 d                 */
-  S_ST( 'i',   3,      152,     0 ), /*   151 dr                */
-  S_ST( 'f',   3,      153,     0 ), /*   152 dri               */
-  S_ST( 't',   3,      154,     0 ), /*   153 drif              */
-  S_ST( 'f',   3,      155,     0 ), /*   154 drift             */
-  S_ST( 'i',   3,      156,     0 ), /*   155 driftf            */
-  S_ST( 'l',   3,      291,     0 ), /*   156 driftfi           */
-  S_ST( 'o',   3,      292,   151 ), /*   157 dr                */
-  S_ST( 's',   3,      159,   150 ), /*   158 d                 */
-  S_ST( 'c',   3,      293,     0 ), /*   159 ds                */
-  S_ST( 'u',   3,      161,   158 ), /*   160 d                 */
-  S_ST( 'r',   3,      162,     0 ), /*   161 du                */
-  S_ST( 'a',   3,      163,     0 ), /*   162 dur               */
-  S_ST( 't',   3,      164,     0 ), /*   163 dura              */
-  S_ST( 'i',   3,      165,     0 ), /*   164 durat             */
-  S_ST( 'o',   3,      461,     0 ), /*   165 durati            */
-  S_ST( 'e',   3,      171,   126 ), /*   166                   */
-  S_ST( 'n',   3,      296,     0 ), /*   167 e                 */
-  S_ST( 'a',   3,      169,     0 ), /*   168 en                */
-  S_ST( 'b',   3,      170,     0 ), /*   169 ena               */
-  S_ST( 'l',   3,      295,     0 ), /*   170 enab              */
-  S_ST( 'p',   3,      172,   167 ), /*   171 e                 */
-  S_ST( 'e',   3,      173,     0 ), /*   172 ep                */
-  S_ST( 'e',   3,      297,     0 ), /*   173 epe               */
-  S_ST( 'f',   3,      195,   166 ), /*   174                   */
-  S_ST( 'i',   3,      176,     0 ), /*   175 f                 */
-  S_ST( 'l',   3,      299,     0 ), /*   176 fi                */
-  S_ST( 'g',   3,      178,     0 ), /*   177 file              */
-  S_ST( 'e',   3,      300,     0 ), /*   178 fileg             */
-  S_ST( 'n',   3,      180,   177 ), /*   179 file              */
-  S_ST( 'u',   3,      301,     0 ), /*   180 filen             */
-  S_ST( 'l',   3,      185,   175 ), /*   181 f                 */
-  S_ST( 'a',   3,      184,     0 ), /*   182 fl                */
-  S_ST( 'g',   3,      305,     0 ), /*   183 fla               */
-  S_ST( 'k',   3,      306,   183 ), /*   184 fla               */
-  S_ST( 'o',   3,      186,   182 ), /*   185 fl                */
-  S_ST( 'o',   3,      307,     0 ), /*   186 flo               */
-  S_ST( 'r',   3,      188,   181 ), /*   187 f                 */
-  S_ST( 'e',   3,      308,     0 ), /*   188 fr                */
-  S_ST( '_',   3,      190,     0 ), /*   189 freq              */
-  S_ST( 'o',   3,      191,     0 ), /*   190 freq_             */
-  S_ST( 'f',   3,      192,     0 ), /*   191 freq_o            */
-  S_ST( 'f',   3,      193,     0 ), /*   192 freq_of           */
-  S_ST( 's',   3,      194,     0 ), /*   193 freq_off          */
-  S_ST( 'e',   3,      462,     0 ), /*   194 freq_offs         */
-  S_ST( 'u',   3,      198,   187 ), /*   195 f                 */
-  S_ST( 'd',   3,      197,     0 ), /*   196 fu                */
-  S_ST( 'g',   3,      309,     0 ), /*   197 fud               */
-  S_ST( 'z',   3,      310,   196 ), /*   198 fu                */
-  S_ST( 'h',   3,      202,   174 ), /*   199                   */
-  S_ST( 'o',   3,      201,     0 ), /*   200 h                 */
-  S_ST( 's',   3,      311,     0 ), /*   201 ho                */
-  S_ST( 'u',   3,      203,   200 ), /*   202 h                 */
-  S_ST( 'f',   3,      204,     0 ), /*   203 hu                */
-  S_ST( 'f',   3,      205,     0 ), /*   204 huf               */
-  S_ST( 'p',   3,      206,     0 ), /*   205 huff              */
-  S_ST( 'u',   3,      207,     0 ), /*   206 huffp             */
-  S_ST( 'f',   3,      312,     0 ), /*   207 huffpu            */
-  S_ST( 'i',   3,      252,   199 ), /*   208                   */
-  S_ST( 'b',   3,      210,     0 ), /*   209 i                 */
-  S_ST( 'u',   3,      211,     0 ), /*   210 ib                */
-  S_ST( 'r',   3,      212,     0 ), /*   211 ibu               */
-  S_ST( 's',   3,      313,     0 ), /*   212 ibur              */
-  S_ST( 'd',   3,      214,   209 ), /*   213 i                 */
-  S_ST( 'e',   3,      215,     0 ), /*   214 id                */
-  S_ST( 'n',   3,      314,     0 ), /*   215 ide               */
-  S_ST( 'g',   3,      217,   213 ), /*   216 i                 */
-  S_ST( 'n',   3,      218,     0 ), /*   217 ig                */
-  S_ST( 'o',   3,      219,     0 ), /*   218 ign               */
-  S_ST( 'r',   3,      315,     0 ), /*   219 igno              */
-  S_ST( 'h',   3,      221,     0 ), /*   220 ignore            */
-  S_ST( 'a',   3,      222,     0 ), /*   221 ignoreh           */
-  S_ST( 's',   3,      316,     0 ), /*   222 ignoreha          */
-  S_ST( 'n',   3,      246,   216 ), /*   223 i                 */
-  S_ST( 'c',   3,      236,     0 ), /*   224 in                */
-  S_ST( 'a',   3,      226,     0 ), /*   225 inc               */
-  S_ST( 'l',   3,      227,     0 ), /*   226 inca              */
-  S_ST( 'l',   3,      228,     0 ), /*   227 incal             */
-  S_ST( 'o',   3,      317,     0 ), /*   228 incall            */
-  S_ST( 'l',   3,      230,   225 ), /*   229 inc               */
-  S_ST( 'u',   3,      231,     0 ), /*   230 incl              */
-  S_ST( 'd',   3,      232,     0 ), /*   231 inclu             */
-  S_ST( 'e',   3,      233,     0 ), /*   232 includ            */
-  S_ST( 'f',   3,      234,     0 ), /*   233 include           */
-  S_ST( 'i',   3,      235,     0 ), /*   234 includef          */
-  S_ST( 'l',   3,      321,     0 ), /*   235 includefi         */
-  S_ST( 'm',   3,      237,   229 ), /*   236 inc               */
-  S_ST( 'e',   3,      318,     0 ), /*   237 incm              */
-  S_ST( 'i',   3,      239,   224 ), /*   238 in                */
-  S_ST( 't',   3,      244,     0 ), /*   239 ini               */
-  S_ST( 'a',   3,      241,     0 ), /*   240 init              */
-  S_ST( 'l',   3,      242,     0 ), /*   241 inita             */
-  S_ST( 'l',   3,      243,     0 ), /*   242 inital            */
-  S_ST( 'o',   3,      319,     0 ), /*   243 initall           */
-  S_ST( 'm',   3,      245,   240 ), /*   244 init              */
-  S_ST( 'e',   3,      320,     0 ), /*   245 initm             */
-  S_ST( 't',   3,      247,   238 ), /*   246 in                */
-  S_ST( 'e',   3,      248,     0 ), /*   247 int               */
-  S_ST( 'r',   3,      249,     0 ), /*   248 inte              */
-  S_ST( 'f',   3,      250,     0 ), /*   249 inter             */
-  S_ST( 'a',   3,      251,     0 ), /*   250 interf            */
-  S_ST( 'c',   3,      323,     0 ), /*   251 interfa           */
-  S_ST( 'p',   3,      324,   325 ), /*   252 i                 */
-  S_ST( 'p',   3,      254,     0 ), /*   253 ip                */
-  S_ST( 'e',   3,      255,     0 ), /*   254 ipp               */
-  S_ST( 'e',   3,      256,     0 ), /*   255 ippe              */
-  S_ST( 'r',   3,      257,     0 ), /*   256 ippee             */
-  S_ST( 'l',   3,      290,     0 ), /*   257 ippeer            */
+  S_ST( 'v',   3,      134,   129 ), /*   133 de                */
+  S_ST( 'i',   3,      135,     0 ), /*   134 dev               */
+  S_ST( 'c',   3,      286,     0 ), /*   135 devi              */
+  S_ST( 'i',   3,      140,   128 ), /*   136 d                 */
+  S_ST( 'g',   3,      138,     0 ), /*   137 di                */
+  S_ST( 'e',   3,      139,     0 ), /*   138 dig               */
+  S_ST( 's',   3,      287,     0 ), /*   139 dige              */
+  S_ST( 's',   3,      147,   137 ), /*   140 di                */
+  S_ST( 'a',   3,      142,     0 ), /*   141 dis               */
+  S_ST( 'b',   3,      143,     0 ), /*   142 disa              */
+  S_ST( 'l',   3,      288,     0 ), /*   143 disab             */
+  S_ST( 'c',   3,      145,   141 ), /*   144 dis               */
+  S_ST( 'a',   3,      146,     0 ), /*   145 disc              */
+  S_ST( 'r',   3,      289,     0 ), /*   146 disca             */
+  S_ST( 'p',   3,      148,   144 ), /*   147 dis               */
+  S_ST( 'e',   3,      149,     0 ), /*   148 disp              */
+  S_ST( 'r',   3,      150,     0 ), /*   149 dispe             */
+  S_ST( 's',   3,      151,     0 ), /*   150 disper            */
+  S_ST( 'i',   3,      152,     0 ), /*   151 dispers           */
+  S_ST( 'o',   3,      290,     0 ), /*   152 dispersi          */
+  S_ST( 'r',   3,      160,   136 ), /*   153 d                 */
+  S_ST( 'i',   3,      155,     0 ), /*   154 dr                */
+  S_ST( 'f',   3,      156,     0 ), /*   155 dri               */
+  S_ST( 't',   3,      157,     0 ), /*   156 drif              */
+  S_ST( 'f',   3,      158,     0 ), /*   157 drift             */
+  S_ST( 'i',   3,      159,     0 ), /*   158 driftf            */
+  S_ST( 'l',   3,      292,     0 ), /*   159 driftfi           */
+  S_ST( 'o',   3,      293,   154 ), /*   160 dr                */
+  S_ST( 's',   3,      162,   153 ), /*   161 d                 */
+  S_ST( 'c',   3,      294,     0 ), /*   162 ds                */
+  S_ST( 'u',   3,      164,   161 ), /*   163 d                 */
+  S_ST( 'r',   3,      165,     0 ), /*   164 du                */
+  S_ST( 'a',   3,      166,     0 ), /*   165 dur               */
+  S_ST( 't',   3,      167,     0 ), /*   166 dura              */
+  S_ST( 'i',   3,      168,     0 ), /*   167 durat             */
+  S_ST( 'o',   3,      464,     0 ), /*   168 durati            */
+  S_ST( 'e',   3,      174,   126 ), /*   169                   */
+  S_ST( 'n',   3,      297,     0 ), /*   170 e                 */
+  S_ST( 'a',   3,      172,     0 ), /*   171 en                */
+  S_ST( 'b',   3,      173,     0 ), /*   172 ena               */
+  S_ST( 'l',   3,      296,     0 ), /*   173 enab              */
+  S_ST( 'p',   3,      175,   170 ), /*   174 e                 */
+  S_ST( 'e',   3,      176,     0 ), /*   175 ep                */
+  S_ST( 'e',   3,      298,     0 ), /*   176 epe               */
+  S_ST( 'f',   3,      198,   169 ), /*   177                   */
+  S_ST( 'i',   3,      179,     0 ), /*   178 f                 */
+  S_ST( 'l',   3,      300,     0 ), /*   179 fi                */
+  S_ST( 'g',   3,      181,     0 ), /*   180 file              */
+  S_ST( 'e',   3,      301,     0 ), /*   181 fileg             */
+  S_ST( 'n',   3,      183,   180 ), /*   182 file              */
+  S_ST( 'u',   3,      302,     0 ), /*   183 filen             */
+  S_ST( 'l',   3,      188,   178 ), /*   184 f                 */
+  S_ST( 'a',   3,      187,     0 ), /*   185 fl                */
+  S_ST( 'g',   3,      306,     0 ), /*   186 fla               */
+  S_ST( 'k',   3,      307,   186 ), /*   187 fla               */
+  S_ST( 'o',   3,      189,   185 ), /*   188 fl                */
+  S_ST( 'o',   3,      308,     0 ), /*   189 flo               */
+  S_ST( 'r',   3,      191,   184 ), /*   190 f                 */
+  S_ST( 'e',   3,      309,     0 ), /*   191 fr                */
+  S_ST( '_',   3,      193,     0 ), /*   192 freq              */
+  S_ST( 'o',   3,      194,     0 ), /*   193 freq_             */
+  S_ST( 'f',   3,      195,     0 ), /*   194 freq_o            */
+  S_ST( 'f',   3,      196,     0 ), /*   195 freq_of           */
+  S_ST( 's',   3,      197,     0 ), /*   196 freq_off          */
+  S_ST( 'e',   3,      465,     0 ), /*   197 freq_offs         */
+  S_ST( 'u',   3,      201,   190 ), /*   198 f                 */
+  S_ST( 'd',   3,      200,     0 ), /*   199 fu                */
+  S_ST( 'g',   3,      310,     0 ), /*   200 fud               */
+  S_ST( 'z',   3,      311,   199 ), /*   201 fu                */
+  S_ST( 'h',   3,      205,   177 ), /*   202                   */
+  S_ST( 'o',   3,      204,     0 ), /*   203 h                 */
+  S_ST( 's',   3,      312,     0 ), /*   204 ho                */
+  S_ST( 'u',   3,      206,   203 ), /*   205 h                 */
+  S_ST( 'f',   3,      207,     0 ), /*   206 hu                */
+  S_ST( 'f',   3,      208,     0 ), /*   207 huf               */
+  S_ST( 'p',   3,      209,     0 ), /*   208 huff              */
+  S_ST( 'u',   3,      210,     0 ), /*   209 huffp             */
+  S_ST( 'f',   3,      313,     0 ), /*   210 huffpu            */
+  S_ST( 'i',   3,      255,   202 ), /*   211                   */
+  S_ST( 'b',   3,      213,     0 ), /*   212 i                 */
+  S_ST( 'u',   3,      214,     0 ), /*   213 ib                */
+  S_ST( 'r',   3,      215,     0 ), /*   214 ibu               */
+  S_ST( 's',   3,      314,     0 ), /*   215 ibur              */
+  S_ST( 'd',   3,      217,   212 ), /*   216 i                 */
+  S_ST( 'e',   3,      218,     0 ), /*   217 id                */
+  S_ST( 'n',   3,      315,     0 ), /*   218 ide               */
+  S_ST( 'g',   3,      220,   216 ), /*   219 i                 */
+  S_ST( 'n',   3,      221,     0 ), /*   220 ig                */
+  S_ST( 'o',   3,      222,     0 ), /*   221 ign               */
+  S_ST( 'r',   3,      316,     0 ), /*   222 igno              */
+  S_ST( 'h',   3,      224,     0 ), /*   223 ignore            */
+  S_ST( 'a',   3,      225,     0 ), /*   224 ignoreh           */
+  S_ST( 's',   3,      317,     0 ), /*   225 ignoreha          */
+  S_ST( 'n',   3,      249,   219 ), /*   226 i                 */
+  S_ST( 'c',   3,      239,     0 ), /*   227 in                */
+  S_ST( 'a',   3,      229,     0 ), /*   228 inc               */
+  S_ST( 'l',   3,      230,     0 ), /*   229 inca              */
+  S_ST( 'l',   3,      231,     0 ), /*   230 incal             */
+  S_ST( 'o',   3,      318,     0 ), /*   231 incall            */
+  S_ST( 'l',   3,      233,   228 ), /*   232 inc               */
+  S_ST( 'u',   3,      234,     0 ), /*   233 incl              */
+  S_ST( 'd',   3,      235,     0 ), /*   234 inclu             */
+  S_ST( 'e',   3,      236,     0 ), /*   235 includ            */
+  S_ST( 'f',   3,      237,     0 ), /*   236 include           */
+  S_ST( 'i',   3,      238,     0 ), /*   237 includef          */
+  S_ST( 'l',   3,      322,     0 ), /*   238 includefi         */
+  S_ST( 'm',   3,      240,   232 ), /*   239 inc               */
+  S_ST( 'e',   3,      319,     0 ), /*   240 incm              */
+  S_ST( 'i',   3,      242,   227 ), /*   241 in                */
+  S_ST( 't',   3,      247,     0 ), /*   242 ini               */
+  S_ST( 'a',   3,      244,     0 ), /*   243 init              */
+  S_ST( 'l',   3,      245,     0 ), /*   244 inita             */
+  S_ST( 'l',   3,      246,     0 ), /*   245 inital            */
+  S_ST( 'o',   3,      320,     0 ), /*   246 initall           */
+  S_ST( 'm',   3,      248,   243 ), /*   247 init              */
+  S_ST( 'e',   3,      321,     0 ), /*   248 initm             */
+  S_ST( 't',   3,      250,   241 ), /*   249 in                */
+  S_ST( 'e',   3,      251,     0 ), /*   250 int               */
+  S_ST( 'r',   3,      252,     0 ), /*   251 inte              */
+  S_ST( 'f',   3,      253,     0 ), /*   252 inter             */
+  S_ST( 'a',   3,      254,     0 ), /*   253 interf            */
+  S_ST( 'c',   3,      324,     0 ), /*   254 interfa           */
+  S_ST( 'p',   3,      445,   326 ), /*   255 i                 */
+  S_ST( 'p',   3,      257,     0 ), /*   256 ip                */
+  S_ST( 'e',   3,      291,     0 ), /*   257 ipp               */
   S_ST( 'v',   1,        0,     0 ), /*   258 T_Abbrev          */
   S_ST( 'e',   0,        0,     0 ), /*   259 T_Age             */
   S_ST( 'l',   0,       12,     0 ), /*   260 T_All             */
@@ -512,707 +515,721 @@ const scan_state sst[988] = {
   S_ST( 'l',   0,        0,     0 ), /*   283 T_Ctl             */
   S_ST( 'y',   0,        0,     0 ), /*   284 T_Day             */
   S_ST( 't',   0,        0,     0 ), /*   285 T_Default         */
-  S_ST( 't',   1,        0,     0 ), /*   286 T_Digest          */
-  S_ST( 'e',   0,        0,     0 ), /*   287 T_Disable         */
-  S_ST( 'd',   0,        0,     0 ), /*   288 T_Discard         */
-  S_ST( 'n',   0,        0,     0 ), /*   289 T_Dispersion      */
-  S_ST( 'i',   3,      298,     0 ), /*   290 ippeerl           */
-  S_ST( 'e',   1,        0,     0 ), /*   291 T_Driftfile       */
-  S_ST( 'p',   0,        0,     0 ), /*   292 T_Drop            */
-  S_ST( 'p',   0,        0,     0 ), /*   293 T_Dscp            */
-  S_ST( '.',   0,        0,     0 ), /*   294 T_Ellipsis        */
-  S_ST( 'e',   0,        0,     0 ), /*   295 T_Enable          */
-  S_ST( 'd',   0,        0,   168 ), /*   296 T_End             */
-  S_ST( 'r',   0,        0,     0 ), /*   297 T_Epeer           */
-  S_ST( 'm',   3,      322,     0 ), /*   298 ippeerli          */
-  S_ST( 'e',   1,      179,     0 ), /*   299 T_File            */
-  S_ST( 'n',   0,        0,     0 ), /*   300 T_Filegen         */
-  S_ST( 'm',   0,        0,     0 ), /*   301 T_Filenum         */
-  S_ST( '1',   0,        0,     0 ), /*   302 T_Flag1           */
-  S_ST( '2',   0,        0,   302 ), /*   303 T_Flag2           */
-  S_ST( '3',   0,        0,   303 ), /*   304 T_Flag3           */
-  S_ST( '4',   0,        0,   304 ), /*   305 T_Flag4           */
-  S_ST( 'e',   0,        0,     0 ), /*   306 T_Flake           */
-  S_ST( 'r',   0,        0,     0 ), /*   307 T_Floor           */
-  S_ST( 'q',   0,      189,     0 ), /*   308 T_Freq            */
-  S_ST( 'e',   1,        0,     0 ), /*   309 T_Fudge           */
-  S_ST( 'z',   0,        0,     0 ), /*   310 T_Fuzz            */
-  S_ST( 't',   1,        0,     0 ), /*   311 T_Host            */
-  S_ST( 'f',   0,        0,     0 ), /*   312 T_Huffpuff        */
-  S_ST( 't',   0,        0,     0 ), /*   313 T_Iburst          */
-  S_ST( 't',   1,        0,     0 ), /*   314 T_Ident           */
-  S_ST( 'e',   0,      220,     0 ), /*   315 T_Ignore          */
-  S_ST( 'h',   0,        0,     0 ), /*   316 T_Ignorehash      */
-  S_ST( 'c',   0,        0,     0 ), /*   317 T_Incalloc        */
-  S_ST( 'm',   0,        0,     0 ), /*   318 T_Incmem          */
-  S_ST( 'c',   0,        0,     0 ), /*   319 T_Initalloc       */
-  S_ST( 'm',   0,        0,     0 ), /*   320 T_Initmem         */
-  S_ST( 'e',   1,        0,     0 ), /*   321 T_Includefile     */
-  S_ST( 'i',   3,      326,     0 ), /*   322 ippeerlim         */
-  S_ST( 'e',   0,        0,     0 ), /*   323 T_Interface       */
-  S_ST( 'v',   3,      329,   253 ), /*   324 ip                */
-  S_ST( 'o',   0,        0,   223 ), /*   325 T_Io              */
-  S_ST( 't',   0,        0,     0 ), /*   326 T_Ippeerlimit     */
-  S_ST( '4',   0,        0,     0 ), /*   327 T_Ipv4            */
-  S_ST( '4',   0,        0,     0 ), /*   328 T_Ipv4_flag       */
-  S_ST( '6',   0,        0,   327 ), /*   329 T_Ipv6            */
-  S_ST( '6',   0,        0,   328 ), /*   330 T_Ipv6_flag       */
-  S_ST( 'l',   0,        0,     0 ), /*   331 T_Kernel          */
-  S_ST( 'y',   0,      333,   468 ), /*   332 T_Key             */
-  S_ST( 's',   1,      471,     0 ), /*   333 T_Keys            */
-  S_ST( 'r',   1,        0,     0 ), /*   334 T_Keysdir         */
-  S_ST( 'd',   0,        0,     0 ), /*   335 T_Kod             */
-  S_ST( 'e',   1,        0,     0 ), /*   336 T_Leapfile        */
-  S_ST( 'l',   0,        0,     0 ), /*   337 T_Leapsmearinterval */
-  S_ST( 'd',   0,        0,     0 ), /*   338 T_Limited         */
-  S_ST( 'k',   0,        0,     0 ), /*   339 T_Link            */
-  S_ST( 'n',   0,        0,     0 ), /*   340 T_Listen          */
-  S_ST( 'g',   2,        0,     0 ), /*   341 T_Logconfig       */
-  S_ST( 'e',   1,        0,     0 ), /*   342 T_Logfile         */
-  S_ST( 's',   0,        0,     0 ), /*   343 T_Loopstats       */
-  S_ST( 'p',   0,        0,     0 ), /*   344 T_Lowpriotrap     */
-  S_ST( 't',   1,        0,     0 ), /*   345 T_Manycastclient  */
-  S_ST( 'r',   2,        0,     0 ), /*   346 T_Manycastserver  */
-  S_ST( 'k',   0,        0,     0 ), /*   347 T_Mask            */
-  S_ST( 'e',   0,        0,     0 ), /*   348 T_Maxage          */
-  S_ST( 'k',   0,        0,     0 ), /*   349 T_Maxclock        */
-  S_ST( 'h',   0,        0,     0 ), /*   350 T_Maxdepth        */
-  S_ST( 't',   0,        0,     0 ), /*   351 T_Maxdist         */
-  S_ST( 'm',   0,        0,     0 ), /*   352 T_Maxmem          */
-  S_ST( 'l',   0,        0,     0 ), /*   353 T_Maxpoll         */
-  S_ST( 's',   0,        0,     0 ), /*   354 T_Mdnstries       */
-  S_ST( 'm',   0,      571,     0 ), /*   355 T_Mem             */
-  S_ST( 'k',   0,        0,     0 ), /*   356 T_Memlock         */
-  S_ST( 'k',   0,        0,     0 ), /*   357 T_Minclock        */
-  S_ST( 'h',   0,        0,     0 ), /*   358 T_Mindepth        */
-  S_ST( 't',   0,        0,     0 ), /*   359 T_Mindist         */
-  S_ST( 'm',   0,        0,     0 ), /*   360 T_Minimum         */
-  S_ST( 'r',   0,        0,     0 ), /*   361 T_Minjitter       */
-  S_ST( 'l',   0,        0,     0 ), /*   362 T_Minpoll         */
-  S_ST( 'e',   0,        0,     0 ), /*   363 T_Minsane         */
-  S_ST( 'e',   0,      365,     0 ), /*   364 T_Mode            */
-  S_ST( '7',   0,        0,     0 ), /*   365 T_Mode7           */
-  S_ST( 'r',   0,        0,     0 ), /*   366 T_Monitor         */
-  S_ST( 'h',   0,        0,     0 ), /*   367 T_Month           */
-  S_ST( 'u',   0,        0,     0 ), /*   368 T_Mru             */
-  S_ST( 'p',   0,        0,     0 ), /*   369 T_Mssntp          */
-  S_ST( 't',   2,        0,     0 ), /*   370 T_Multicastclient */
-  S_ST( 'c',   0,        0,     0 ), /*   371 T_Nic             */
-  S_ST( 'k',   0,        0,     0 ), /*   372 T_Nolink          */
-  S_ST( 'y',   0,        0,     0 ), /*   373 T_Nomodify        */
-  S_ST( 't',   0,        0,     0 ), /*   374 T_Nomrulist       */
-  S_ST( 'e',   0,        0,     0 ), /*   375 T_None            */
-  S_ST( 'e',   0,        0,     0 ), /*   376 T_Nonvolatile     */
-  S_ST( 'r',   0,        0,     0 ), /*   377 T_Noepeer         */
-  S_ST( 'r',   0,        0,     0 ), /*   378 T_Nopeer          */
-  S_ST( 'y',   0,        0,     0 ), /*   379 T_Noquery         */
-  S_ST( 't',   0,        0,     0 ), /*   380 T_Noselect        */
-  S_ST( 'e',   0,        0,     0 ), /*   381 T_Noserve         */
-  S_ST( 'p',   0,        0,     0 ), /*   382 T_Notrap          */
-  S_ST( 't',   0,        0,     0 ), /*   383 T_Notrust         */
-  S_ST( 'p',   0,      676,     0 ), /*   384 T_Ntp             */
-  S_ST( 't',   0,        0,     0 ), /*   385 T_Ntpport         */
-  S_ST( 't',   1,        0,     0 ), /*   386 T_NtpSignDsocket  */
-  S_ST( 'n',   0,      691,     0 ), /*   387 T_Orphan          */
-  S_ST( 't',   0,        0,     0 ), /*   388 T_Orphanwait      */
-  S_ST( 'y',   0,        0,     0 ), /*   389 T_PCEdigest       */
-  S_ST( 'c',   0,        0,     0 ), /*   390 T_Panic           */
-  S_ST( 'r',   1,      718,     0 ), /*   391 T_Peer            */
-  S_ST( 's',   0,        0,     0 ), /*   392 T_Peerstats       */
-  S_ST( 'e',   2,        0,     0 ), /*   393 T_Phone           */
-  S_ST( 'd',   0,      726,     0 ), /*   394 T_Pid             */
-  S_ST( 'e',   1,        0,     0 ), /*   395 T_Pidfile         */
-  S_ST( 'l',   0,      731,     0 ), /*   396 T_Poll            */
-  S_ST( 't',   0,        0,     0 ), /*   397 T_PollSkewList    */
-  S_ST( 'l',   1,        0,     0 ), /*   398 T_Pool            */
-  S_ST( 't',   0,        0,     0 ), /*   399 T_Port            */
-  S_ST( 't',   0,        0,     0 ), /*   400 T_Preempt         */
-  S_ST( 'r',   0,        0,     0 ), /*   401 T_Prefer          */
-  S_ST( 's',   0,        0,     0 ), /*   402 T_Protostats      */
-  S_ST( 'w',   1,        0,   740 ), /*   403 T_Pw              */
-  S_ST( 'e',   1,        0,     0 ), /*   404 T_Randfile        */
-  S_ST( 's',   0,        0,     0 ), /*   405 T_Rawstats        */
-  S_ST( 'd',   1,        0,     0 ), /*   406 T_Refid           */
-  S_ST( 'y',   0,        0,     0 ), /*   407 T_Requestkey      */
-  S_ST( 't',   0,        0,     0 ), /*   408 T_Reset           */
-  S_ST( 't',   0,        0,     0 ), /*   409 T_Restrict        */
-  S_ST( 'e',   0,        0,     0 ), /*   410 T_Revoke          */
-  S_ST( 't',   0,        0,     0 ), /*   411 T_Rlimit          */
-  S_ST( 'r',   1,        0,     0 ), /*   412 T_Saveconfigdir   */
-  S_ST( 'r',   1,      823,     0 ), /*   413 T_Server          */
-  S_ST( 'e',   0,        0,     0 ), /*   414 T_Serverresponse  */
-  S_ST( 'j',   3,      427,   208 ), /*   415                   */
-  S_ST( 'r',   1,        0,     0 ), /*   416 T_Setvar          */
-  S_ST( 'e',   0,        0,     0 ), /*   417 T_Source          */
-  S_ST( 'e',   0,        0,     0 ), /*   418 T_Stacksize       */
-  S_ST( 's',   0,        0,     0 ), /*   419 T_Statistics      */
-  S_ST( 's',   0,      867,   862 ), /*   420 T_Stats           */
-  S_ST( 'r',   1,        0,     0 ), /*   421 T_Statsdir        */
-  S_ST( 'p',   0,      875,     0 ), /*   422 T_Step            */
-  S_ST( 'k',   0,        0,     0 ), /*   423 T_Stepback        */
-  S_ST( 'd',   0,        0,     0 ), /*   424 T_Stepfwd         */
-  S_ST( 't',   0,        0,     0 ), /*   425 T_Stepout         */
-  S_ST( 'm',   0,        0,     0 ), /*   426 T_Stratum         */
-  S_ST( 'i',   3,      442,     0 ), /*   427 j                 */
-  S_ST( 's',   0,      882,     0 ), /*   428 T_Sys             */
-  S_ST( 's',   0,        0,     0 ), /*   429 T_Sysstats        */
-  S_ST( 'k',   0,        0,     0 ), /*   430 T_Tick            */
-  S_ST( '1',   0,        0,     0 ), /*   431 T_Time1           */
-  S_ST( '2',   0,        0,   431 ), /*   432 T_Time2           */
-  S_ST( 'r',   0,        0,   432 ), /*   433 T_Timer           */
-  S_ST( 's',   0,        0,     0 ), /*   434 T_Timingstats     */
-  S_ST( 'r',   0,        0,     0 ), /*   435 T_Tinker          */
-  S_ST( 's',   0,        0,     0 ), /*   436 T_Tos             */
-  S_ST( 'p',   1,        0,     0 ), /*   437 T_Trap            */
-  S_ST( 'e',   0,        0,     0 ), /*   438 T_True            */
-  S_ST( 'y',   0,        0,     0 ), /*   439 T_Trustedkey      */
-  S_ST( 'l',   0,        0,     0 ), /*   440 T_Ttl             */
-  S_ST( 'e',   0,        0,     0 ), /*   441 T_Type            */
-  S_ST( 't',   3,      449,     0 ), /*   442 ji                */
-  S_ST( 'y',   0,        0,     0 ), /*   443 T_UEcrypto        */
-  S_ST( 'y',   0,        0,     0 ), /*   444 T_UEcryptonak     */
-  S_ST( 'y',   0,        0,     0 ), /*   445 T_UEdigest        */
-  S_ST( 'g',   1,        0,     0 ), /*   446 T_Unconfig        */
-  S_ST( 'r',   1,      924,     0 ), /*   447 T_Unpeer          */
-  S_ST( 'n',   0,        0,     0 ), /*   448 T_Version         */
-  S_ST( 't',   3,      455,     0 ), /*   449 jit               */
-  S_ST( 'k',   0,        0,     0 ), /*   450 T_Week            */
-  S_ST( 'd',   0,        0,     0 ), /*   451 T_Wildcard        */
-  S_ST( 'e',   0,        0,     0 ), /*   452 T_Xleave          */
-  S_ST( 'e',   0,        0,     0 ), /*   453 T_Xmtnonce        */
-  S_ST( 'r',   0,        0,     0 ), /*   454 T_Year            */
-  S_ST( 'e',   3,      464,     0 ), /*   455 jitt              */
-  S_ST( 'k',   3,      473,   415 ), /*   456                   */
-  S_ST( 'e',   0,        0,     0 ), /*   457 T_Simulate        */
-  S_ST( 'y',   0,        0,     0 ), /*   458 T_Beep_Delay      */
-  S_ST( 'n',   0,        0,     0 ), /*   459 T_Sim_Duration    */
-  S_ST( 't',   0,        0,     0 ), /*   460 T_Server_Offset   */
-  S_ST( 'n',   0,        0,     0 ), /*   461 T_Duration        */
-  S_ST( 't',   0,        0,     0 ), /*   462 T_Freq_Offset     */
-  S_ST( 'r',   0,        0,     0 ), /*   463 T_Wander          */
-  S_ST( 'r',   0,        0,     0 ), /*   464 T_Jitter          */
-  S_ST( 'y',   0,        0,     0 ), /*   465 T_Prop_Delay      */
-  S_ST( 'y',   0,        0,     0 ), /*   466 T_Proc_Delay      */
-  S_ST( 'e',   3,      332,     0 ), /*   467 k                 */
-  S_ST( 'r',   3,      469,     0 ), /*   468 ke                */
-  S_ST( 'n',   3,      470,     0 ), /*   469 ker               */
-  S_ST( 'e',   3,      331,     0 ), /*   470 kern              */
-  S_ST( 'd',   3,      472,     0 ), /*   471 keys              */
-  S_ST( 'i',   3,      334,     0 ), /*   472 keysd             */
-  S_ST( 'o',   3,      335,   467 ), /*   473 k                 */
-  S_ST( 'l',   3,      502,   456 ), /*   474                   */
-  S_ST( 'e',   3,      476,     0 ), /*   475 l                 */
-  S_ST( 'a',   3,      477,     0 ), /*   476 le                */
-  S_ST( 'p',   3,      481,     0 ), /*   477 lea               */
-  S_ST( 'f',   3,      479,     0 ), /*   478 leap              */
-  S_ST( 'i',   3,      480,     0 ), /*   479 leapf             */
-  S_ST( 'l',   3,      336,     0 ), /*   480 leapfi            */
-  S_ST( 's',   3,      482,   478 ), /*   481 leap              */
-  S_ST( 'm',   3,      483,     0 ), /*   482 leaps             */
-  S_ST( 'e',   3,      484,     0 ), /*   483 leapsm            */
-  S_ST( 'a',   3,      485,     0 ), /*   484 leapsme           */
-  S_ST( 'r',   3,      486,     0 ), /*   485 leapsmea          */
-  S_ST( 'i',   3,      487,     0 ), /*   486 leapsmear         */
-  S_ST( 'n',   3,      488,     0 ), /*   487 leapsmeari        */
-  S_ST( 't',   3,      489,     0 ), /*   488 leapsmearin       */
-  S_ST( 'e',   3,      490,     0 ), /*   489 leapsmearint      */
-  S_ST( 'r',   3,      491,     0 ), /*   490 leapsmearinte     */
-  S_ST( 'v',   3,      492,     0 ), /*   491 leapsmearinter    */
-  S_ST( 'a',   3,      337,     0 ), /*   492 leapsmearinterv   */
-  S_ST( 'i',   3,      499,   475 ), /*   493 l                 */
-  S_ST( 'm',   3,      495,     0 ), /*   494 li                */
-  S_ST( 'i',   3,      496,     0 ), /*   495 lim               */
-  S_ST( 't',   3,      497,     0 ), /*   496 limi              */
-  S_ST( 'e',   3,      338,     0 ), /*   497 limit             */
-  S_ST( 'n',   3,      339,   494 ), /*   498 li                */
-  S_ST( 's',   3,      500,   498 ), /*   499 li                */
-  S_ST( 't',   3,      501,     0 ), /*   500 lis               */
-  S_ST( 'e',   3,      340,     0 ), /*   501 list              */
-  S_ST( 'o',   3,      518,   493 ), /*   502 l                 */
-  S_ST( 'g',   3,      509,     0 ), /*   503 lo                */
-  S_ST( 'c',   3,      505,     0 ), /*   504 log               */
-  S_ST( 'o',   3,      506,     0 ), /*   505 logc              */
-  S_ST( 'n',   3,      507,     0 ), /*   506 logco             */
-  S_ST( 'f',   3,      508,     0 ), /*   507 logcon            */
-  S_ST( 'i',   3,      341,     0 ), /*   508 logconf           */
-  S_ST( 'f',   3,      510,   504 ), /*   509 log               */
-  S_ST( 'i',   3,      511,     0 ), /*   510 logf              */
-  S_ST( 'l',   3,      342,     0 ), /*   511 logfi             */
-  S_ST( 'o',   3,      513,   503 ), /*   512 lo                */
-  S_ST( 'p',   3,      514,     0 ), /*   513 loo               */
-  S_ST( 's',   3,      515,     0 ), /*   514 loop              */
-  S_ST( 't',   3,      516,     0 ), /*   515 loops             */
-  S_ST( 'a',   3,      517,     0 ), /*   516 loopst            */
-  S_ST( 't',   3,      343,     0 ), /*   517 loopsta           */
-  S_ST( 'w',   3,      519,   512 ), /*   518 lo                */
-  S_ST( 'p',   3,      520,     0 ), /*   519 low               */
-  S_ST( 'r',   3,      521,     0 ), /*   520 lowp              */
-  S_ST( 'i',   3,      522,     0 ), /*   521 lowpr             */
-  S_ST( 'o',   3,      523,     0 ), /*   522 lowpri            */
-  S_ST( 't',   3,      524,     0 ), /*   523 lowprio           */
-  S_ST( 'r',   3,      525,     0 ), /*   524 lowpriot          */
-  S_ST( 'a',   3,      344,     0 ), /*   525 lowpriotr         */
-  S_ST( 'm',   3,      612,   474 ), /*   526                   */
-  S_ST( 'a',   3,      545,     0 ), /*   527 m                 */
-  S_ST( 'n',   3,      529,     0 ), /*   528 ma                */
-  S_ST( 'y',   3,      530,     0 ), /*   529 man               */
-  S_ST( 'c',   3,      531,     0 ), /*   530 many              */
-  S_ST( 'a',   3,      532,     0 ), /*   531 manyc             */
-  S_ST( 's',   3,      533,     0 ), /*   532 manyca            */
-  S_ST( 't',   3,      539,     0 ), /*   533 manycas           */
-  S_ST( 'c',   3,      535,     0 ), /*   534 manycast          */
-  S_ST( 'l',   3,      536,     0 ), /*   535 manycastc         */
-  S_ST( 'i',   3,      537,     0 ), /*   536 manycastcl        */
-  S_ST( 'e',   3,      538,     0 ), /*   537 manycastcli       */
-  S_ST( 'n',   3,      345,     0 ), /*   538 manycastclie      */
-  S_ST( 's',   3,      540,   534 ), /*   539 manycast          */
-  S_ST( 'e',   3,      541,     0 ), /*   540 manycasts         */
-  S_ST( 'r',   3,      542,     0 ), /*   541 manycastse        */
-  S_ST( 'v',   3,      543,     0 ), /*   542 manycastser       */
-  S_ST( 'e',   3,      346,     0 ), /*   543 manycastserv      */
-  S_ST( 's',   3,      347,   528 ), /*   544 ma                */
-  S_ST( 'x',   3,      560,   544 ), /*   545 ma                */
-  S_ST( 'a',   3,      547,     0 ), /*   546 max               */
-  S_ST( 'g',   3,      348,     0 ), /*   547 maxa              */
-  S_ST( 'c',   3,      549,   546 ), /*   548 max               */
-  S_ST( 'l',   3,      550,     0 ), /*   549 maxc              */
-  S_ST( 'o',   3,      551,     0 ), /*   550 maxcl             */
-  S_ST( 'c',   3,      349,     0 ), /*   551 maxclo            */
-  S_ST( 'd',   3,      556,   548 ), /*   552 max               */
-  S_ST( 'e',   3,      554,     0 ), /*   553 maxd              */
-  S_ST( 'p',   3,      555,     0 ), /*   554 maxde             */
-  S_ST( 't',   3,      350,     0 ), /*   555 maxdep            */
-  S_ST( 'i',   3,      557,   553 ), /*   556 maxd              */
-  S_ST( 's',   3,      351,     0 ), /*   557 maxdi             */
-  S_ST( 'm',   3,      559,   552 ), /*   558 max               */
-  S_ST( 'e',   3,      352,     0 ), /*   559 maxm              */
-  S_ST( 'p',   3,      561,   558 ), /*   560 max               */
-  S_ST( 'o',   3,      562,     0 ), /*   561 maxp              */
-  S_ST( 'l',   3,      353,     0 ), /*   562 maxpo             */
-  S_ST( 'd',   3,      564,   527 ), /*   563 m                 */
-  S_ST( 'n',   3,      565,     0 ), /*   564 md                */
-  S_ST( 's',   3,      566,     0 ), /*   565 mdn               */
-  S_ST( 't',   3,      567,     0 ), /*   566 mdns              */
-  S_ST( 'r',   3,      568,     0 ), /*   567 mdnst             */
-  S_ST( 'i',   3,      569,     0 ), /*   568 mdnstr            */
-  S_ST( 'e',   3,      354,     0 ), /*   569 mdnstri           */
-  S_ST( 'e',   3,      355,   563 ), /*   570 m                 */
-  S_ST( 'l',   3,      572,     0 ), /*   571 mem               */
-  S_ST( 'o',   3,      573,     0 ), /*   572 meml              */
-  S_ST( 'c',   3,      356,     0 ), /*   573 memlo             */
-  S_ST( 'i',   3,      575,   570 ), /*   574 m                 */
-  S_ST( 'n',   3,      597,     0 ), /*   575 mi                */
-  S_ST( 'c',   3,      577,     0 ), /*   576 min               */
-  S_ST( 'l',   3,      578,     0 ), /*   577 minc              */
-  S_ST( 'o',   3,      579,     0 ), /*   578 mincl             */
-  S_ST( 'c',   3,      357,     0 ), /*   579 minclo            */
-  S_ST( 'd',   3,      584,   576 ), /*   580 min               */
-  S_ST( 'e',   3,      582,     0 ), /*   581 mind              */
-  S_ST( 'p',   3,      583,     0 ), /*   582 minde             */
-  S_ST( 't',   3,      358,     0 ), /*   583 mindep            */
-  S_ST( 'i',   3,      585,   581 ), /*   584 mind              */
-  S_ST( 's',   3,      359,     0 ), /*   585 mindi             */
-  S_ST( 'i',   3,      587,   580 ), /*   586 min               */
-  S_ST( 'm',   3,      588,     0 ), /*   587 mini              */
-  S_ST( 'u',   3,      360,     0 ), /*   588 minim             */
-  S_ST( 'j',   3,      590,   586 ), /*   589 min               */
-  S_ST( 'i',   3,      591,     0 ), /*   590 minj              */
-  S_ST( 't',   3,      592,     0 ), /*   591 minji             */
-  S_ST( 't',   3,      593,     0 ), /*   592 minjit            */
-  S_ST( 'e',   3,      361,     0 ), /*   593 minjitt           */
-  S_ST( 'p',   3,      595,   589 ), /*   594 min               */
-  S_ST( 'o',   3,      596,     0 ), /*   595 minp              */
-  S_ST( 'l',   3,      362,     0 ), /*   596 minpo             */
-  S_ST( 's',   3,      598,   594 ), /*   597 min               */
-  S_ST( 'a',   3,      599,     0 ), /*   598 mins              */
-  S_ST( 'n',   3,      363,     0 ), /*   599 minsa             */
-  S_ST( 'o',   3,      602,   574 ), /*   600 m                 */
-  S_ST( 'd',   3,      364,     0 ), /*   601 mo                */
-  S_ST( 'n',   3,      606,   601 ), /*   602 mo                */
-  S_ST( 'i',   3,      604,     0 ), /*   603 mon               */
-  S_ST( 't',   3,      605,     0 ), /*   604 moni              */
-  S_ST( 'o',   3,      366,     0 ), /*   605 monit             */
-  S_ST( 't',   3,      367,   603 ), /*   606 mon               */
-  S_ST( 'r',   3,      368,   600 ), /*   607 m                 */
-  S_ST( 's',   3,      609,   607 ), /*   608 m                 */
-  S_ST( 's',   3,      610,     0 ), /*   609 ms                */
-  S_ST( 'n',   3,      611,     0 ), /*   610 mss               */
-  S_ST( 't',   3,      369,     0 ), /*   611 mssn              */
-  S_ST( 'u',   3,      613,   608 ), /*   612 m                 */
-  S_ST( 'l',   3,      614,     0 ), /*   613 mu                */
-  S_ST( 't',   3,      615,     0 ), /*   614 mul               */
-  S_ST( 'i',   3,      616,     0 ), /*   615 mult              */
-  S_ST( 'c',   3,      617,     0 ), /*   616 multi             */
-  S_ST( 'a',   3,      618,     0 ), /*   617 multic            */
-  S_ST( 's',   3,      619,     0 ), /*   618 multica           */
-  S_ST( 't',   3,      620,     0 ), /*   619 multicas          */
-  S_ST( 'c',   3,      621,     0 ), /*   620 multicast         */
-  S_ST( 'l',   3,      622,     0 ), /*   621 multicastc        */
-  S_ST( 'i',   3,      623,     0 ), /*   622 multicastcl       */
-  S_ST( 'e',   3,      624,     0 ), /*   623 multicastcli      */
-  S_ST( 'n',   3,      370,     0 ), /*   624 multicastclie     */
-  S_ST( 'n',   3,      672,   526 ), /*   625                   */
-  S_ST( 'i',   3,      371,     0 ), /*   626 n                 */
-  S_ST( 'o',   3,      667,   626 ), /*   627 n                 */
-  S_ST( 'e',   3,      629,     0 ), /*   628 no                */
-  S_ST( 'p',   3,      630,     0 ), /*   629 noe               */
-  S_ST( 'e',   3,      631,     0 ), /*   630 noep              */
-  S_ST( 'e',   3,      377,     0 ), /*   631 noepe             */
-  S_ST( 'l',   3,      633,   628 ), /*   632 no                */
-  S_ST( 'i',   3,      634,     0 ), /*   633 nol               */
-  S_ST( 'n',   3,      372,     0 ), /*   634 noli              */
-  S_ST( 'm',   3,      640,   632 ), /*   635 no                */
-  S_ST( 'o',   3,      637,     0 ), /*   636 nom               */
-  S_ST( 'd',   3,      638,     0 ), /*   637 nomo              */
-  S_ST( 'i',   3,      639,     0 ), /*   638 nomod             */
-  S_ST( 'f',   3,      373,     0 ), /*   639 nomodi            */
-  S_ST( 'r',   3,      641,   636 ), /*   640 nom               */
-  S_ST( 'u',   3,      642,     0 ), /*   641 nomr              */
-  S_ST( 'l',   3,      643,     0 ), /*   642 nomru             */
-  S_ST( 'i',   3,      644,     0 ), /*   643 nomrul            */
-  S_ST( 's',   3,      374,     0 ), /*   644 nomruli           */
-  S_ST( 'n',   3,      646,   635 ), /*   645 no                */
-  S_ST( 'v',   3,      647,   375 ), /*   646 non               */
-  S_ST( 'o',   3,      648,     0 ), /*   647 nonv              */
-  S_ST( 'l',   3,      649,     0 ), /*   648 nonvo             */
-  S_ST( 'a',   3,      650,     0 ), /*   649 nonvol            */
-  S_ST( 't',   3,      651,     0 ), /*   650 nonvola           */
-  S_ST( 'i',   3,      652,     0 ), /*   651 nonvolat          */
-  S_ST( 'l',   3,      376,     0 ), /*   652 nonvolati         */
-  S_ST( 'p',   3,      654,   645 ), /*   653 no                */
-  S_ST( 'e',   3,      655,     0 ), /*   654 nop               */
-  S_ST( 'e',   3,      378,     0 ), /*   655 nope              */
-  S_ST( 'q',   3,      657,   653 ), /*   656 no                */
-  S_ST( 'u',   3,      658,     0 ), /*   657 noq               */
-  S_ST( 'e',   3,      659,     0 ), /*   658 noqu              */
-  S_ST( 'r',   3,      379,     0 ), /*   659 noque             */
-  S_ST( 's',   3,      661,   656 ), /*   660 no                */
-  S_ST( 'e',   3,      665,     0 ), /*   661 nos               */
-  S_ST( 'l',   3,      663,     0 ), /*   662 nose              */
-  S_ST( 'e',   3,      664,     0 ), /*   663 nosel             */
-  S_ST( 'c',   3,      380,     0 ), /*   664 nosele            */
-  S_ST( 'r',   3,      666,   662 ), /*   665 nose              */
-  S_ST( 'v',   3,      381,     0 ), /*   666 noser             */
-  S_ST( 't',   3,      668,   660 ), /*   667 no                */
-  S_ST( 'r',   3,      670,     0 ), /*   668 not               */
-  S_ST( 'a',   3,      382,     0 ), /*   669 notr              */
-  S_ST( 'u',   3,      671,   669 ), /*   670 notr              */
-  S_ST( 's',   3,      383,     0 ), /*   671 notru             */
-  S_ST( 't',   3,      384,   627 ), /*   672 n                 */
-  S_ST( 'p',   3,      674,     0 ), /*   673 ntp               */
-  S_ST( 'o',   3,      675,     0 ), /*   674 ntpp              */
-  S_ST( 'r',   3,      385,     0 ), /*   675 ntppo             */
-  S_ST( 's',   3,      677,   673 ), /*   676 ntp               */
-  S_ST( 'i',   3,      678,     0 ), /*   677 ntps              */
-  S_ST( 'g',   3,      679,     0 ), /*   678 ntpsi             */
-  S_ST( 'n',   3,      680,     0 ), /*   679 ntpsig            */
-  S_ST( 'd',   3,      681,     0 ), /*   680 ntpsign           */
-  S_ST( 's',   3,      682,     0 ), /*   681 ntpsignd          */
-  S_ST( 'o',   3,      683,     0 ), /*   682 ntpsignds         */
-  S_ST( 'c',   3,      684,     0 ), /*   683 ntpsigndso        */
-  S_ST( 'k',   3,      685,     0 ), /*   684 ntpsigndsoc       */
-  S_ST( 'e',   3,      386,     0 ), /*   685 ntpsigndsock      */
-  S_ST( 'o',   3,      687,   625 ), /*   686                   */
-  S_ST( 'r',   3,      688,     0 ), /*   687 o                 */
-  S_ST( 'p',   3,      689,     0 ), /*   688 or                */
-  S_ST( 'h',   3,      690,     0 ), /*   689 orp               */
-  S_ST( 'a',   3,      387,     0 ), /*   690 orph              */
-  S_ST( 'w',   3,      692,     0 ), /*   691 orphan            */
-  S_ST( 'a',   3,      693,     0 ), /*   692 orphanw           */
-  S_ST( 'i',   3,      388,     0 ), /*   693 orphanwa          */
-  S_ST( 'p',   3,      403,   686 ), /*   694                   */
-  S_ST( 'a',   3,      696,     0 ), /*   695 p                 */
-  S_ST( 'n',   3,      697,     0 ), /*   696 pa                */
-  S_ST( 'i',   3,      390,     0 ), /*   697 pan               */
-  S_ST( 'e',   3,      699,   695 ), /*   698 p                 */
-  S_ST( 'e',   3,      391,     0 ), /*   699 pe                */
-  S_ST( '_',   3,      701,     0 ), /*   700 peer              */
-  S_ST( 'c',   3,      702,     0 ), /*   701 peer_             */
-  S_ST( 'l',   3,      703,     0 ), /*   702 peer_c            */
-  S_ST( 'e',   3,      704,     0 ), /*   703 peer_cl           */
-  S_ST( 'a',   3,      705,     0 ), /*   704 peer_cle          */
-  S_ST( 'r',   3,      706,     0 ), /*   705 peer_clea         */
-  S_ST( '_',   3,      707,     0 ), /*   706 peer_clear        */
-  S_ST( 'd',   3,      708,     0 ), /*   707 peer_clear_       */
-  S_ST( 'i',   3,      709,     0 ), /*   708 peer_clear_d      */
-  S_ST( 'g',   3,      710,     0 ), /*   709 peer_clear_di     */
-  S_ST( 'e',   3,      711,     0 ), /*   710 peer_clear_dig    */
-  S_ST( 's',   3,      712,     0 ), /*   711 peer_clear_dige   */
-  S_ST( 't',   3,      713,     0 ), /*   712 peer_clear_diges  */
-  S_ST( '_',   3,      714,     0 ), /*   713 peer_clear_digest */
-  S_ST( 'e',   3,      715,     0 ), /*   714 peer_clear_digest_ */
-  S_ST( 'a',   3,      716,     0 ), /*   715 peer_clear_digest_e */
-  S_ST( 'r',   3,      717,     0 ), /*   716 peer_clear_digest_ea */
-  S_ST( 'l',   3,      389,     0 ), /*   717 peer_clear_digest_ear */
-  S_ST( 's',   3,      719,   700 ), /*   718 peer              */
-  S_ST( 't',   3,      720,     0 ), /*   719 peers             */
-  S_ST( 'a',   3,      721,     0 ), /*   720 peerst            */
-  S_ST( 't',   3,      392,     0 ), /*   721 peersta           */
-  S_ST( 'h',   3,      723,   698 ), /*   722 p                 */
-  S_ST( 'o',   3,      724,     0 ), /*   723 ph                */
-  S_ST( 'n',   3,      393,     0 ), /*   724 pho               */
-  S_ST( 'i',   3,      394,   722 ), /*   725 p                 */
-  S_ST( 'f',   3,      727,     0 ), /*   726 pid               */
-  S_ST( 'i',   3,      728,     0 ), /*   727 pidf              */
-  S_ST( 'l',   3,      395,     0 ), /*   728 pidfi             */
-  S_ST( 'o',   3,      739,   725 ), /*   729 p                 */
-  S_ST( 'l',   3,      396,     0 ), /*   730 po                */
-  S_ST( 's',   3,      732,     0 ), /*   731 poll              */
-  S_ST( 'k',   3,      733,     0 ), /*   732 polls             */
-  S_ST( 'e',   3,      734,     0 ), /*   733 pollsk            */
-  S_ST( 'w',   3,      735,     0 ), /*   734 pollske           */
-  S_ST( 'l',   3,      736,     0 ), /*   735 pollskew          */
-  S_ST( 'i',   3,      737,     0 ), /*   736 pollskewl         */
-  S_ST( 's',   3,      397,     0 ), /*   737 pollskewli        */
-  S_ST( 'o',   3,      398,   730 ), /*   738 po                */
-  S_ST( 'r',   3,      399,   738 ), /*   739 po                */
-  S_ST( 'r',   3,      747,   729 ), /*   740 p                 */
-  S_ST( 'e',   3,      745,     0 ), /*   741 pr                */
-  S_ST( 'e',   3,      743,     0 ), /*   742 pre               */
-  S_ST( 'm',   3,      744,     0 ), /*   743 pree              */
-  S_ST( 'p',   3,      400,     0 ), /*   744 preem             */
-  S_ST( 'f',   3,      746,   742 ), /*   745 pre               */
-  S_ST( 'e',   3,      401,     0 ), /*   746 pref              */
-  S_ST( 'o',   3,      760,   741 ), /*   747 pr                */
-  S_ST( 'c',   3,      749,     0 ), /*   748 pro               */
-  S_ST( '_',   3,      750,     0 ), /*   749 proc              */
-  S_ST( 'd',   3,      751,     0 ), /*   750 proc_             */
-  S_ST( 'e',   3,      752,     0 ), /*   751 proc_d            */
-  S_ST( 'l',   3,      753,     0 ), /*   752 proc_de           */
-  S_ST( 'a',   3,      466,     0 ), /*   753 proc_del          */
-  S_ST( 'p',   3,      755,   748 ), /*   754 pro               */
-  S_ST( '_',   3,      756,     0 ), /*   755 prop              */
-  S_ST( 'd',   3,      757,     0 ), /*   756 prop_             */
-  S_ST( 'e',   3,      758,     0 ), /*   757 prop_d            */
-  S_ST( 'l',   3,      759,     0 ), /*   758 prop_de           */
-  S_ST( 'a',   3,      465,     0 ), /*   759 prop_del          */
-  S_ST( 't',   3,      761,   754 ), /*   760 pro               */
-  S_ST( 'o',   3,      762,     0 ), /*   761 prot              */
-  S_ST( 's',   3,      763,     0 ), /*   762 proto             */
-  S_ST( 't',   3,      764,     0 ), /*   763 protos            */
-  S_ST( 'a',   3,      765,     0 ), /*   764 protost           */
-  S_ST( 't',   3,      402,     0 ), /*   765 protosta          */
-  S_ST( 'r',   3,      797,   694 ), /*   766                   */
-  S_ST( 'a',   3,      773,     0 ), /*   767 r                 */
-  S_ST( 'n',   3,      769,     0 ), /*   768 ra                */
-  S_ST( 'd',   3,      770,     0 ), /*   769 ran               */
-  S_ST( 'f',   3,      771,     0 ), /*   770 rand              */
-  S_ST( 'i',   3,      772,     0 ), /*   771 randf             */
-  S_ST( 'l',   3,      404,     0 ), /*   772 randfi            */
-  S_ST( 'w',   3,      774,   768 ), /*   773 ra                */
-  S_ST( 's',   3,      775,     0 ), /*   774 raw               */
-  S_ST( 't',   3,      776,     0 ), /*   775 raws              */
-  S_ST( 'a',   3,      777,     0 ), /*   776 rawst             */
-  S_ST( 't',   3,      405,     0 ), /*   777 rawsta            */
-  S_ST( 'e',   3,      794,   767 ), /*   778 r                 */
-  S_ST( 'f',   3,      780,     0 ), /*   779 re                */
-  S_ST( 'i',   3,      406,     0 ), /*   780 ref               */
-  S_ST( 'q',   3,      782,   779 ), /*   781 re                */
-  S_ST( 'u',   3,      783,     0 ), /*   782 req               */
-  S_ST( 'e',   3,      784,     0 ), /*   783 requ              */
-  S_ST( 's',   3,      785,     0 ), /*   784 reque             */
-  S_ST( 't',   3,      786,     0 ), /*   785 reques            */
-  S_ST( 'k',   3,      787,     0 ), /*   786 request           */
-  S_ST( 'e',   3,      407,     0 ), /*   787 requestk          */
-  S_ST( 's',   3,      790,   781 ), /*   788 re                */
-  S_ST( 'e',   3,      408,     0 ), /*   789 res               */
-  S_ST( 't',   3,      791,   789 ), /*   790 res               */
-  S_ST( 'r',   3,      792,     0 ), /*   791 rest              */
-  S_ST( 'i',   3,      793,     0 ), /*   792 restr             */
-  S_ST( 'c',   3,      409,     0 ), /*   793 restri            */
-  S_ST( 'v',   3,      795,   788 ), /*   794 re                */
-  S_ST( 'o',   3,      796,     0 ), /*   795 rev               */
-  S_ST( 'k',   3,      410,     0 ), /*   796 revo              */
-  S_ST( 'l',   3,      798,   778 ), /*   797 r                 */
-  S_ST( 'i',   3,      799,     0 ), /*   798 rl                */
-  S_ST( 'm',   3,      800,     0 ), /*   799 rli               */
-  S_ST( 'i',   3,      411,     0 ), /*   800 rlim              */
-  S_ST( 's',   3,      881,   766 ), /*   801                   */
-  S_ST( 'a',   3,      803,     0 ), /*   802 s                 */
-  S_ST( 'v',   3,      804,     0 ), /*   803 sa                */
-  S_ST( 'e',   3,      805,     0 ), /*   804 sav               */
-  S_ST( 'c',   3,      806,     0 ), /*   805 save              */
-  S_ST( 'o',   3,      807,     0 ), /*   806 savec             */
-  S_ST( 'n',   3,      808,     0 ), /*   807 saveco            */
-  S_ST( 'f',   3,      809,     0 ), /*   808 savecon           */
-  S_ST( 'i',   3,      810,     0 ), /*   809 saveconf          */
-  S_ST( 'g',   3,      811,     0 ), /*   810 saveconfi         */
-  S_ST( 'd',   3,      812,     0 ), /*   811 saveconfig        */
-  S_ST( 'i',   3,      412,     0 ), /*   812 saveconfigd       */
-  S_ST( 'e',   3,      830,   802 ), /*   813 s                 */
-  S_ST( 'r',   3,      815,     0 ), /*   814 se                */
-  S_ST( 'v',   3,      816,     0 ), /*   815 ser               */
-  S_ST( 'e',   3,      413,     0 ), /*   816 serv              */
-  S_ST( '_',   3,      818,     0 ), /*   817 server            */
-  S_ST( 'o',   3,      819,     0 ), /*   818 server_           */
-  S_ST( 'f',   3,      820,     0 ), /*   819 server_o          */
-  S_ST( 'f',   3,      821,     0 ), /*   820 server_of         */
-  S_ST( 's',   3,      822,     0 ), /*   821 server_off        */
-  S_ST( 'e',   3,      460,     0 ), /*   822 server_offs       */
-  S_ST( 'r',   3,      824,   817 ), /*   823 server            */
-  S_ST( 'e',   3,      825,     0 ), /*   824 serverr           */
-  S_ST( 's',   3,      826,     0 ), /*   825 serverre          */
-  S_ST( 'p',   3,      827,     0 ), /*   826 serverres         */
-  S_ST( 'o',   3,      828,     0 ), /*   827 serverresp        */
-  S_ST( 'n',   3,      829,     0 ), /*   828 serverrespo       */
-  S_ST( 's',   3,      414,     0 ), /*   829 serverrespon      */
-  S_ST( 't',   3,      831,   814 ), /*   830 se                */
-  S_ST( 'v',   3,      832,     0 ), /*   831 set               */
-  S_ST( 'a',   3,      416,     0 ), /*   832 setv              */
-  S_ST( 'i',   3,      834,   813 ), /*   833 s                 */
-  S_ST( 'm',   3,      835,     0 ), /*   834 si                */
-  S_ST( 'u',   3,      836,     0 ), /*   835 sim               */
-  S_ST( 'l',   3,      837,     0 ), /*   836 simu              */
-  S_ST( 'a',   3,      838,     0 ), /*   837 simul             */
-  S_ST( 't',   3,      839,     0 ), /*   838 simula            */
-  S_ST( 'i',   3,      840,   457 ), /*   839 simulat           */
-  S_ST( 'o',   3,      841,     0 ), /*   840 simulati          */
-  S_ST( 'n',   3,      842,     0 ), /*   841 simulatio         */
-  S_ST( '_',   3,      843,     0 ), /*   842 simulation        */
-  S_ST( 'd',   3,      844,     0 ), /*   843 simulation_       */
-  S_ST( 'u',   3,      845,     0 ), /*   844 simulation_d      */
-  S_ST( 'r',   3,      846,     0 ), /*   845 simulation_du     */
-  S_ST( 'a',   3,      847,     0 ), /*   846 simulation_dur    */
-  S_ST( 't',   3,      848,     0 ), /*   847 simulation_dura   */
-  S_ST( 'i',   3,      849,     0 ), /*   848 simulation_durat  */
-  S_ST( 'o',   3,      459,     0 ), /*   849 simulation_durati */
-  S_ST( 'o',   3,      851,   833 ), /*   850 s                 */
-  S_ST( 'u',   3,      852,     0 ), /*   851 so                */
-  S_ST( 'r',   3,      853,     0 ), /*   852 sou               */
-  S_ST( 'c',   3,      417,     0 ), /*   853 sour              */
-  S_ST( 't',   3,      877,   850 ), /*   854 s                 */
-  S_ST( 'a',   3,      861,     0 ), /*   855 st                */
-  S_ST( 'c',   3,      857,     0 ), /*   856 sta               */
-  S_ST( 'k',   3,      858,     0 ), /*   857 stac              */
-  S_ST( 's',   3,      859,     0 ), /*   858 stack             */
-  S_ST( 'i',   3,      860,     0 ), /*   859 stacks            */
-  S_ST( 'z',   3,      418,     0 ), /*   860 stacksi           */
-  S_ST( 't',   3,      420,   856 ), /*   861 sta               */
-  S_ST( 'i',   3,      863,     0 ), /*   862 stat              */
-  S_ST( 's',   3,      864,     0 ), /*   863 stati             */
-  S_ST( 't',   3,      865,     0 ), /*   864 statis            */
-  S_ST( 'i',   3,      866,     0 ), /*   865 statist           */
-  S_ST( 'c',   3,      419,     0 ), /*   866 statisti          */
-  S_ST( 'd',   3,      868,     0 ), /*   867 stats             */
-  S_ST( 'i',   3,      421,     0 ), /*   868 statsd            */
-  S_ST( 'e',   3,      422,   855 ), /*   869 st                */
-  S_ST( 'b',   3,      871,     0 ), /*   870 step              */
-  S_ST( 'a',   3,      872,     0 ), /*   871 stepb             */
-  S_ST( 'c',   3,      423,     0 ), /*   872 stepba            */
-  S_ST( 'f',   3,      874,   870 ), /*   873 step              */
-  S_ST( 'w',   3,      424,     0 ), /*   874 stepf             */
-  S_ST( 'o',   3,      876,   873 ), /*   875 step              */
-  S_ST( 'u',   3,      425,     0 ), /*   876 stepo             */
-  S_ST( 'r',   3,      878,   869 ), /*   877 st                */
-  S_ST( 'a',   3,      879,     0 ), /*   878 str               */
-  S_ST( 't',   3,      880,     0 ), /*   879 stra              */
-  S_ST( 'u',   3,      426,     0 ), /*   880 strat             */
-  S_ST( 'y',   3,      428,   854 ), /*   881 s                 */
-  S_ST( 's',   3,      883,     0 ), /*   882 sys               */
-  S_ST( 't',   3,      884,     0 ), /*   883 syss              */
-  S_ST( 'a',   3,      885,     0 ), /*   884 sysst             */
-  S_ST( 't',   3,      429,     0 ), /*   885 syssta            */
-  S_ST( 't',   3,      912,   801 ), /*   886                   */
-  S_ST( 'i',   3,      898,     0 ), /*   887 t                 */
-  S_ST( 'c',   3,      430,     0 ), /*   888 ti                */
-  S_ST( 'm',   3,      891,   888 ), /*   889 ti                */
-  S_ST( 'e',   3,      433,     0 ), /*   890 tim               */
-  S_ST( 'i',   3,      892,   890 ), /*   891 tim               */
-  S_ST( 'n',   3,      893,     0 ), /*   892 timi              */
-  S_ST( 'g',   3,      894,     0 ), /*   893 timin             */
-  S_ST( 's',   3,      895,     0 ), /*   894 timing            */
-  S_ST( 't',   3,      896,     0 ), /*   895 timings           */
-  S_ST( 'a',   3,      897,     0 ), /*   896 timingst          */
-  S_ST( 't',   3,      434,     0 ), /*   897 timingsta         */
-  S_ST( 'n',   3,      899,   889 ), /*   898 ti                */
-  S_ST( 'k',   3,      900,     0 ), /*   899 tin               */
-  S_ST( 'e',   3,      435,     0 ), /*   900 tink              */
-  S_ST( 'o',   3,      436,   887 ), /*   901 t                 */
-  S_ST( 'r',   3,      904,   901 ), /*   902 t                 */
-  S_ST( 'a',   3,      437,     0 ), /*   903 tr                */
-  S_ST( 'u',   3,      905,   903 ), /*   904 tr                */
-  S_ST( 's',   3,      906,   438 ), /*   905 tru               */
-  S_ST( 't',   3,      907,     0 ), /*   906 trus              */
-  S_ST( 'e',   3,      908,     0 ), /*   907 trust             */
-  S_ST( 'd',   3,      909,     0 ), /*   908 truste            */
-  S_ST( 'k',   3,      910,     0 ), /*   909 trusted           */
-  S_ST( 'e',   3,      439,     0 ), /*   910 trustedk          */
-  S_ST( 't',   3,      440,   902 ), /*   911 t                 */
-  S_ST( 'y',   3,      913,   911 ), /*   912 t                 */
-  S_ST( 'p',   3,      441,     0 ), /*   913 ty                */
-  S_ST( 'u',   3,      915,   886 ), /*   914                   */
-  S_ST( 'n',   3,      921,     0 ), /*   915 u                 */
-  S_ST( 'c',   3,      917,     0 ), /*   916 un                */
-  S_ST( 'o',   3,      918,     0 ), /*   917 unc               */
-  S_ST( 'n',   3,      919,     0 ), /*   918 unco              */
-  S_ST( 'f',   3,      920,     0 ), /*   919 uncon             */
-  S_ST( 'i',   3,      446,     0 ), /*   920 unconf            */
-  S_ST( 'p',   3,      922,   916 ), /*   921 un                */
-  S_ST( 'e',   3,      923,     0 ), /*   922 unp               */
-  S_ST( 'e',   3,      447,     0 ), /*   923 unpe              */
-  S_ST( '_',   3,      944,     0 ), /*   924 unpeer            */
-  S_ST( 'c',   3,      926,     0 ), /*   925 unpeer_           */
-  S_ST( 'r',   3,      927,     0 ), /*   926 unpeer_c          */
-  S_ST( 'y',   3,      928,     0 ), /*   927 unpeer_cr         */
-  S_ST( 'p',   3,      929,     0 ), /*   928 unpeer_cry        */
-  S_ST( 't',   3,      930,     0 ), /*   929 unpeer_cryp       */
-  S_ST( 'o',   3,      931,     0 ), /*   930 unpeer_crypt      */
-  S_ST( '_',   3,      936,     0 ), /*   931 unpeer_crypto     */
-  S_ST( 'e',   3,      933,     0 ), /*   932 unpeer_crypto_    */
-  S_ST( 'a',   3,      934,     0 ), /*   933 unpeer_crypto_e   */
-  S_ST( 'r',   3,      935,     0 ), /*   934 unpeer_crypto_ea  */
-  S_ST( 'l',   3,      443,     0 ), /*   935 unpeer_crypto_ear */
-  S_ST( 'n',   3,      937,   932 ), /*   936 unpeer_crypto_    */
-  S_ST( 'a',   3,      938,     0 ), /*   937 unpeer_crypto_n   */
-  S_ST( 'k',   3,      939,     0 ), /*   938 unpeer_crypto_na  */
-  S_ST( '_',   3,      940,     0 ), /*   939 unpeer_crypto_nak */
-  S_ST( 'e',   3,      941,     0 ), /*   940 unpeer_crypto_nak_ */
-  S_ST( 'a',   3,      942,     0 ), /*   941 unpeer_crypto_nak_e */
-  S_ST( 'r',   3,      943,     0 ), /*   942 unpeer_crypto_nak_ea */
-  S_ST( 'l',   3,      444,     0 ), /*   943 unpeer_crypto_nak_ear */
-  S_ST( 'd',   3,      945,   925 ), /*   944 unpeer_           */
-  S_ST( 'i',   3,      946,     0 ), /*   945 unpeer_d          */
-  S_ST( 'g',   3,      947,     0 ), /*   946 unpeer_di         */
-  S_ST( 'e',   3,      948,     0 ), /*   947 unpeer_dig        */
-  S_ST( 's',   3,      949,     0 ), /*   948 unpeer_dige       */
-  S_ST( 't',   3,      950,     0 ), /*   949 unpeer_diges      */
-  S_ST( '_',   3,      951,     0 ), /*   950 unpeer_digest     */
-  S_ST( 'e',   3,      952,     0 ), /*   951 unpeer_digest_    */
-  S_ST( 'a',   3,      953,     0 ), /*   952 unpeer_digest_e   */
-  S_ST( 'r',   3,      954,     0 ), /*   953 unpeer_digest_ea  */
-  S_ST( 'l',   3,      445,     0 ), /*   954 unpeer_digest_ear */
-  S_ST( 'v',   3,      956,   914 ), /*   955                   */
-  S_ST( 'e',   3,      957,     0 ), /*   956 v                 */
-  S_ST( 'r',   3,      958,     0 ), /*   957 ve                */
-  S_ST( 's',   3,      959,     0 ), /*   958 ver               */
-  S_ST( 'i',   3,      960,     0 ), /*   959 vers              */
-  S_ST( 'o',   3,      448,     0 ), /*   960 versi             */
-  S_ST( 'w',   3,      968,   955 ), /*   961                   */
-  S_ST( 'a',   3,      963,     0 ), /*   962 w                 */
-  S_ST( 'n',   3,      964,     0 ), /*   963 wa                */
-  S_ST( 'd',   3,      965,     0 ), /*   964 wan               */
-  S_ST( 'e',   3,      463,     0 ), /*   965 wand              */
-  S_ST( 'e',   3,      967,   962 ), /*   966 w                 */
-  S_ST( 'e',   3,      450,     0 ), /*   967 we                */
-  S_ST( 'i',   3,      969,   966 ), /*   968 w                 */
-  S_ST( 'l',   3,      970,     0 ), /*   969 wi                */
-  S_ST( 'd',   3,      971,     0 ), /*   970 wil               */
-  S_ST( 'c',   3,      972,     0 ), /*   971 wild              */
-  S_ST( 'a',   3,      973,     0 ), /*   972 wildc             */
-  S_ST( 'r',   3,      451,     0 ), /*   973 wildca            */
-  S_ST( 'x',   3,      979,   961 ), /*   974                   */
-  S_ST( 'l',   3,      976,     0 ), /*   975 x                 */
-  S_ST( 'e',   3,      977,     0 ), /*   976 xl                */
-  S_ST( 'a',   3,      978,     0 ), /*   977 xle               */
-  S_ST( 'v',   3,      452,     0 ), /*   978 xlea              */
-  S_ST( 'm',   3,      980,   975 ), /*   979 x                 */
-  S_ST( 't',   3,      981,     0 ), /*   980 xm                */
-  S_ST( 'n',   3,      982,     0 ), /*   981 xmt               */
-  S_ST( 'o',   3,      983,     0 ), /*   982 xmtn              */
-  S_ST( 'n',   3,      984,     0 ), /*   983 xmtno             */
-  S_ST( 'c',   3,      453,     0 ), /*   984 xmtnon            */
-  S_ST( 'y',   3,      986,   974 ), /*   985 [initial state]   */
-  S_ST( 'e',   3,      987,     0 ), /*   986 y                 */
-  S_ST( 'a',   3,      454,     0 )  /*   987 ye                */
+  S_ST( 'e',   1,        0,     0 ), /*   286 T_Device          */
+  S_ST( 't',   1,        0,     0 ), /*   287 T_Digest          */
+  S_ST( 'e',   0,        0,     0 ), /*   288 T_Disable         */
+  S_ST( 'd',   0,        0,     0 ), /*   289 T_Discard         */
+  S_ST( 'n',   0,        0,     0 ), /*   290 T_Dispersion      */
+  S_ST( 'e',   3,      299,     0 ), /*   291 ippe              */
+  S_ST( 'e',   1,        0,     0 ), /*   292 T_Driftfile       */
+  S_ST( 'p',   0,        0,     0 ), /*   293 T_Drop            */
+  S_ST( 'p',   0,        0,     0 ), /*   294 T_Dscp            */
+  S_ST( '.',   0,        0,     0 ), /*   295 T_Ellipsis        */
+  S_ST( 'e',   0,        0,     0 ), /*   296 T_Enable          */
+  S_ST( 'd',   0,        0,   171 ), /*   297 T_End             */
+  S_ST( 'r',   0,        0,     0 ), /*   298 T_Epeer           */
+  S_ST( 'r',   3,      323,     0 ), /*   299 ippee             */
+  S_ST( 'e',   1,      182,     0 ), /*   300 T_File            */
+  S_ST( 'n',   0,        0,     0 ), /*   301 T_Filegen         */
+  S_ST( 'm',   0,        0,     0 ), /*   302 T_Filenum         */
+  S_ST( '1',   0,        0,     0 ), /*   303 T_Flag1           */
+  S_ST( '2',   0,        0,   303 ), /*   304 T_Flag2           */
+  S_ST( '3',   0,        0,   304 ), /*   305 T_Flag3           */
+  S_ST( '4',   0,        0,   305 ), /*   306 T_Flag4           */
+  S_ST( 'e',   0,        0,     0 ), /*   307 T_Flake           */
+  S_ST( 'r',   0,        0,     0 ), /*   308 T_Floor           */
+  S_ST( 'q',   0,      192,     0 ), /*   309 T_Freq            */
+  S_ST( 'e',   1,        0,     0 ), /*   310 T_Fudge           */
+  S_ST( 'z',   0,        0,     0 ), /*   311 T_Fuzz            */
+  S_ST( 't',   1,        0,     0 ), /*   312 T_Host            */
+  S_ST( 'f',   0,        0,     0 ), /*   313 T_Huffpuff        */
+  S_ST( 't',   0,        0,     0 ), /*   314 T_Iburst          */
+  S_ST( 't',   1,        0,     0 ), /*   315 T_Ident           */
+  S_ST( 'e',   0,      223,     0 ), /*   316 T_Ignore          */
+  S_ST( 'h',   0,        0,     0 ), /*   317 T_Ignorehash      */
+  S_ST( 'c',   0,        0,     0 ), /*   318 T_Incalloc        */
+  S_ST( 'm',   0,        0,     0 ), /*   319 T_Incmem          */
+  S_ST( 'c',   0,        0,     0 ), /*   320 T_Initalloc       */
+  S_ST( 'm',   0,        0,     0 ), /*   321 T_Initmem         */
+  S_ST( 'e',   1,        0,     0 ), /*   322 T_Includefile     */
+  S_ST( 'l',   3,      325,     0 ), /*   323 ippeer            */
+  S_ST( 'e',   0,        0,     0 ), /*   324 T_Interface       */
+  S_ST( 'i',   3,      417,     0 ), /*   325 ippeerl           */
+  S_ST( 'o',   0,        0,   226 ), /*   326 T_Io              */
+  S_ST( 't',   0,        0,     0 ), /*   327 T_Ippeerlimit     */
+  S_ST( '4',   0,        0,     0 ), /*   328 T_Ipv4            */
+  S_ST( '4',   0,        0,     0 ), /*   329 T_Ipv4_flag       */
+  S_ST( '6',   0,        0,   328 ), /*   330 T_Ipv6            */
+  S_ST( '6',   0,        0,   329 ), /*   331 T_Ipv6_flag       */
+  S_ST( 'l',   0,        0,     0 ), /*   332 T_Kernel          */
+  S_ST( 'y',   0,      334,   474 ), /*   333 T_Key             */
+  S_ST( 's',   1,      477,     0 ), /*   334 T_Keys            */
+  S_ST( 'r',   1,        0,     0 ), /*   335 T_Keysdir         */
+  S_ST( 'd',   0,        0,     0 ), /*   336 T_Kod             */
+  S_ST( 'e',   1,        0,     0 ), /*   337 T_Leapfile        */
+  S_ST( 'l',   0,        0,     0 ), /*   338 T_Leapsmearinterval */
+  S_ST( 'd',   0,        0,     0 ), /*   339 T_Limited         */
+  S_ST( 'k',   0,        0,     0 ), /*   340 T_Link            */
+  S_ST( 'n',   0,        0,     0 ), /*   341 T_Listen          */
+  S_ST( 'g',   2,        0,     0 ), /*   342 T_Logconfig       */
+  S_ST( 'e',   1,        0,     0 ), /*   343 T_Logfile         */
+  S_ST( 's',   0,        0,     0 ), /*   344 T_Loopstats       */
+  S_ST( 'p',   0,        0,     0 ), /*   345 T_Lowpriotrap     */
+  S_ST( 't',   1,        0,     0 ), /*   346 T_Manycastclient  */
+  S_ST( 'r',   2,        0,     0 ), /*   347 T_Manycastserver  */
+  S_ST( 'k',   0,        0,     0 ), /*   348 T_Mask            */
+  S_ST( 'e',   0,        0,     0 ), /*   349 T_Maxage          */
+  S_ST( 'k',   0,        0,     0 ), /*   350 T_Maxclock        */
+  S_ST( 'h',   0,        0,     0 ), /*   351 T_Maxdepth        */
+  S_ST( 't',   0,        0,     0 ), /*   352 T_Maxdist         */
+  S_ST( 'm',   0,        0,     0 ), /*   353 T_Maxmem          */
+  S_ST( 'l',   0,        0,     0 ), /*   354 T_Maxpoll         */
+  S_ST( 's',   0,        0,     0 ), /*   355 T_Mdnstries       */
+  S_ST( 'm',   0,      577,     0 ), /*   356 T_Mem             */
+  S_ST( 'k',   0,        0,     0 ), /*   357 T_Memlock         */
+  S_ST( 'k',   0,        0,     0 ), /*   358 T_Minclock        */
+  S_ST( 'h',   0,        0,     0 ), /*   359 T_Mindepth        */
+  S_ST( 't',   0,        0,     0 ), /*   360 T_Mindist         */
+  S_ST( 'm',   0,        0,     0 ), /*   361 T_Minimum         */
+  S_ST( 'r',   0,        0,     0 ), /*   362 T_Minjitter       */
+  S_ST( 'l',   0,        0,     0 ), /*   363 T_Minpoll         */
+  S_ST( 'e',   0,        0,     0 ), /*   364 T_Minsane         */
+  S_ST( 'e',   0,      366,     0 ), /*   365 T_Mode            */
+  S_ST( '7',   0,        0,     0 ), /*   366 T_Mode7           */
+  S_ST( 'r',   0,        0,     0 ), /*   367 T_Monitor         */
+  S_ST( 'h',   0,        0,     0 ), /*   368 T_Month           */
+  S_ST( 'u',   0,        0,     0 ), /*   369 T_Mru             */
+  S_ST( 'p',   0,        0,     0 ), /*   370 T_Mssntp          */
+  S_ST( 't',   2,        0,     0 ), /*   371 T_Multicastclient */
+  S_ST( 'c',   0,        0,     0 ), /*   372 T_Nic             */
+  S_ST( 'k',   0,        0,     0 ), /*   373 T_Nolink          */
+  S_ST( 'y',   0,        0,     0 ), /*   374 T_Nomodify        */
+  S_ST( 't',   0,        0,     0 ), /*   375 T_Nomrulist       */
+  S_ST( 'e',   0,        0,     0 ), /*   376 T_None            */
+  S_ST( 'e',   0,        0,     0 ), /*   377 T_Nonvolatile     */
+  S_ST( 'r',   0,        0,     0 ), /*   378 T_Noepeer         */
+  S_ST( 'r',   0,        0,     0 ), /*   379 T_Nopeer          */
+  S_ST( 'y',   0,        0,     0 ), /*   380 T_Noquery         */
+  S_ST( 't',   0,        0,     0 ), /*   381 T_Noselect        */
+  S_ST( 'e',   0,        0,     0 ), /*   382 T_Noserve         */
+  S_ST( 'p',   0,        0,     0 ), /*   383 T_Notrap          */
+  S_ST( 't',   0,        0,     0 ), /*   384 T_Notrust         */
+  S_ST( 'p',   0,      682,     0 ), /*   385 T_Ntp             */
+  S_ST( 't',   0,        0,     0 ), /*   386 T_Ntpport         */
+  S_ST( 't',   1,        0,     0 ), /*   387 T_NtpSignDsocket  */
+  S_ST( 'n',   0,      697,     0 ), /*   388 T_Orphan          */
+  S_ST( 't',   0,        0,     0 ), /*   389 T_Orphanwait      */
+  S_ST( 'y',   0,        0,     0 ), /*   390 T_PCEdigest       */
+  S_ST( 'c',   0,        0,     0 ), /*   391 T_Panic           */
+  S_ST( 'r',   1,      724,     0 ), /*   392 T_Peer            */
+  S_ST( 's',   0,        0,     0 ), /*   393 T_Peerstats       */
+  S_ST( 'e',   2,        0,     0 ), /*   394 T_Phone           */
+  S_ST( 'd',   0,      732,     0 ), /*   395 T_Pid             */
+  S_ST( 'e',   1,        0,     0 ), /*   396 T_Pidfile         */
+  S_ST( 'l',   0,      737,     0 ), /*   397 T_Poll            */
+  S_ST( 't',   0,        0,     0 ), /*   398 T_PollSkewList    */
+  S_ST( 'l',   1,        0,     0 ), /*   399 T_Pool            */
+  S_ST( 't',   0,        0,     0 ), /*   400 T_Port            */
+  S_ST( 'a',   1,        0,     0 ), /*   401 T_PpsData         */
+  S_ST( 't',   0,        0,     0 ), /*   402 T_Preempt         */
+  S_ST( 'r',   0,        0,     0 ), /*   403 T_Prefer          */
+  S_ST( 's',   0,        0,     0 ), /*   404 T_Protostats      */
+  S_ST( 'w',   1,        0,   751 ), /*   405 T_Pw              */
+  S_ST( 'e',   1,        0,     0 ), /*   406 T_Randfile        */
+  S_ST( 's',   0,        0,     0 ), /*   407 T_Rawstats        */
+  S_ST( 'd',   1,        0,     0 ), /*   408 T_Refid           */
+  S_ST( 'y',   0,        0,     0 ), /*   409 T_Requestkey      */
+  S_ST( 't',   0,        0,     0 ), /*   410 T_Reset           */
+  S_ST( 't',   0,        0,     0 ), /*   411 T_Restrict        */
+  S_ST( 'e',   0,        0,     0 ), /*   412 T_Revoke          */
+  S_ST( 't',   0,        0,     0 ), /*   413 T_Rlimit          */
+  S_ST( 'r',   1,        0,     0 ), /*   414 T_Saveconfigdir   */
+  S_ST( 'r',   1,      834,     0 ), /*   415 T_Server          */
+  S_ST( 'e',   0,        0,     0 ), /*   416 T_Serverresponse  */
+  S_ST( 'm',   3,      429,     0 ), /*   417 ippeerli          */
+  S_ST( 'r',   1,        0,     0 ), /*   418 T_Setvar          */
+  S_ST( 'e',   0,        0,     0 ), /*   419 T_Source          */
+  S_ST( 'e',   0,        0,     0 ), /*   420 T_Stacksize       */
+  S_ST( 's',   0,        0,     0 ), /*   421 T_Statistics      */
+  S_ST( 's',   0,      878,   873 ), /*   422 T_Stats           */
+  S_ST( 'r',   1,        0,     0 ), /*   423 T_Statsdir        */
+  S_ST( 'p',   0,      886,     0 ), /*   424 T_Step            */
+  S_ST( 'k',   0,        0,     0 ), /*   425 T_Stepback        */
+  S_ST( 'd',   0,        0,     0 ), /*   426 T_Stepfwd         */
+  S_ST( 't',   0,        0,     0 ), /*   427 T_Stepout         */
+  S_ST( 'm',   0,        0,     0 ), /*   428 T_Stratum         */
+  S_ST( 'i',   3,      327,     0 ), /*   429 ippeerlim         */
+  S_ST( 's',   0,      893,     0 ), /*   430 T_Sys             */
+  S_ST( 's',   0,        0,     0 ), /*   431 T_Sysstats        */
+  S_ST( 'k',   0,        0,     0 ), /*   432 T_Tick            */
+  S_ST( '1',   0,        0,     0 ), /*   433 T_Time1           */
+  S_ST( '2',   0,        0,   433 ), /*   434 T_Time2           */
+  S_ST( 'a',   1,        0,     0 ), /*   435 T_TimeData        */
+  S_ST( 'r',   0,        0,   902 ), /*   436 T_Timer           */
+  S_ST( 's',   0,        0,     0 ), /*   437 T_Timingstats     */
+  S_ST( 'r',   0,        0,     0 ), /*   438 T_Tinker          */
+  S_ST( 's',   0,        0,     0 ), /*   439 T_Tos             */
+  S_ST( 'p',   1,        0,     0 ), /*   440 T_Trap            */
+  S_ST( 'e',   0,        0,     0 ), /*   441 T_True            */
+  S_ST( 'y',   0,        0,     0 ), /*   442 T_Trustedkey      */
+  S_ST( 'l',   0,        0,     0 ), /*   443 T_Ttl             */
+  S_ST( 'e',   0,        0,     0 ), /*   444 T_Type            */
+  S_ST( 'v',   3,      330,   256 ), /*   445 ip                */
+  S_ST( 'y',   0,        0,     0 ), /*   446 T_UEcrypto        */
+  S_ST( 'y',   0,        0,     0 ), /*   447 T_UEcryptonak     */
+  S_ST( 'y',   0,        0,     0 ), /*   448 T_UEdigest        */
+  S_ST( 'g',   1,        0,     0 ), /*   449 T_Unconfig        */
+  S_ST( 'r',   1,      938,     0 ), /*   450 T_Unpeer          */
+  S_ST( 'n',   0,        0,     0 ), /*   451 T_Version         */
+  S_ST( 'j',   3,      458,   211 ), /*   452                   */
+  S_ST( 'k',   0,        0,     0 ), /*   453 T_Week            */
+  S_ST( 'd',   0,        0,     0 ), /*   454 T_Wildcard        */
+  S_ST( 'e',   0,        0,     0 ), /*   455 T_Xleave          */
+  S_ST( 'e',   0,        0,     0 ), /*   456 T_Xmtnonce        */
+  S_ST( 'r',   0,        0,     0 ), /*   457 T_Year            */
+  S_ST( 'i',   3,      459,     0 ), /*   458 j                 */
+  S_ST( 't',   3,      470,     0 ), /*   459 ji                */
+  S_ST( 'e',   0,        0,     0 ), /*   460 T_Simulate        */
+  S_ST( 'y',   0,        0,     0 ), /*   461 T_Beep_Delay      */
+  S_ST( 'n',   0,        0,     0 ), /*   462 T_Sim_Duration    */
+  S_ST( 't',   0,        0,     0 ), /*   463 T_Server_Offset   */
+  S_ST( 'n',   0,        0,     0 ), /*   464 T_Duration        */
+  S_ST( 't',   0,        0,     0 ), /*   465 T_Freq_Offset     */
+  S_ST( 'r',   0,        0,     0 ), /*   466 T_Wander          */
+  S_ST( 'r',   0,        0,     0 ), /*   467 T_Jitter          */
+  S_ST( 'y',   0,        0,     0 ), /*   468 T_Prop_Delay      */
+  S_ST( 'y',   0,        0,     0 ), /*   469 T_Proc_Delay      */
+  S_ST( 't',   3,      471,     0 ), /*   470 jit               */
+  S_ST( 'e',   3,      467,     0 ), /*   471 jitt              */
+  S_ST( 'k',   3,      479,   452 ), /*   472                   */
+  S_ST( 'e',   3,      333,     0 ), /*   473 k                 */
+  S_ST( 'r',   3,      475,     0 ), /*   474 ke                */
+  S_ST( 'n',   3,      476,     0 ), /*   475 ker               */
+  S_ST( 'e',   3,      332,     0 ), /*   476 kern              */
+  S_ST( 'd',   3,      478,     0 ), /*   477 keys              */
+  S_ST( 'i',   3,      335,     0 ), /*   478 keysd             */
+  S_ST( 'o',   3,      336,   473 ), /*   479 k                 */
+  S_ST( 'l',   3,      508,   472 ), /*   480                   */
+  S_ST( 'e',   3,      482,     0 ), /*   481 l                 */
+  S_ST( 'a',   3,      483,     0 ), /*   482 le                */
+  S_ST( 'p',   3,      487,     0 ), /*   483 lea               */
+  S_ST( 'f',   3,      485,     0 ), /*   484 leap              */
+  S_ST( 'i',   3,      486,     0 ), /*   485 leapf             */
+  S_ST( 'l',   3,      337,     0 ), /*   486 leapfi            */
+  S_ST( 's',   3,      488,   484 ), /*   487 leap              */
+  S_ST( 'm',   3,      489,     0 ), /*   488 leaps             */
+  S_ST( 'e',   3,      490,     0 ), /*   489 leapsm            */
+  S_ST( 'a',   3,      491,     0 ), /*   490 leapsme           */
+  S_ST( 'r',   3,      492,     0 ), /*   491 leapsmea          */
+  S_ST( 'i',   3,      493,     0 ), /*   492 leapsmear         */
+  S_ST( 'n',   3,      494,     0 ), /*   493 leapsmeari        */
+  S_ST( 't',   3,      495,     0 ), /*   494 leapsmearin       */
+  S_ST( 'e',   3,      496,     0 ), /*   495 leapsmearint      */
+  S_ST( 'r',   3,      497,     0 ), /*   496 leapsmearinte     */
+  S_ST( 'v',   3,      498,     0 ), /*   497 leapsmearinter    */
+  S_ST( 'a',   3,      338,     0 ), /*   498 leapsmearinterv   */
+  S_ST( 'i',   3,      505,   481 ), /*   499 l                 */
+  S_ST( 'm',   3,      501,     0 ), /*   500 li                */
+  S_ST( 'i',   3,      502,     0 ), /*   501 lim               */
+  S_ST( 't',   3,      503,     0 ), /*   502 limi              */
+  S_ST( 'e',   3,      339,     0 ), /*   503 limit             */
+  S_ST( 'n',   3,      340,   500 ), /*   504 li                */
+  S_ST( 's',   3,      506,   504 ), /*   505 li                */
+  S_ST( 't',   3,      507,     0 ), /*   506 lis               */
+  S_ST( 'e',   3,      341,     0 ), /*   507 list              */
+  S_ST( 'o',   3,      524,   499 ), /*   508 l                 */
+  S_ST( 'g',   3,      515,     0 ), /*   509 lo                */
+  S_ST( 'c',   3,      511,     0 ), /*   510 log               */
+  S_ST( 'o',   3,      512,     0 ), /*   511 logc              */
+  S_ST( 'n',   3,      513,     0 ), /*   512 logco             */
+  S_ST( 'f',   3,      514,     0 ), /*   513 logcon            */
+  S_ST( 'i',   3,      342,     0 ), /*   514 logconf           */
+  S_ST( 'f',   3,      516,   510 ), /*   515 log               */
+  S_ST( 'i',   3,      517,     0 ), /*   516 logf              */
+  S_ST( 'l',   3,      343,     0 ), /*   517 logfi             */
+  S_ST( 'o',   3,      519,   509 ), /*   518 lo                */
+  S_ST( 'p',   3,      520,     0 ), /*   519 loo               */
+  S_ST( 's',   3,      521,     0 ), /*   520 loop              */
+  S_ST( 't',   3,      522,     0 ), /*   521 loops             */
+  S_ST( 'a',   3,      523,     0 ), /*   522 loopst            */
+  S_ST( 't',   3,      344,     0 ), /*   523 loopsta           */
+  S_ST( 'w',   3,      525,   518 ), /*   524 lo                */
+  S_ST( 'p',   3,      526,     0 ), /*   525 low               */
+  S_ST( 'r',   3,      527,     0 ), /*   526 lowp              */
+  S_ST( 'i',   3,      528,     0 ), /*   527 lowpr             */
+  S_ST( 'o',   3,      529,     0 ), /*   528 lowpri            */
+  S_ST( 't',   3,      530,     0 ), /*   529 lowprio           */
+  S_ST( 'r',   3,      531,     0 ), /*   530 lowpriot          */
+  S_ST( 'a',   3,      345,     0 ), /*   531 lowpriotr         */
+  S_ST( 'm',   3,      618,   480 ), /*   532                   */
+  S_ST( 'a',   3,      551,     0 ), /*   533 m                 */
+  S_ST( 'n',   3,      535,     0 ), /*   534 ma                */
+  S_ST( 'y',   3,      536,     0 ), /*   535 man               */
+  S_ST( 'c',   3,      537,     0 ), /*   536 many              */
+  S_ST( 'a',   3,      538,     0 ), /*   537 manyc             */
+  S_ST( 's',   3,      539,     0 ), /*   538 manyca            */
+  S_ST( 't',   3,      545,     0 ), /*   539 manycas           */
+  S_ST( 'c',   3,      541,     0 ), /*   540 manycast          */
+  S_ST( 'l',   3,      542,     0 ), /*   541 manycastc         */
+  S_ST( 'i',   3,      543,     0 ), /*   542 manycastcl        */
+  S_ST( 'e',   3,      544,     0 ), /*   543 manycastcli       */
+  S_ST( 'n',   3,      346,     0 ), /*   544 manycastclie      */
+  S_ST( 's',   3,      546,   540 ), /*   545 manycast          */
+  S_ST( 'e',   3,      547,     0 ), /*   546 manycasts         */
+  S_ST( 'r',   3,      548,     0 ), /*   547 manycastse        */
+  S_ST( 'v',   3,      549,     0 ), /*   548 manycastser       */
+  S_ST( 'e',   3,      347,     0 ), /*   549 manycastserv      */
+  S_ST( 's',   3,      348,   534 ), /*   550 ma                */
+  S_ST( 'x',   3,      566,   550 ), /*   551 ma                */
+  S_ST( 'a',   3,      553,     0 ), /*   552 max               */
+  S_ST( 'g',   3,      349,     0 ), /*   553 maxa              */
+  S_ST( 'c',   3,      555,   552 ), /*   554 max               */
+  S_ST( 'l',   3,      556,     0 ), /*   555 maxc              */
+  S_ST( 'o',   3,      557,     0 ), /*   556 maxcl             */
+  S_ST( 'c',   3,      350,     0 ), /*   557 maxclo            */
+  S_ST( 'd',   3,      562,   554 ), /*   558 max               */
+  S_ST( 'e',   3,      560,     0 ), /*   559 maxd              */
+  S_ST( 'p',   3,      561,     0 ), /*   560 maxde             */
+  S_ST( 't',   3,      351,     0 ), /*   561 maxdep            */
+  S_ST( 'i',   3,      563,   559 ), /*   562 maxd              */
+  S_ST( 's',   3,      352,     0 ), /*   563 maxdi             */
+  S_ST( 'm',   3,      565,   558 ), /*   564 max               */
+  S_ST( 'e',   3,      353,     0 ), /*   565 maxm              */
+  S_ST( 'p',   3,      567,   564 ), /*   566 max               */
+  S_ST( 'o',   3,      568,     0 ), /*   567 maxp              */
+  S_ST( 'l',   3,      354,     0 ), /*   568 maxpo             */
+  S_ST( 'd',   3,      570,   533 ), /*   569 m                 */
+  S_ST( 'n',   3,      571,     0 ), /*   570 md                */
+  S_ST( 's',   3,      572,     0 ), /*   571 mdn               */
+  S_ST( 't',   3,      573,     0 ), /*   572 mdns              */
+  S_ST( 'r',   3,      574,     0 ), /*   573 mdnst             */
+  S_ST( 'i',   3,      575,     0 ), /*   574 mdnstr            */
+  S_ST( 'e',   3,      355,     0 ), /*   575 mdnstri           */
+  S_ST( 'e',   3,      356,   569 ), /*   576 m                 */
+  S_ST( 'l',   3,      578,     0 ), /*   577 mem               */
+  S_ST( 'o',   3,      579,     0 ), /*   578 meml              */
+  S_ST( 'c',   3,      357,     0 ), /*   579 memlo             */
+  S_ST( 'i',   3,      581,   576 ), /*   580 m                 */
+  S_ST( 'n',   3,      603,     0 ), /*   581 mi                */
+  S_ST( 'c',   3,      583,     0 ), /*   582 min               */
+  S_ST( 'l',   3,      584,     0 ), /*   583 minc              */
+  S_ST( 'o',   3,      585,     0 ), /*   584 mincl             */
+  S_ST( 'c',   3,      358,     0 ), /*   585 minclo            */
+  S_ST( 'd',   3,      590,   582 ), /*   586 min               */
+  S_ST( 'e',   3,      588,     0 ), /*   587 mind              */
+  S_ST( 'p',   3,      589,     0 ), /*   588 minde             */
+  S_ST( 't',   3,      359,     0 ), /*   589 mindep            */
+  S_ST( 'i',   3,      591,   587 ), /*   590 mind              */
+  S_ST( 's',   3,      360,     0 ), /*   591 mindi             */
+  S_ST( 'i',   3,      593,   586 ), /*   592 min               */
+  S_ST( 'm',   3,      594,     0 ), /*   593 mini              */
+  S_ST( 'u',   3,      361,     0 ), /*   594 minim             */
+  S_ST( 'j',   3,      596,   592 ), /*   595 min               */
+  S_ST( 'i',   3,      597,     0 ), /*   596 minj              */
+  S_ST( 't',   3,      598,     0 ), /*   597 minji             */
+  S_ST( 't',   3,      599,     0 ), /*   598 minjit            */
+  S_ST( 'e',   3,      362,     0 ), /*   599 minjitt           */
+  S_ST( 'p',   3,      601,   595 ), /*   600 min               */
+  S_ST( 'o',   3,      602,     0 ), /*   601 minp              */
+  S_ST( 'l',   3,      363,     0 ), /*   602 minpo             */
+  S_ST( 's',   3,      604,   600 ), /*   603 min               */
+  S_ST( 'a',   3,      605,     0 ), /*   604 mins              */
+  S_ST( 'n',   3,      364,     0 ), /*   605 minsa             */
+  S_ST( 'o',   3,      608,   580 ), /*   606 m                 */
+  S_ST( 'd',   3,      365,     0 ), /*   607 mo                */
+  S_ST( 'n',   3,      612,   607 ), /*   608 mo                */
+  S_ST( 'i',   3,      610,     0 ), /*   609 mon               */
+  S_ST( 't',   3,      611,     0 ), /*   610 moni              */
+  S_ST( 'o',   3,      367,     0 ), /*   611 monit             */
+  S_ST( 't',   3,      368,   609 ), /*   612 mon               */
+  S_ST( 'r',   3,      369,   606 ), /*   613 m                 */
+  S_ST( 's',   3,      615,   613 ), /*   614 m                 */
+  S_ST( 's',   3,      616,     0 ), /*   615 ms                */
+  S_ST( 'n',   3,      617,     0 ), /*   616 mss               */
+  S_ST( 't',   3,      370,     0 ), /*   617 mssn              */
+  S_ST( 'u',   3,      619,   614 ), /*   618 m                 */
+  S_ST( 'l',   3,      620,     0 ), /*   619 mu                */
+  S_ST( 't',   3,      621,     0 ), /*   620 mul               */
+  S_ST( 'i',   3,      622,     0 ), /*   621 mult              */
+  S_ST( 'c',   3,      623,     0 ), /*   622 multi             */
+  S_ST( 'a',   3,      624,     0 ), /*   623 multic            */
+  S_ST( 's',   3,      625,     0 ), /*   624 multica           */
+  S_ST( 't',   3,      626,     0 ), /*   625 multicas          */
+  S_ST( 'c',   3,      627,     0 ), /*   626 multicast         */
+  S_ST( 'l',   3,      628,     0 ), /*   627 multicastc        */
+  S_ST( 'i',   3,      629,     0 ), /*   628 multicastcl       */
+  S_ST( 'e',   3,      630,     0 ), /*   629 multicastcli      */
+  S_ST( 'n',   3,      371,     0 ), /*   630 multicastclie     */
+  S_ST( 'n',   3,      678,   532 ), /*   631                   */
+  S_ST( 'i',   3,      372,     0 ), /*   632 n                 */
+  S_ST( 'o',   3,      673,   632 ), /*   633 n                 */
+  S_ST( 'e',   3,      635,     0 ), /*   634 no                */
+  S_ST( 'p',   3,      636,     0 ), /*   635 noe               */
+  S_ST( 'e',   3,      637,     0 ), /*   636 noep              */
+  S_ST( 'e',   3,      378,     0 ), /*   637 noepe             */
+  S_ST( 'l',   3,      639,   634 ), /*   638 no                */
+  S_ST( 'i',   3,      640,     0 ), /*   639 nol               */
+  S_ST( 'n',   3,      373,     0 ), /*   640 noli              */
+  S_ST( 'm',   3,      646,   638 ), /*   641 no                */
+  S_ST( 'o',   3,      643,     0 ), /*   642 nom               */
+  S_ST( 'd',   3,      644,     0 ), /*   643 nomo              */
+  S_ST( 'i',   3,      645,     0 ), /*   644 nomod             */
+  S_ST( 'f',   3,      374,     0 ), /*   645 nomodi            */
+  S_ST( 'r',   3,      647,   642 ), /*   646 nom               */
+  S_ST( 'u',   3,      648,     0 ), /*   647 nomr              */
+  S_ST( 'l',   3,      649,     0 ), /*   648 nomru             */
+  S_ST( 'i',   3,      650,     0 ), /*   649 nomrul            */
+  S_ST( 's',   3,      375,     0 ), /*   650 nomruli           */
+  S_ST( 'n',   3,      652,   641 ), /*   651 no                */
+  S_ST( 'v',   3,      653,   376 ), /*   652 non               */
+  S_ST( 'o',   3,      654,     0 ), /*   653 nonv              */
+  S_ST( 'l',   3,      655,     0 ), /*   654 nonvo             */
+  S_ST( 'a',   3,      656,     0 ), /*   655 nonvol            */
+  S_ST( 't',   3,      657,     0 ), /*   656 nonvola           */
+  S_ST( 'i',   3,      658,     0 ), /*   657 nonvolat          */
+  S_ST( 'l',   3,      377,     0 ), /*   658 nonvolati         */
+  S_ST( 'p',   3,      660,   651 ), /*   659 no                */
+  S_ST( 'e',   3,      661,     0 ), /*   660 nop               */
+  S_ST( 'e',   3,      379,     0 ), /*   661 nope              */
+  S_ST( 'q',   3,      663,   659 ), /*   662 no                */
+  S_ST( 'u',   3,      664,     0 ), /*   663 noq               */
+  S_ST( 'e',   3,      665,     0 ), /*   664 noqu              */
+  S_ST( 'r',   3,      380,     0 ), /*   665 noque             */
+  S_ST( 's',   3,      667,   662 ), /*   666 no                */
+  S_ST( 'e',   3,      671,     0 ), /*   667 nos               */
+  S_ST( 'l',   3,      669,     0 ), /*   668 nose              */
+  S_ST( 'e',   3,      670,     0 ), /*   669 nosel             */
+  S_ST( 'c',   3,      381,     0 ), /*   670 nosele            */
+  S_ST( 'r',   3,      672,   668 ), /*   671 nose              */
+  S_ST( 'v',   3,      382,     0 ), /*   672 noser             */
+  S_ST( 't',   3,      674,   666 ), /*   673 no                */
+  S_ST( 'r',   3,      676,     0 ), /*   674 not               */
+  S_ST( 'a',   3,      383,     0 ), /*   675 notr              */
+  S_ST( 'u',   3,      677,   675 ), /*   676 notr              */
+  S_ST( 's',   3,      384,     0 ), /*   677 notru             */
+  S_ST( 't',   3,      385,   633 ), /*   678 n                 */
+  S_ST( 'p',   3,      680,     0 ), /*   679 ntp               */
+  S_ST( 'o',   3,      681,     0 ), /*   680 ntpp              */
+  S_ST( 'r',   3,      386,     0 ), /*   681 ntppo             */
+  S_ST( 's',   3,      683,   679 ), /*   682 ntp               */
+  S_ST( 'i',   3,      684,     0 ), /*   683 ntps              */
+  S_ST( 'g',   3,      685,     0 ), /*   684 ntpsi             */
+  S_ST( 'n',   3,      686,     0 ), /*   685 ntpsig            */
+  S_ST( 'd',   3,      687,     0 ), /*   686 ntpsign           */
+  S_ST( 's',   3,      688,     0 ), /*   687 ntpsignd          */
+  S_ST( 'o',   3,      689,     0 ), /*   688 ntpsignds         */
+  S_ST( 'c',   3,      690,     0 ), /*   689 ntpsigndso        */
+  S_ST( 'k',   3,      691,     0 ), /*   690 ntpsigndsoc       */
+  S_ST( 'e',   3,      387,     0 ), /*   691 ntpsigndsock      */
+  S_ST( 'o',   3,      693,   631 ), /*   692                   */
+  S_ST( 'r',   3,      694,     0 ), /*   693 o                 */
+  S_ST( 'p',   3,      695,     0 ), /*   694 or                */
+  S_ST( 'h',   3,      696,     0 ), /*   695 orp               */
+  S_ST( 'a',   3,      388,     0 ), /*   696 orph              */
+  S_ST( 'w',   3,      698,     0 ), /*   697 orphan            */
+  S_ST( 'a',   3,      699,     0 ), /*   698 orphanw           */
+  S_ST( 'i',   3,      389,     0 ), /*   699 orphanwa          */
+  S_ST( 'p',   3,      405,   692 ), /*   700                   */
+  S_ST( 'a',   3,      702,     0 ), /*   701 p                 */
+  S_ST( 'n',   3,      703,     0 ), /*   702 pa                */
+  S_ST( 'i',   3,      391,     0 ), /*   703 pan               */
+  S_ST( 'e',   3,      705,   701 ), /*   704 p                 */
+  S_ST( 'e',   3,      392,     0 ), /*   705 pe                */
+  S_ST( '_',   3,      707,     0 ), /*   706 peer              */
+  S_ST( 'c',   3,      708,     0 ), /*   707 peer_             */
+  S_ST( 'l',   3,      709,     0 ), /*   708 peer_c            */
+  S_ST( 'e',   3,      710,     0 ), /*   709 peer_cl           */
+  S_ST( 'a',   3,      711,     0 ), /*   710 peer_cle          */
+  S_ST( 'r',   3,      712,     0 ), /*   711 peer_clea         */
+  S_ST( '_',   3,      713,     0 ), /*   712 peer_clear        */
+  S_ST( 'd',   3,      714,     0 ), /*   713 peer_clear_       */
+  S_ST( 'i',   3,      715,     0 ), /*   714 peer_clear_d      */
+  S_ST( 'g',   3,      716,     0 ), /*   715 peer_clear_di     */
+  S_ST( 'e',   3,      717,     0 ), /*   716 peer_clear_dig    */
+  S_ST( 's',   3,      718,     0 ), /*   717 peer_clear_dige   */
+  S_ST( 't',   3,      719,     0 ), /*   718 peer_clear_diges  */
+  S_ST( '_',   3,      720,     0 ), /*   719 peer_clear_digest */
+  S_ST( 'e',   3,      721,     0 ), /*   720 peer_clear_digest_ */
+  S_ST( 'a',   3,      722,     0 ), /*   721 peer_clear_digest_e */
+  S_ST( 'r',   3,      723,     0 ), /*   722 peer_clear_digest_ea */
+  S_ST( 'l',   3,      390,     0 ), /*   723 peer_clear_digest_ear */
+  S_ST( 's',   3,      725,   706 ), /*   724 peer              */
+  S_ST( 't',   3,      726,     0 ), /*   725 peers             */
+  S_ST( 'a',   3,      727,     0 ), /*   726 peerst            */
+  S_ST( 't',   3,      393,     0 ), /*   727 peersta           */
+  S_ST( 'h',   3,      729,   704 ), /*   728 p                 */
+  S_ST( 'o',   3,      730,     0 ), /*   729 ph                */
+  S_ST( 'n',   3,      394,     0 ), /*   730 pho               */
+  S_ST( 'i',   3,      395,   728 ), /*   731 p                 */
+  S_ST( 'f',   3,      733,     0 ), /*   732 pid               */
+  S_ST( 'i',   3,      734,     0 ), /*   733 pidf              */
+  S_ST( 'l',   3,      396,     0 ), /*   734 pidfi             */
+  S_ST( 'o',   3,      745,   731 ), /*   735 p                 */
+  S_ST( 'l',   3,      397,     0 ), /*   736 po                */
+  S_ST( 's',   3,      738,     0 ), /*   737 poll              */
+  S_ST( 'k',   3,      739,     0 ), /*   738 polls             */
+  S_ST( 'e',   3,      740,     0 ), /*   739 pollsk            */
+  S_ST( 'w',   3,      741,     0 ), /*   740 pollske           */
+  S_ST( 'l',   3,      742,     0 ), /*   741 pollskew          */
+  S_ST( 'i',   3,      743,     0 ), /*   742 pollskewl         */
+  S_ST( 's',   3,      398,     0 ), /*   743 pollskewli        */
+  S_ST( 'o',   3,      399,   736 ), /*   744 po                */
+  S_ST( 'r',   3,      400,   744 ), /*   745 po                */
+  S_ST( 'p',   3,      747,   735 ), /*   746 p                 */
+  S_ST( 's',   3,      748,     0 ), /*   747 pp                */
+  S_ST( 'd',   3,      749,     0 ), /*   748 pps               */
+  S_ST( 'a',   3,      750,     0 ), /*   749 ppsd              */
+  S_ST( 't',   3,      401,     0 ), /*   750 ppsda             */
+  S_ST( 'r',   3,      758,   746 ), /*   751 p                 */
+  S_ST( 'e',   3,      756,     0 ), /*   752 pr                */
+  S_ST( 'e',   3,      754,     0 ), /*   753 pre               */
+  S_ST( 'm',   3,      755,     0 ), /*   754 pree              */
+  S_ST( 'p',   3,      402,     0 ), /*   755 preem             */
+  S_ST( 'f',   3,      757,   753 ), /*   756 pre               */
+  S_ST( 'e',   3,      403,     0 ), /*   757 pref              */
+  S_ST( 'o',   3,      771,   752 ), /*   758 pr                */
+  S_ST( 'c',   3,      760,     0 ), /*   759 pro               */
+  S_ST( '_',   3,      761,     0 ), /*   760 proc              */
+  S_ST( 'd',   3,      762,     0 ), /*   761 proc_             */
+  S_ST( 'e',   3,      763,     0 ), /*   762 proc_d            */
+  S_ST( 'l',   3,      764,     0 ), /*   763 proc_de           */
+  S_ST( 'a',   3,      469,     0 ), /*   764 proc_del          */
+  S_ST( 'p',   3,      766,   759 ), /*   765 pro               */
+  S_ST( '_',   3,      767,     0 ), /*   766 prop              */
+  S_ST( 'd',   3,      768,     0 ), /*   767 prop_             */
+  S_ST( 'e',   3,      769,     0 ), /*   768 prop_d            */
+  S_ST( 'l',   3,      770,     0 ), /*   769 prop_de           */
+  S_ST( 'a',   3,      468,     0 ), /*   770 prop_del          */
+  S_ST( 't',   3,      772,   765 ), /*   771 pro               */
+  S_ST( 'o',   3,      773,     0 ), /*   772 prot              */
+  S_ST( 's',   3,      774,     0 ), /*   773 proto             */
+  S_ST( 't',   3,      775,     0 ), /*   774 protos            */
+  S_ST( 'a',   3,      776,     0 ), /*   775 protost           */
+  S_ST( 't',   3,      404,     0 ), /*   776 protosta          */
+  S_ST( 'r',   3,      808,   700 ), /*   777                   */
+  S_ST( 'a',   3,      784,     0 ), /*   778 r                 */
+  S_ST( 'n',   3,      780,     0 ), /*   779 ra                */
+  S_ST( 'd',   3,      781,     0 ), /*   780 ran               */
+  S_ST( 'f',   3,      782,     0 ), /*   781 rand              */
+  S_ST( 'i',   3,      783,     0 ), /*   782 randf             */
+  S_ST( 'l',   3,      406,     0 ), /*   783 randfi            */
+  S_ST( 'w',   3,      785,   779 ), /*   784 ra                */
+  S_ST( 's',   3,      786,     0 ), /*   785 raw               */
+  S_ST( 't',   3,      787,     0 ), /*   786 raws              */
+  S_ST( 'a',   3,      788,     0 ), /*   787 rawst             */
+  S_ST( 't',   3,      407,     0 ), /*   788 rawsta            */
+  S_ST( 'e',   3,      805,   778 ), /*   789 r                 */
+  S_ST( 'f',   3,      791,     0 ), /*   790 re                */
+  S_ST( 'i',   3,      408,     0 ), /*   791 ref               */
+  S_ST( 'q',   3,      793,   790 ), /*   792 re                */
+  S_ST( 'u',   3,      794,     0 ), /*   793 req               */
+  S_ST( 'e',   3,      795,     0 ), /*   794 requ              */
+  S_ST( 's',   3,      796,     0 ), /*   795 reque             */
+  S_ST( 't',   3,      797,     0 ), /*   796 reques            */
+  S_ST( 'k',   3,      798,     0 ), /*   797 request           */
+  S_ST( 'e',   3,      409,     0 ), /*   798 requestk          */
+  S_ST( 's',   3,      801,   792 ), /*   799 re                */
+  S_ST( 'e',   3,      410,     0 ), /*   800 res               */
+  S_ST( 't',   3,      802,   800 ), /*   801 res               */
+  S_ST( 'r',   3,      803,     0 ), /*   802 rest              */
+  S_ST( 'i',   3,      804,     0 ), /*   803 restr             */
+  S_ST( 'c',   3,      411,     0 ), /*   804 restri            */
+  S_ST( 'v',   3,      806,   799 ), /*   805 re                */
+  S_ST( 'o',   3,      807,     0 ), /*   806 rev               */
+  S_ST( 'k',   3,      412,     0 ), /*   807 revo              */
+  S_ST( 'l',   3,      809,   789 ), /*   808 r                 */
+  S_ST( 'i',   3,      810,     0 ), /*   809 rl                */
+  S_ST( 'm',   3,      811,     0 ), /*   810 rli               */
+  S_ST( 'i',   3,      413,     0 ), /*   811 rlim              */
+  S_ST( 's',   3,      892,   777 ), /*   812                   */
+  S_ST( 'a',   3,      814,     0 ), /*   813 s                 */
+  S_ST( 'v',   3,      815,     0 ), /*   814 sa                */
+  S_ST( 'e',   3,      816,     0 ), /*   815 sav               */
+  S_ST( 'c',   3,      817,     0 ), /*   816 save              */
+  S_ST( 'o',   3,      818,     0 ), /*   817 savec             */
+  S_ST( 'n',   3,      819,     0 ), /*   818 saveco            */
+  S_ST( 'f',   3,      820,     0 ), /*   819 savecon           */
+  S_ST( 'i',   3,      821,     0 ), /*   820 saveconf          */
+  S_ST( 'g',   3,      822,     0 ), /*   821 saveconfi         */
+  S_ST( 'd',   3,      823,     0 ), /*   822 saveconfig        */
+  S_ST( 'i',   3,      414,     0 ), /*   823 saveconfigd       */
+  S_ST( 'e',   3,      841,   813 ), /*   824 s                 */
+  S_ST( 'r',   3,      826,     0 ), /*   825 se                */
+  S_ST( 'v',   3,      827,     0 ), /*   826 ser               */
+  S_ST( 'e',   3,      415,     0 ), /*   827 serv              */
+  S_ST( '_',   3,      829,     0 ), /*   828 server            */
+  S_ST( 'o',   3,      830,     0 ), /*   829 server_           */
+  S_ST( 'f',   3,      831,     0 ), /*   830 server_o          */
+  S_ST( 'f',   3,      832,     0 ), /*   831 server_of         */
+  S_ST( 's',   3,      833,     0 ), /*   832 server_off        */
+  S_ST( 'e',   3,      463,     0 ), /*   833 server_offs       */
+  S_ST( 'r',   3,      835,   828 ), /*   834 server            */
+  S_ST( 'e',   3,      836,     0 ), /*   835 serverr           */
+  S_ST( 's',   3,      837,     0 ), /*   836 serverre          */
+  S_ST( 'p',   3,      838,     0 ), /*   837 serverres         */
+  S_ST( 'o',   3,      839,     0 ), /*   838 serverresp        */
+  S_ST( 'n',   3,      840,     0 ), /*   839 serverrespo       */
+  S_ST( 's',   3,      416,     0 ), /*   840 serverrespon      */
+  S_ST( 't',   3,      842,   825 ), /*   841 se                */
+  S_ST( 'v',   3,      843,     0 ), /*   842 set               */
+  S_ST( 'a',   3,      418,     0 ), /*   843 setv              */
+  S_ST( 'i',   3,      845,   824 ), /*   844 s                 */
+  S_ST( 'm',   3,      846,     0 ), /*   845 si                */
+  S_ST( 'u',   3,      847,     0 ), /*   846 sim               */
+  S_ST( 'l',   3,      848,     0 ), /*   847 simu              */
+  S_ST( 'a',   3,      849,     0 ), /*   848 simul             */
+  S_ST( 't',   3,      850,     0 ), /*   849 simula            */
+  S_ST( 'i',   3,      851,   460 ), /*   850 simulat           */
+  S_ST( 'o',   3,      852,     0 ), /*   851 simulati          */
+  S_ST( 'n',   3,      853,     0 ), /*   852 simulatio         */
+  S_ST( '_',   3,      854,     0 ), /*   853 simulation        */
+  S_ST( 'd',   3,      855,     0 ), /*   854 simulation_       */
+  S_ST( 'u',   3,      856,     0 ), /*   855 simulation_d      */
+  S_ST( 'r',   3,      857,     0 ), /*   856 simulation_du     */
+  S_ST( 'a',   3,      858,     0 ), /*   857 simulation_dur    */
+  S_ST( 't',   3,      859,     0 ), /*   858 simulation_dura   */
+  S_ST( 'i',   3,      860,     0 ), /*   859 simulation_durat  */
+  S_ST( 'o',   3,      462,     0 ), /*   860 simulation_durati */
+  S_ST( 'o',   3,      862,   844 ), /*   861 s                 */
+  S_ST( 'u',   3,      863,     0 ), /*   862 so                */
+  S_ST( 'r',   3,      864,     0 ), /*   863 sou               */
+  S_ST( 'c',   3,      419,     0 ), /*   864 sour              */
+  S_ST( 't',   3,      888,   861 ), /*   865 s                 */
+  S_ST( 'a',   3,      872,     0 ), /*   866 st                */
+  S_ST( 'c',   3,      868,     0 ), /*   867 sta               */
+  S_ST( 'k',   3,      869,     0 ), /*   868 stac              */
+  S_ST( 's',   3,      870,     0 ), /*   869 stack             */
+  S_ST( 'i',   3,      871,     0 ), /*   870 stacks            */
+  S_ST( 'z',   3,      420,     0 ), /*   871 stacksi           */
+  S_ST( 't',   3,      422,   867 ), /*   872 sta               */
+  S_ST( 'i',   3,      874,     0 ), /*   873 stat              */
+  S_ST( 's',   3,      875,     0 ), /*   874 stati             */
+  S_ST( 't',   3,      876,     0 ), /*   875 statis            */
+  S_ST( 'i',   3,      877,     0 ), /*   876 statist           */
+  S_ST( 'c',   3,      421,     0 ), /*   877 statisti          */
+  S_ST( 'd',   3,      879,     0 ), /*   878 stats             */
+  S_ST( 'i',   3,      423,     0 ), /*   879 statsd            */
+  S_ST( 'e',   3,      424,   866 ), /*   880 st                */
+  S_ST( 'b',   3,      882,     0 ), /*   881 step              */
+  S_ST( 'a',   3,      883,     0 ), /*   882 stepb             */
+  S_ST( 'c',   3,      425,     0 ), /*   883 stepba            */
+  S_ST( 'f',   3,      885,   881 ), /*   884 step              */
+  S_ST( 'w',   3,      426,     0 ), /*   885 stepf             */
+  S_ST( 'o',   3,      887,   884 ), /*   886 step              */
+  S_ST( 'u',   3,      427,     0 ), /*   887 stepo             */
+  S_ST( 'r',   3,      889,   880 ), /*   888 st                */
+  S_ST( 'a',   3,      890,     0 ), /*   889 str               */
+  S_ST( 't',   3,      891,     0 ), /*   890 stra              */
+  S_ST( 'u',   3,      428,     0 ), /*   891 strat             */
+  S_ST( 'y',   3,      430,   865 ), /*   892 s                 */
+  S_ST( 's',   3,      894,     0 ), /*   893 sys               */
+  S_ST( 't',   3,      895,     0 ), /*   894 syss              */
+  S_ST( 'a',   3,      896,     0 ), /*   895 sysst             */
+  S_ST( 't',   3,      431,     0 ), /*   896 syssta            */
+  S_ST( 't',   3,      926,   812 ), /*   897                   */
+  S_ST( 'i',   3,      912,     0 ), /*   898 t                 */
+  S_ST( 'c',   3,      432,     0 ), /*   899 ti                */
+  S_ST( 'm',   3,      905,   899 ), /*   900 ti                */
+  S_ST( 'e',   3,      436,     0 ), /*   901 tim               */
+  S_ST( 'd',   3,      903,   434 ), /*   902 time              */
+  S_ST( 'a',   3,      904,     0 ), /*   903 timed             */
+  S_ST( 't',   3,      435,     0 ), /*   904 timeda            */
+  S_ST( 'i',   3,      906,   901 ), /*   905 tim               */
+  S_ST( 'n',   3,      907,     0 ), /*   906 timi              */
+  S_ST( 'g',   3,      908,     0 ), /*   907 timin             */
+  S_ST( 's',   3,      909,     0 ), /*   908 timing            */
+  S_ST( 't',   3,      910,     0 ), /*   909 timings           */
+  S_ST( 'a',   3,      911,     0 ), /*   910 timingst          */
+  S_ST( 't',   3,      437,     0 ), /*   911 timingsta         */
+  S_ST( 'n',   3,      913,   900 ), /*   912 ti                */
+  S_ST( 'k',   3,      914,     0 ), /*   913 tin               */
+  S_ST( 'e',   3,      438,     0 ), /*   914 tink              */
+  S_ST( 'o',   3,      439,   898 ), /*   915 t                 */
+  S_ST( 'r',   3,      918,   915 ), /*   916 t                 */
+  S_ST( 'a',   3,      440,     0 ), /*   917 tr                */
+  S_ST( 'u',   3,      919,   917 ), /*   918 tr                */
+  S_ST( 's',   3,      920,   441 ), /*   919 tru               */
+  S_ST( 't',   3,      921,     0 ), /*   920 trus              */
+  S_ST( 'e',   3,      922,     0 ), /*   921 trust             */
+  S_ST( 'd',   3,      923,     0 ), /*   922 truste            */
+  S_ST( 'k',   3,      924,     0 ), /*   923 trusted           */
+  S_ST( 'e',   3,      442,     0 ), /*   924 trustedk          */
+  S_ST( 't',   3,      443,   916 ), /*   925 t                 */
+  S_ST( 'y',   3,      927,   925 ), /*   926 t                 */
+  S_ST( 'p',   3,      444,     0 ), /*   927 ty                */
+  S_ST( 'u',   3,      929,   897 ), /*   928                   */
+  S_ST( 'n',   3,      935,     0 ), /*   929 u                 */
+  S_ST( 'c',   3,      931,     0 ), /*   930 un                */
+  S_ST( 'o',   3,      932,     0 ), /*   931 unc               */
+  S_ST( 'n',   3,      933,     0 ), /*   932 unco              */
+  S_ST( 'f',   3,      934,     0 ), /*   933 uncon             */
+  S_ST( 'i',   3,      449,     0 ), /*   934 unconf            */
+  S_ST( 'p',   3,      936,   930 ), /*   935 un                */
+  S_ST( 'e',   3,      937,     0 ), /*   936 unp               */
+  S_ST( 'e',   3,      450,     0 ), /*   937 unpe              */
+  S_ST( '_',   3,      958,     0 ), /*   938 unpeer            */
+  S_ST( 'c',   3,      940,     0 ), /*   939 unpeer_           */
+  S_ST( 'r',   3,      941,     0 ), /*   940 unpeer_c          */
+  S_ST( 'y',   3,      942,     0 ), /*   941 unpeer_cr         */
+  S_ST( 'p',   3,      943,     0 ), /*   942 unpeer_cry        */
+  S_ST( 't',   3,      944,     0 ), /*   943 unpeer_cryp       */
+  S_ST( 'o',   3,      945,     0 ), /*   944 unpeer_crypt      */
+  S_ST( '_',   3,      950,     0 ), /*   945 unpeer_crypto     */
+  S_ST( 'e',   3,      947,     0 ), /*   946 unpeer_crypto_    */
+  S_ST( 'a',   3,      948,     0 ), /*   947 unpeer_crypto_e   */
+  S_ST( 'r',   3,      949,     0 ), /*   948 unpeer_crypto_ea  */
+  S_ST( 'l',   3,      446,     0 ), /*   949 unpeer_crypto_ear */
+  S_ST( 'n',   3,      951,   946 ), /*   950 unpeer_crypto_    */
+  S_ST( 'a',   3,      952,     0 ), /*   951 unpeer_crypto_n   */
+  S_ST( 'k',   3,      953,     0 ), /*   952 unpeer_crypto_na  */
+  S_ST( '_',   3,      954,     0 ), /*   953 unpeer_crypto_nak */
+  S_ST( 'e',   3,      955,     0 ), /*   954 unpeer_crypto_nak_ */
+  S_ST( 'a',   3,      956,     0 ), /*   955 unpeer_crypto_nak_e */
+  S_ST( 'r',   3,      957,     0 ), /*   956 unpeer_crypto_nak_ea */
+  S_ST( 'l',   3,      447,     0 ), /*   957 unpeer_crypto_nak_ear */
+  S_ST( 'd',   3,      959,   939 ), /*   958 unpeer_           */
+  S_ST( 'i',   3,      960,     0 ), /*   959 unpeer_d          */
+  S_ST( 'g',   3,      961,     0 ), /*   960 unpeer_di         */
+  S_ST( 'e',   3,      962,     0 ), /*   961 unpeer_dig        */
+  S_ST( 's',   3,      963,     0 ), /*   962 unpeer_dige       */
+  S_ST( 't',   3,      964,     0 ), /*   963 unpeer_diges      */
+  S_ST( '_',   3,      965,     0 ), /*   964 unpeer_digest     */
+  S_ST( 'e',   3,      966,     0 ), /*   965 unpeer_digest_    */
+  S_ST( 'a',   3,      967,     0 ), /*   966 unpeer_digest_e   */
+  S_ST( 'r',   3,      968,     0 ), /*   967 unpeer_digest_ea  */
+  S_ST( 'l',   3,      448,     0 ), /*   968 unpeer_digest_ear */
+  S_ST( 'v',   3,      970,   928 ), /*   969                   */
+  S_ST( 'e',   3,      971,     0 ), /*   970 v                 */
+  S_ST( 'r',   3,      972,     0 ), /*   971 ve                */
+  S_ST( 's',   3,      973,     0 ), /*   972 ver               */
+  S_ST( 'i',   3,      974,     0 ), /*   973 vers              */
+  S_ST( 'o',   3,      451,     0 ), /*   974 versi             */
+  S_ST( 'w',   3,      982,   969 ), /*   975                   */
+  S_ST( 'a',   3,      977,     0 ), /*   976 w                 */
+  S_ST( 'n',   3,      978,     0 ), /*   977 wa                */
+  S_ST( 'd',   3,      979,     0 ), /*   978 wan               */
+  S_ST( 'e',   3,      466,     0 ), /*   979 wand              */
+  S_ST( 'e',   3,      981,   976 ), /*   980 w                 */
+  S_ST( 'e',   3,      453,     0 ), /*   981 we                */
+  S_ST( 'i',   3,      983,   980 ), /*   982 w                 */
+  S_ST( 'l',   3,      984,     0 ), /*   983 wi                */
+  S_ST( 'd',   3,      985,     0 ), /*   984 wil               */
+  S_ST( 'c',   3,      986,     0 ), /*   985 wild              */
+  S_ST( 'a',   3,      987,     0 ), /*   986 wildc             */
+  S_ST( 'r',   3,      454,     0 ), /*   987 wildca            */
+  S_ST( 'x',   3,      993,   975 ), /*   988                   */
+  S_ST( 'l',   3,      990,     0 ), /*   989 x                 */
+  S_ST( 'e',   3,      991,     0 ), /*   990 xl                */
+  S_ST( 'a',   3,      992,     0 ), /*   991 xle               */
+  S_ST( 'v',   3,      455,     0 ), /*   992 xlea              */
+  S_ST( 'm',   3,      994,   989 ), /*   993 x                 */
+  S_ST( 't',   3,      995,     0 ), /*   994 xm                */
+  S_ST( 'n',   3,      996,     0 ), /*   995 xmt               */
+  S_ST( 'o',   3,      997,     0 ), /*   996 xmtn              */
+  S_ST( 'n',   3,      998,     0 ), /*   997 xmtno             */
+  S_ST( 'c',   3,      456,     0 ), /*   998 xmtnon            */
+  S_ST( 'y',   3,     1000,   988 ), /*   999 [initial state]   */
+  S_ST( 'e',   3,     1001,     0 ), /*  1000 y                 */
+  S_ST( 'a',   3,      457,     0 )  /*  1001 ye                */
 };
 
index dfaa8db24cc19553115bba36897de8f399e8296c..591593d1f82e33269ae4b82522228d3c8b90e643 100644 (file)
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.7.6.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+   Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -15,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
 /* C LALR(1) parser skeleton written by Richard Stallman, by
    simplifying the original so-called "semantic" parser.  */
 
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+   especially those whose name start with YY_ or yy_.  They are
+   private implementation details that can be changed or removed.  */
+
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
    variables, as they might otherwise be expanded by user macros.
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
-/* Identify Bison output.  */
-#define YYBISON 1
+/* Identify Bison output, and Bison version.  */
+#define YYBISON 30706
 
-/* Bison version.  */
-#define YYBISON_VERSION "3.0.4"
+/* Bison version string.  */
+#define YYBISON_VERSION "3.7.6"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -61,8 +66,8 @@
 
 
 
-/* Copy the first part of user declarations.  */
-#line 11 "../../ntpd/ntp_parser.y" /* yacc.c:339  */
+/* First part of user prologue.  */
+#line 11 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
 
   #ifdef HAVE_CONFIG_H
   # include <config.h>
   #  define ONLY_SIM(a)        NULL
   #endif
 
-#line 101 "../../ntpd/ntp_parser.c" /* yacc.c:339  */
+#line 106 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
 
+# ifndef YY_CAST
+#  ifdef __cplusplus
+#   define YY_CAST(Type, Val) static_cast<Type> (Val)
+#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
+#  else
+#   define YY_CAST(Type, Val) ((Type) (Val))
+#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
+#  endif
+# endif
 # ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
+#  if defined __cplusplus
+#   if 201103L <= __cplusplus
+#    define YY_NULLPTR nullptr
+#   else
+#    define YY_NULLPTR 0
+#   endif
 #  else
-#   define YY_NULLPTR 0
+#   define YY_NULLPTR ((void*)0)
 #  endif
 # endif
 
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
-   by #include "y.tab.h".  */
-#ifndef YY_YY__NTPD_NTP_PARSER_H_INCLUDED
-# define YY_YY__NTPD_NTP_PARSER_H_INCLUDED
+/* Use api.header.include to #include this header
+   instead of duplicating it here.  */
+#ifndef YY_YY__SRC_NTP_STABLE_NTPD_NTP_PARSER_H_INCLUDED
+# define YY_YY__SRC_NTP_STABLE_NTPD_NTP_PARSER_H_INCLUDED
 /* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
 extern int yydebug;
 #endif
 
-/* Token type.  */
+/* Token kinds.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
   enum yytokentype
   {
-    T_Abbrev = 258,
-    T_Age = 259,
-    T_All = 260,
-    T_Allan = 261,
-    T_Allpeers = 262,
-    T_Auth = 263,
-    T_Autokey = 264,
-    T_Automax = 265,
-    T_Average = 266,
-    T_Basedate = 267,
-    T_Bclient = 268,
-    T_Bcpollbstep = 269,
-    T_Beacon = 270,
-    T_Broadcast = 271,
-    T_Broadcastclient = 272,
-    T_Broadcastdelay = 273,
-    T_Burst = 274,
-    T_Calibrate = 275,
-    T_Ceiling = 276,
-    T_Checkhash = 277,
-    T_Clockstats = 278,
-    T_Cohort = 279,
-    T_ControlKey = 280,
-    T_Crypto = 281,
-    T_Cryptostats = 282,
-    T_Ctl = 283,
-    T_Day = 284,
-    T_Default = 285,
-    T_Digest = 286,
-    T_Disable = 287,
-    T_Discard = 288,
-    T_Dispersion = 289,
-    T_Double = 290,
-    T_Driftfile = 291,
-    T_Drop = 292,
-    T_Dscp = 293,
-    T_Ellipsis = 294,
-    T_Enable = 295,
-    T_End = 296,
-    T_Epeer = 297,
-    T_False = 298,
-    T_File = 299,
-    T_Filegen = 300,
-    T_Filenum = 301,
-    T_Flag1 = 302,
-    T_Flag2 = 303,
-    T_Flag3 = 304,
-    T_Flag4 = 305,
-    T_Flake = 306,
-    T_Floor = 307,
-    T_Freq = 308,
-    T_Fudge = 309,
-    T_Fuzz = 310,
-    T_Host = 311,
-    T_Huffpuff = 312,
-    T_Iburst = 313,
-    T_Ident = 314,
-    T_Ignore = 315,
-    T_Ignorehash = 316,
-    T_Incalloc = 317,
-    T_Incmem = 318,
-    T_Initalloc = 319,
-    T_Initmem = 320,
-    T_Includefile = 321,
-    T_Integer = 322,
-    T_Interface = 323,
-    T_Intrange = 324,
-    T_Io = 325,
-    T_Ippeerlimit = 326,
-    T_Ipv4 = 327,
-    T_Ipv4_flag = 328,
-    T_Ipv6 = 329,
-    T_Ipv6_flag = 330,
-    T_Kernel = 331,
-    T_Key = 332,
-    T_Keys = 333,
-    T_Keysdir = 334,
-    T_Kod = 335,
-    T_Leapfile = 336,
-    T_Leapsmearinterval = 337,
-    T_Limited = 338,
-    T_Link = 339,
-    T_Listen = 340,
-    T_Logconfig = 341,
-    T_Logfile = 342,
-    T_Loopstats = 343,
-    T_Lowpriotrap = 344,
-    T_Manycastclient = 345,
-    T_Manycastserver = 346,
-    T_Mask = 347,
-    T_Maxage = 348,
-    T_Maxclock = 349,
-    T_Maxdepth = 350,
-    T_Maxdist = 351,
-    T_Maxmem = 352,
-    T_Maxpoll = 353,
-    T_Mdnstries = 354,
-    T_Mem = 355,
-    T_Memlock = 356,
-    T_Minclock = 357,
-    T_Mindepth = 358,
-    T_Mindist = 359,
-    T_Minimum = 360,
-    T_Minjitter = 361,
-    T_Minpoll = 362,
-    T_Minsane = 363,
-    T_Mode = 364,
-    T_Mode7 = 365,
-    T_Monitor = 366,
-    T_Month = 367,
-    T_Mru = 368,
-    T_Mssntp = 369,
-    T_Multicastclient = 370,
-    T_Nic = 371,
-    T_Nolink = 372,
-    T_Nomodify = 373,
-    T_Nomrulist = 374,
-    T_None = 375,
-    T_Nonvolatile = 376,
-    T_Noepeer = 377,
-    T_Nopeer = 378,
-    T_Noquery = 379,
-    T_Noselect = 380,
-    T_Noserve = 381,
-    T_Notrap = 382,
-    T_Notrust = 383,
-    T_Ntp = 384,
-    T_Ntpport = 385,
-    T_NtpSignDsocket = 386,
-    T_Orphan = 387,
-    T_Orphanwait = 388,
-    T_PCEdigest = 389,
-    T_Panic = 390,
-    T_Peer = 391,
-    T_Peerstats = 392,
-    T_Phone = 393,
-    T_Pid = 394,
-    T_Pidfile = 395,
-    T_Poll = 396,
-    T_PollSkewList = 397,
-    T_Pool = 398,
-    T_Port = 399,
-    T_Preempt = 400,
-    T_Prefer = 401,
-    T_Protostats = 402,
-    T_Pw = 403,
-    T_Randfile = 404,
-    T_Rawstats = 405,
-    T_Refid = 406,
-    T_Requestkey = 407,
-    T_Reset = 408,
-    T_Restrict = 409,
-    T_Revoke = 410,
-    T_Rlimit = 411,
-    T_Saveconfigdir = 412,
-    T_Server = 413,
-    T_Serverresponse = 414,
-    T_ServerresponseFuzz = 415,
-    T_Setvar = 416,
-    T_Source = 417,
-    T_Stacksize = 418,
-    T_Statistics = 419,
-    T_Stats = 420,
-    T_Statsdir = 421,
-    T_Step = 422,
-    T_Stepback = 423,
-    T_Stepfwd = 424,
-    T_Stepout = 425,
-    T_Stratum = 426,
-    T_String = 427,
-    T_Sys = 428,
-    T_Sysstats = 429,
-    T_Tick = 430,
-    T_Time1 = 431,
-    T_Time2 = 432,
-    T_Timer = 433,
-    T_Timingstats = 434,
-    T_Tinker = 435,
-    T_Tos = 436,
-    T_Trap = 437,
-    T_True = 438,
-    T_Trustedkey = 439,
-    T_Ttl = 440,
-    T_Type = 441,
-    T_U_int = 442,
-    T_UEcrypto = 443,
-    T_UEcryptonak = 444,
-    T_UEdigest = 445,
-    T_Unconfig = 446,
-    T_Unpeer = 447,
-    T_Version = 448,
-    T_WanderThreshold = 449,
-    T_Week = 450,
-    T_Wildcard = 451,
-    T_Xleave = 452,
-    T_Xmtnonce = 453,
-    T_Year = 454,
-    T_Flag = 455,
-    T_EOC = 456,
-    T_Simulate = 457,
-    T_Beep_Delay = 458,
-    T_Sim_Duration = 459,
-    T_Server_Offset = 460,
-    T_Duration = 461,
-    T_Freq_Offset = 462,
-    T_Wander = 463,
-    T_Jitter = 464,
-    T_Prop_Delay = 465,
-    T_Proc_Delay = 466
+    YYEMPTY = -2,
+    YYEOF = 0,                     /* "end of file"  */
+    YYerror = 256,                 /* error  */
+    YYUNDEF = 257,                 /* "invalid token"  */
+    T_Abbrev = 258,                /* T_Abbrev  */
+    T_Age = 259,                   /* T_Age  */
+    T_All = 260,                   /* T_All  */
+    T_Allan = 261,                 /* T_Allan  */
+    T_Allpeers = 262,              /* T_Allpeers  */
+    T_Auth = 263,                  /* T_Auth  */
+    T_Autokey = 264,               /* T_Autokey  */
+    T_Automax = 265,               /* T_Automax  */
+    T_Average = 266,               /* T_Average  */
+    T_Basedate = 267,              /* T_Basedate  */
+    T_Bclient = 268,               /* T_Bclient  */
+    T_Bcpollbstep = 269,           /* T_Bcpollbstep  */
+    T_Beacon = 270,                /* T_Beacon  */
+    T_Broadcast = 271,             /* T_Broadcast  */
+    T_Broadcastclient = 272,       /* T_Broadcastclient  */
+    T_Broadcastdelay = 273,        /* T_Broadcastdelay  */
+    T_Burst = 274,                 /* T_Burst  */
+    T_Calibrate = 275,             /* T_Calibrate  */
+    T_Ceiling = 276,               /* T_Ceiling  */
+    T_Checkhash = 277,             /* T_Checkhash  */
+    T_Clockstats = 278,            /* T_Clockstats  */
+    T_Cohort = 279,                /* T_Cohort  */
+    T_ControlKey = 280,            /* T_ControlKey  */
+    T_Crypto = 281,                /* T_Crypto  */
+    T_Cryptostats = 282,           /* T_Cryptostats  */
+    T_Ctl = 283,                   /* T_Ctl  */
+    T_Day = 284,                   /* T_Day  */
+    T_Default = 285,               /* T_Default  */
+    T_Device = 286,                /* T_Device  */
+    T_Digest = 287,                /* T_Digest  */
+    T_Disable = 288,               /* T_Disable  */
+    T_Discard = 289,               /* T_Discard  */
+    T_Dispersion = 290,            /* T_Dispersion  */
+    T_Double = 291,                /* T_Double  */
+    T_Driftfile = 292,             /* T_Driftfile  */
+    T_Drop = 293,                  /* T_Drop  */
+    T_Dscp = 294,                  /* T_Dscp  */
+    T_Ellipsis = 295,              /* T_Ellipsis  */
+    T_Enable = 296,                /* T_Enable  */
+    T_End = 297,                   /* T_End  */
+    T_Epeer = 298,                 /* T_Epeer  */
+    T_False = 299,                 /* T_False  */
+    T_File = 300,                  /* T_File  */
+    T_Filegen = 301,               /* T_Filegen  */
+    T_Filenum = 302,               /* T_Filenum  */
+    T_Flag1 = 303,                 /* T_Flag1  */
+    T_Flag2 = 304,                 /* T_Flag2  */
+    T_Flag3 = 305,                 /* T_Flag3  */
+    T_Flag4 = 306,                 /* T_Flag4  */
+    T_Flake = 307,                 /* T_Flake  */
+    T_Floor = 308,                 /* T_Floor  */
+    T_Freq = 309,                  /* T_Freq  */
+    T_Fudge = 310,                 /* T_Fudge  */
+    T_Fuzz = 311,                  /* T_Fuzz  */
+    T_Host = 312,                  /* T_Host  */
+    T_Huffpuff = 313,              /* T_Huffpuff  */
+    T_Iburst = 314,                /* T_Iburst  */
+    T_Ident = 315,                 /* T_Ident  */
+    T_Ignore = 316,                /* T_Ignore  */
+    T_Ignorehash = 317,            /* T_Ignorehash  */
+    T_Incalloc = 318,              /* T_Incalloc  */
+    T_Incmem = 319,                /* T_Incmem  */
+    T_Initalloc = 320,             /* T_Initalloc  */
+    T_Initmem = 321,               /* T_Initmem  */
+    T_Includefile = 322,           /* T_Includefile  */
+    T_Integer = 323,               /* T_Integer  */
+    T_Interface = 324,             /* T_Interface  */
+    T_Intrange = 325,              /* T_Intrange  */
+    T_Io = 326,                    /* T_Io  */
+    T_Ippeerlimit = 327,           /* T_Ippeerlimit  */
+    T_Ipv4 = 328,                  /* T_Ipv4  */
+    T_Ipv4_flag = 329,             /* T_Ipv4_flag  */
+    T_Ipv6 = 330,                  /* T_Ipv6  */
+    T_Ipv6_flag = 331,             /* T_Ipv6_flag  */
+    T_Kernel = 332,                /* T_Kernel  */
+    T_Key = 333,                   /* T_Key  */
+    T_Keys = 334,                  /* T_Keys  */
+    T_Keysdir = 335,               /* T_Keysdir  */
+    T_Kod = 336,                   /* T_Kod  */
+    T_Leapfile = 337,              /* T_Leapfile  */
+    T_Leapsmearinterval = 338,     /* T_Leapsmearinterval  */
+    T_Limited = 339,               /* T_Limited  */
+    T_Link = 340,                  /* T_Link  */
+    T_Listen = 341,                /* T_Listen  */
+    T_Logconfig = 342,             /* T_Logconfig  */
+    T_Logfile = 343,               /* T_Logfile  */
+    T_Loopstats = 344,             /* T_Loopstats  */
+    T_Lowpriotrap = 345,           /* T_Lowpriotrap  */
+    T_Manycastclient = 346,        /* T_Manycastclient  */
+    T_Manycastserver = 347,        /* T_Manycastserver  */
+    T_Mask = 348,                  /* T_Mask  */
+    T_Maxage = 349,                /* T_Maxage  */
+    T_Maxclock = 350,              /* T_Maxclock  */
+    T_Maxdepth = 351,              /* T_Maxdepth  */
+    T_Maxdist = 352,               /* T_Maxdist  */
+    T_Maxmem = 353,                /* T_Maxmem  */
+    T_Maxpoll = 354,               /* T_Maxpoll  */
+    T_Mdnstries = 355,             /* T_Mdnstries  */
+    T_Mem = 356,                   /* T_Mem  */
+    T_Memlock = 357,               /* T_Memlock  */
+    T_Minclock = 358,              /* T_Minclock  */
+    T_Mindepth = 359,              /* T_Mindepth  */
+    T_Mindist = 360,               /* T_Mindist  */
+    T_Minimum = 361,               /* T_Minimum  */
+    T_Minjitter = 362,             /* T_Minjitter  */
+    T_Minpoll = 363,               /* T_Minpoll  */
+    T_Minsane = 364,               /* T_Minsane  */
+    T_Mode = 365,                  /* T_Mode  */
+    T_Mode7 = 366,                 /* T_Mode7  */
+    T_Monitor = 367,               /* T_Monitor  */
+    T_Month = 368,                 /* T_Month  */
+    T_Mru = 369,                   /* T_Mru  */
+    T_Mssntp = 370,                /* T_Mssntp  */
+    T_Multicastclient = 371,       /* T_Multicastclient  */
+    T_Nic = 372,                   /* T_Nic  */
+    T_Nolink = 373,                /* T_Nolink  */
+    T_Nomodify = 374,              /* T_Nomodify  */
+    T_Nomrulist = 375,             /* T_Nomrulist  */
+    T_None = 376,                  /* T_None  */
+    T_Nonvolatile = 377,           /* T_Nonvolatile  */
+    T_Noepeer = 378,               /* T_Noepeer  */
+    T_Nopeer = 379,                /* T_Nopeer  */
+    T_Noquery = 380,               /* T_Noquery  */
+    T_Noselect = 381,              /* T_Noselect  */
+    T_Noserve = 382,               /* T_Noserve  */
+    T_Notrap = 383,                /* T_Notrap  */
+    T_Notrust = 384,               /* T_Notrust  */
+    T_Ntp = 385,                   /* T_Ntp  */
+    T_Ntpport = 386,               /* T_Ntpport  */
+    T_NtpSignDsocket = 387,        /* T_NtpSignDsocket  */
+    T_Orphan = 388,                /* T_Orphan  */
+    T_Orphanwait = 389,            /* T_Orphanwait  */
+    T_PCEdigest = 390,             /* T_PCEdigest  */
+    T_Panic = 391,                 /* T_Panic  */
+    T_Peer = 392,                  /* T_Peer  */
+    T_Peerstats = 393,             /* T_Peerstats  */
+    T_Phone = 394,                 /* T_Phone  */
+    T_Pid = 395,                   /* T_Pid  */
+    T_Pidfile = 396,               /* T_Pidfile  */
+    T_Poll = 397,                  /* T_Poll  */
+    T_PollSkewList = 398,          /* T_PollSkewList  */
+    T_Pool = 399,                  /* T_Pool  */
+    T_Port = 400,                  /* T_Port  */
+    T_PpsData = 401,               /* T_PpsData  */
+    T_Preempt = 402,               /* T_Preempt  */
+    T_Prefer = 403,                /* T_Prefer  */
+    T_Protostats = 404,            /* T_Protostats  */
+    T_Pw = 405,                    /* T_Pw  */
+    T_Randfile = 406,              /* T_Randfile  */
+    T_Rawstats = 407,              /* T_Rawstats  */
+    T_Refid = 408,                 /* T_Refid  */
+    T_Requestkey = 409,            /* T_Requestkey  */
+    T_Reset = 410,                 /* T_Reset  */
+    T_Restrict = 411,              /* T_Restrict  */
+    T_Revoke = 412,                /* T_Revoke  */
+    T_Rlimit = 413,                /* T_Rlimit  */
+    T_Saveconfigdir = 414,         /* T_Saveconfigdir  */
+    T_Server = 415,                /* T_Server  */
+    T_Serverresponse = 416,        /* T_Serverresponse  */
+    T_ServerresponseFuzz = 417,    /* T_ServerresponseFuzz  */
+    T_Setvar = 418,                /* T_Setvar  */
+    T_Source = 419,                /* T_Source  */
+    T_Stacksize = 420,             /* T_Stacksize  */
+    T_Statistics = 421,            /* T_Statistics  */
+    T_Stats = 422,                 /* T_Stats  */
+    T_Statsdir = 423,              /* T_Statsdir  */
+    T_Step = 424,                  /* T_Step  */
+    T_Stepback = 425,              /* T_Stepback  */
+    T_Stepfwd = 426,               /* T_Stepfwd  */
+    T_Stepout = 427,               /* T_Stepout  */
+    T_Stratum = 428,               /* T_Stratum  */
+    T_String = 429,                /* T_String  */
+    T_Sys = 430,                   /* T_Sys  */
+    T_Sysstats = 431,              /* T_Sysstats  */
+    T_Tick = 432,                  /* T_Tick  */
+    T_Time1 = 433,                 /* T_Time1  */
+    T_Time2 = 434,                 /* T_Time2  */
+    T_TimeData = 435,              /* T_TimeData  */
+    T_Timer = 436,                 /* T_Timer  */
+    T_Timingstats = 437,           /* T_Timingstats  */
+    T_Tinker = 438,                /* T_Tinker  */
+    T_Tos = 439,                   /* T_Tos  */
+    T_Trap = 440,                  /* T_Trap  */
+    T_True = 441,                  /* T_True  */
+    T_Trustedkey = 442,            /* T_Trustedkey  */
+    T_Ttl = 443,                   /* T_Ttl  */
+    T_Type = 444,                  /* T_Type  */
+    T_U_int = 445,                 /* T_U_int  */
+    T_UEcrypto = 446,              /* T_UEcrypto  */
+    T_UEcryptonak = 447,           /* T_UEcryptonak  */
+    T_UEdigest = 448,              /* T_UEdigest  */
+    T_Unconfig = 449,              /* T_Unconfig  */
+    T_Unpeer = 450,                /* T_Unpeer  */
+    T_Version = 451,               /* T_Version  */
+    T_WanderThreshold = 452,       /* T_WanderThreshold  */
+    T_Week = 453,                  /* T_Week  */
+    T_Wildcard = 454,              /* T_Wildcard  */
+    T_Xleave = 455,                /* T_Xleave  */
+    T_Xmtnonce = 456,              /* T_Xmtnonce  */
+    T_Year = 457,                  /* T_Year  */
+    T_Flag = 458,                  /* T_Flag  */
+    T_EOC = 459,                   /* T_EOC  */
+    T_Simulate = 460,              /* T_Simulate  */
+    T_Beep_Delay = 461,            /* T_Beep_Delay  */
+    T_Sim_Duration = 462,          /* T_Sim_Duration  */
+    T_Server_Offset = 463,         /* T_Server_Offset  */
+    T_Duration = 464,              /* T_Duration  */
+    T_Freq_Offset = 465,           /* T_Freq_Offset  */
+    T_Wander = 466,                /* T_Wander  */
+    T_Jitter = 467,                /* T_Jitter  */
+    T_Prop_Delay = 468,            /* T_Prop_Delay  */
+    T_Proc_Delay = 469             /* T_Proc_Delay  */
   };
+  typedef enum yytokentype yytoken_kind_t;
 #endif
-/* Tokens.  */
+/* Token kinds.  */
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYerror 256
+#define YYUNDEF 257
 #define T_Abbrev 258
 #define T_Age 259
 #define T_All 260
@@ -372,194 +394,196 @@ extern int yydebug;
 #define T_Ctl 283
 #define T_Day 284
 #define T_Default 285
-#define T_Digest 286
-#define T_Disable 287
-#define T_Discard 288
-#define T_Dispersion 289
-#define T_Double 290
-#define T_Driftfile 291
-#define T_Drop 292
-#define T_Dscp 293
-#define T_Ellipsis 294
-#define T_Enable 295
-#define T_End 296
-#define T_Epeer 297
-#define T_False 298
-#define T_File 299
-#define T_Filegen 300
-#define T_Filenum 301
-#define T_Flag1 302
-#define T_Flag2 303
-#define T_Flag3 304
-#define T_Flag4 305
-#define T_Flake 306
-#define T_Floor 307
-#define T_Freq 308
-#define T_Fudge 309
-#define T_Fuzz 310
-#define T_Host 311
-#define T_Huffpuff 312
-#define T_Iburst 313
-#define T_Ident 314
-#define T_Ignore 315
-#define T_Ignorehash 316
-#define T_Incalloc 317
-#define T_Incmem 318
-#define T_Initalloc 319
-#define T_Initmem 320
-#define T_Includefile 321
-#define T_Integer 322
-#define T_Interface 323
-#define T_Intrange 324
-#define T_Io 325
-#define T_Ippeerlimit 326
-#define T_Ipv4 327
-#define T_Ipv4_flag 328
-#define T_Ipv6 329
-#define T_Ipv6_flag 330
-#define T_Kernel 331
-#define T_Key 332
-#define T_Keys 333
-#define T_Keysdir 334
-#define T_Kod 335
-#define T_Leapfile 336
-#define T_Leapsmearinterval 337
-#define T_Limited 338
-#define T_Link 339
-#define T_Listen 340
-#define T_Logconfig 341
-#define T_Logfile 342
-#define T_Loopstats 343
-#define T_Lowpriotrap 344
-#define T_Manycastclient 345
-#define T_Manycastserver 346
-#define T_Mask 347
-#define T_Maxage 348
-#define T_Maxclock 349
-#define T_Maxdepth 350
-#define T_Maxdist 351
-#define T_Maxmem 352
-#define T_Maxpoll 353
-#define T_Mdnstries 354
-#define T_Mem 355
-#define T_Memlock 356
-#define T_Minclock 357
-#define T_Mindepth 358
-#define T_Mindist 359
-#define T_Minimum 360
-#define T_Minjitter 361
-#define T_Minpoll 362
-#define T_Minsane 363
-#define T_Mode 364
-#define T_Mode7 365
-#define T_Monitor 366
-#define T_Month 367
-#define T_Mru 368
-#define T_Mssntp 369
-#define T_Multicastclient 370
-#define T_Nic 371
-#define T_Nolink 372
-#define T_Nomodify 373
-#define T_Nomrulist 374
-#define T_None 375
-#define T_Nonvolatile 376
-#define T_Noepeer 377
-#define T_Nopeer 378
-#define T_Noquery 379
-#define T_Noselect 380
-#define T_Noserve 381
-#define T_Notrap 382
-#define T_Notrust 383
-#define T_Ntp 384
-#define T_Ntpport 385
-#define T_NtpSignDsocket 386
-#define T_Orphan 387
-#define T_Orphanwait 388
-#define T_PCEdigest 389
-#define T_Panic 390
-#define T_Peer 391
-#define T_Peerstats 392
-#define T_Phone 393
-#define T_Pid 394
-#define T_Pidfile 395
-#define T_Poll 396
-#define T_PollSkewList 397
-#define T_Pool 398
-#define T_Port 399
-#define T_Preempt 400
-#define T_Prefer 401
-#define T_Protostats 402
-#define T_Pw 403
-#define T_Randfile 404
-#define T_Rawstats 405
-#define T_Refid 406
-#define T_Requestkey 407
-#define T_Reset 408
-#define T_Restrict 409
-#define T_Revoke 410
-#define T_Rlimit 411
-#define T_Saveconfigdir 412
-#define T_Server 413
-#define T_Serverresponse 414
-#define T_ServerresponseFuzz 415
-#define T_Setvar 416
-#define T_Source 417
-#define T_Stacksize 418
-#define T_Statistics 419
-#define T_Stats 420
-#define T_Statsdir 421
-#define T_Step 422
-#define T_Stepback 423
-#define T_Stepfwd 424
-#define T_Stepout 425
-#define T_Stratum 426
-#define T_String 427
-#define T_Sys 428
-#define T_Sysstats 429
-#define T_Tick 430
-#define T_Time1 431
-#define T_Time2 432
-#define T_Timer 433
-#define T_Timingstats 434
-#define T_Tinker 435
-#define T_Tos 436
-#define T_Trap 437
-#define T_True 438
-#define T_Trustedkey 439
-#define T_Ttl 440
-#define T_Type 441
-#define T_U_int 442
-#define T_UEcrypto 443
-#define T_UEcryptonak 444
-#define T_UEdigest 445
-#define T_Unconfig 446
-#define T_Unpeer 447
-#define T_Version 448
-#define T_WanderThreshold 449
-#define T_Week 450
-#define T_Wildcard 451
-#define T_Xleave 452
-#define T_Xmtnonce 453
-#define T_Year 454
-#define T_Flag 455
-#define T_EOC 456
-#define T_Simulate 457
-#define T_Beep_Delay 458
-#define T_Sim_Duration 459
-#define T_Server_Offset 460
-#define T_Duration 461
-#define T_Freq_Offset 462
-#define T_Wander 463
-#define T_Jitter 464
-#define T_Prop_Delay 465
-#define T_Proc_Delay 466
+#define T_Device 286
+#define T_Digest 287
+#define T_Disable 288
+#define T_Discard 289
+#define T_Dispersion 290
+#define T_Double 291
+#define T_Driftfile 292
+#define T_Drop 293
+#define T_Dscp 294
+#define T_Ellipsis 295
+#define T_Enable 296
+#define T_End 297
+#define T_Epeer 298
+#define T_False 299
+#define T_File 300
+#define T_Filegen 301
+#define T_Filenum 302
+#define T_Flag1 303
+#define T_Flag2 304
+#define T_Flag3 305
+#define T_Flag4 306
+#define T_Flake 307
+#define T_Floor 308
+#define T_Freq 309
+#define T_Fudge 310
+#define T_Fuzz 311
+#define T_Host 312
+#define T_Huffpuff 313
+#define T_Iburst 314
+#define T_Ident 315
+#define T_Ignore 316
+#define T_Ignorehash 317
+#define T_Incalloc 318
+#define T_Incmem 319
+#define T_Initalloc 320
+#define T_Initmem 321
+#define T_Includefile 322
+#define T_Integer 323
+#define T_Interface 324
+#define T_Intrange 325
+#define T_Io 326
+#define T_Ippeerlimit 327
+#define T_Ipv4 328
+#define T_Ipv4_flag 329
+#define T_Ipv6 330
+#define T_Ipv6_flag 331
+#define T_Kernel 332
+#define T_Key 333
+#define T_Keys 334
+#define T_Keysdir 335
+#define T_Kod 336
+#define T_Leapfile 337
+#define T_Leapsmearinterval 338
+#define T_Limited 339
+#define T_Link 340
+#define T_Listen 341
+#define T_Logconfig 342
+#define T_Logfile 343
+#define T_Loopstats 344
+#define T_Lowpriotrap 345
+#define T_Manycastclient 346
+#define T_Manycastserver 347
+#define T_Mask 348
+#define T_Maxage 349
+#define T_Maxclock 350
+#define T_Maxdepth 351
+#define T_Maxdist 352
+#define T_Maxmem 353
+#define T_Maxpoll 354
+#define T_Mdnstries 355
+#define T_Mem 356
+#define T_Memlock 357
+#define T_Minclock 358
+#define T_Mindepth 359
+#define T_Mindist 360
+#define T_Minimum 361
+#define T_Minjitter 362
+#define T_Minpoll 363
+#define T_Minsane 364
+#define T_Mode 365
+#define T_Mode7 366
+#define T_Monitor 367
+#define T_Month 368
+#define T_Mru 369
+#define T_Mssntp 370
+#define T_Multicastclient 371
+#define T_Nic 372
+#define T_Nolink 373
+#define T_Nomodify 374
+#define T_Nomrulist 375
+#define T_None 376
+#define T_Nonvolatile 377
+#define T_Noepeer 378
+#define T_Nopeer 379
+#define T_Noquery 380
+#define T_Noselect 381
+#define T_Noserve 382
+#define T_Notrap 383
+#define T_Notrust 384
+#define T_Ntp 385
+#define T_Ntpport 386
+#define T_NtpSignDsocket 387
+#define T_Orphan 388
+#define T_Orphanwait 389
+#define T_PCEdigest 390
+#define T_Panic 391
+#define T_Peer 392
+#define T_Peerstats 393
+#define T_Phone 394
+#define T_Pid 395
+#define T_Pidfile 396
+#define T_Poll 397
+#define T_PollSkewList 398
+#define T_Pool 399
+#define T_Port 400
+#define T_PpsData 401
+#define T_Preempt 402
+#define T_Prefer 403
+#define T_Protostats 404
+#define T_Pw 405
+#define T_Randfile 406
+#define T_Rawstats 407
+#define T_Refid 408
+#define T_Requestkey 409
+#define T_Reset 410
+#define T_Restrict 411
+#define T_Revoke 412
+#define T_Rlimit 413
+#define T_Saveconfigdir 414
+#define T_Server 415
+#define T_Serverresponse 416
+#define T_ServerresponseFuzz 417
+#define T_Setvar 418
+#define T_Source 419
+#define T_Stacksize 420
+#define T_Statistics 421
+#define T_Stats 422
+#define T_Statsdir 423
+#define T_Step 424
+#define T_Stepback 425
+#define T_Stepfwd 426
+#define T_Stepout 427
+#define T_Stratum 428
+#define T_String 429
+#define T_Sys 430
+#define T_Sysstats 431
+#define T_Tick 432
+#define T_Time1 433
+#define T_Time2 434
+#define T_TimeData 435
+#define T_Timer 436
+#define T_Timingstats 437
+#define T_Tinker 438
+#define T_Tos 439
+#define T_Trap 440
+#define T_True 441
+#define T_Trustedkey 442
+#define T_Ttl 443
+#define T_Type 444
+#define T_U_int 445
+#define T_UEcrypto 446
+#define T_UEcryptonak 447
+#define T_UEdigest 448
+#define T_Unconfig 449
+#define T_Unpeer 450
+#define T_Version 451
+#define T_WanderThreshold 452
+#define T_Week 453
+#define T_Wildcard 454
+#define T_Xleave 455
+#define T_Xmtnonce 456
+#define T_Year 457
+#define T_Flag 458
+#define T_EOC 459
+#define T_Simulate 460
+#define T_Beep_Delay 461
+#define T_Sim_Duration 462
+#define T_Server_Offset 463
+#define T_Duration 464
+#define T_Freq_Offset 465
+#define T_Wander 466
+#define T_Jitter 467
+#define T_Prop_Delay 468
+#define T_Proc_Delay 469
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
 union YYSTYPE
 {
-#line 52 "../../ntpd/ntp_parser.y" /* yacc.c:355  */
+#line 52 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
 
        char *                  String;
        double                  Double;
@@ -578,9 +602,9 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 582 "../../ntpd/ntp_parser.c" /* yacc.c:355  */
-};
+#line 606 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
 
+};
 typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
@@ -591,38 +615,438 @@ extern YYSTYPE yylval;
 
 int yyparse (void);
 
-#endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED  */
+#endif /* !YY_YY__SRC_NTP_STABLE_NTPD_NTP_PARSER_H_INCLUDED  */
+/* Symbol kind.  */
+enum yysymbol_kind_t
+{
+  YYSYMBOL_YYEMPTY = -2,
+  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
+  YYSYMBOL_YYerror = 1,                    /* error  */
+  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
+  YYSYMBOL_T_Abbrev = 3,                   /* T_Abbrev  */
+  YYSYMBOL_T_Age = 4,                      /* T_Age  */
+  YYSYMBOL_T_All = 5,                      /* T_All  */
+  YYSYMBOL_T_Allan = 6,                    /* T_Allan  */
+  YYSYMBOL_T_Allpeers = 7,                 /* T_Allpeers  */
+  YYSYMBOL_T_Auth = 8,                     /* T_Auth  */
+  YYSYMBOL_T_Autokey = 9,                  /* T_Autokey  */
+  YYSYMBOL_T_Automax = 10,                 /* T_Automax  */
+  YYSYMBOL_T_Average = 11,                 /* T_Average  */
+  YYSYMBOL_T_Basedate = 12,                /* T_Basedate  */
+  YYSYMBOL_T_Bclient = 13,                 /* T_Bclient  */
+  YYSYMBOL_T_Bcpollbstep = 14,             /* T_Bcpollbstep  */
+  YYSYMBOL_T_Beacon = 15,                  /* T_Beacon  */
+  YYSYMBOL_T_Broadcast = 16,               /* T_Broadcast  */
+  YYSYMBOL_T_Broadcastclient = 17,         /* T_Broadcastclient  */
+  YYSYMBOL_T_Broadcastdelay = 18,          /* T_Broadcastdelay  */
+  YYSYMBOL_T_Burst = 19,                   /* T_Burst  */
+  YYSYMBOL_T_Calibrate = 20,               /* T_Calibrate  */
+  YYSYMBOL_T_Ceiling = 21,                 /* T_Ceiling  */
+  YYSYMBOL_T_Checkhash = 22,               /* T_Checkhash  */
+  YYSYMBOL_T_Clockstats = 23,              /* T_Clockstats  */
+  YYSYMBOL_T_Cohort = 24,                  /* T_Cohort  */
+  YYSYMBOL_T_ControlKey = 25,              /* T_ControlKey  */
+  YYSYMBOL_T_Crypto = 26,                  /* T_Crypto  */
+  YYSYMBOL_T_Cryptostats = 27,             /* T_Cryptostats  */
+  YYSYMBOL_T_Ctl = 28,                     /* T_Ctl  */
+  YYSYMBOL_T_Day = 29,                     /* T_Day  */
+  YYSYMBOL_T_Default = 30,                 /* T_Default  */
+  YYSYMBOL_T_Device = 31,                  /* T_Device  */
+  YYSYMBOL_T_Digest = 32,                  /* T_Digest  */
+  YYSYMBOL_T_Disable = 33,                 /* T_Disable  */
+  YYSYMBOL_T_Discard = 34,                 /* T_Discard  */
+  YYSYMBOL_T_Dispersion = 35,              /* T_Dispersion  */
+  YYSYMBOL_T_Double = 36,                  /* T_Double  */
+  YYSYMBOL_T_Driftfile = 37,               /* T_Driftfile  */
+  YYSYMBOL_T_Drop = 38,                    /* T_Drop  */
+  YYSYMBOL_T_Dscp = 39,                    /* T_Dscp  */
+  YYSYMBOL_T_Ellipsis = 40,                /* T_Ellipsis  */
+  YYSYMBOL_T_Enable = 41,                  /* T_Enable  */
+  YYSYMBOL_T_End = 42,                     /* T_End  */
+  YYSYMBOL_T_Epeer = 43,                   /* T_Epeer  */
+  YYSYMBOL_T_False = 44,                   /* T_False  */
+  YYSYMBOL_T_File = 45,                    /* T_File  */
+  YYSYMBOL_T_Filegen = 46,                 /* T_Filegen  */
+  YYSYMBOL_T_Filenum = 47,                 /* T_Filenum  */
+  YYSYMBOL_T_Flag1 = 48,                   /* T_Flag1  */
+  YYSYMBOL_T_Flag2 = 49,                   /* T_Flag2  */
+  YYSYMBOL_T_Flag3 = 50,                   /* T_Flag3  */
+  YYSYMBOL_T_Flag4 = 51,                   /* T_Flag4  */
+  YYSYMBOL_T_Flake = 52,                   /* T_Flake  */
+  YYSYMBOL_T_Floor = 53,                   /* T_Floor  */
+  YYSYMBOL_T_Freq = 54,                    /* T_Freq  */
+  YYSYMBOL_T_Fudge = 55,                   /* T_Fudge  */
+  YYSYMBOL_T_Fuzz = 56,                    /* T_Fuzz  */
+  YYSYMBOL_T_Host = 57,                    /* T_Host  */
+  YYSYMBOL_T_Huffpuff = 58,                /* T_Huffpuff  */
+  YYSYMBOL_T_Iburst = 59,                  /* T_Iburst  */
+  YYSYMBOL_T_Ident = 60,                   /* T_Ident  */
+  YYSYMBOL_T_Ignore = 61,                  /* T_Ignore  */
+  YYSYMBOL_T_Ignorehash = 62,              /* T_Ignorehash  */
+  YYSYMBOL_T_Incalloc = 63,                /* T_Incalloc  */
+  YYSYMBOL_T_Incmem = 64,                  /* T_Incmem  */
+  YYSYMBOL_T_Initalloc = 65,               /* T_Initalloc  */
+  YYSYMBOL_T_Initmem = 66,                 /* T_Initmem  */
+  YYSYMBOL_T_Includefile = 67,             /* T_Includefile  */
+  YYSYMBOL_T_Integer = 68,                 /* T_Integer  */
+  YYSYMBOL_T_Interface = 69,               /* T_Interface  */
+  YYSYMBOL_T_Intrange = 70,                /* T_Intrange  */
+  YYSYMBOL_T_Io = 71,                      /* T_Io  */
+  YYSYMBOL_T_Ippeerlimit = 72,             /* T_Ippeerlimit  */
+  YYSYMBOL_T_Ipv4 = 73,                    /* T_Ipv4  */
+  YYSYMBOL_T_Ipv4_flag = 74,               /* T_Ipv4_flag  */
+  YYSYMBOL_T_Ipv6 = 75,                    /* T_Ipv6  */
+  YYSYMBOL_T_Ipv6_flag = 76,               /* T_Ipv6_flag  */
+  YYSYMBOL_T_Kernel = 77,                  /* T_Kernel  */
+  YYSYMBOL_T_Key = 78,                     /* T_Key  */
+  YYSYMBOL_T_Keys = 79,                    /* T_Keys  */
+  YYSYMBOL_T_Keysdir = 80,                 /* T_Keysdir  */
+  YYSYMBOL_T_Kod = 81,                     /* T_Kod  */
+  YYSYMBOL_T_Leapfile = 82,                /* T_Leapfile  */
+  YYSYMBOL_T_Leapsmearinterval = 83,       /* T_Leapsmearinterval  */
+  YYSYMBOL_T_Limited = 84,                 /* T_Limited  */
+  YYSYMBOL_T_Link = 85,                    /* T_Link  */
+  YYSYMBOL_T_Listen = 86,                  /* T_Listen  */
+  YYSYMBOL_T_Logconfig = 87,               /* T_Logconfig  */
+  YYSYMBOL_T_Logfile = 88,                 /* T_Logfile  */
+  YYSYMBOL_T_Loopstats = 89,               /* T_Loopstats  */
+  YYSYMBOL_T_Lowpriotrap = 90,             /* T_Lowpriotrap  */
+  YYSYMBOL_T_Manycastclient = 91,          /* T_Manycastclient  */
+  YYSYMBOL_T_Manycastserver = 92,          /* T_Manycastserver  */
+  YYSYMBOL_T_Mask = 93,                    /* T_Mask  */
+  YYSYMBOL_T_Maxage = 94,                  /* T_Maxage  */
+  YYSYMBOL_T_Maxclock = 95,                /* T_Maxclock  */
+  YYSYMBOL_T_Maxdepth = 96,                /* T_Maxdepth  */
+  YYSYMBOL_T_Maxdist = 97,                 /* T_Maxdist  */
+  YYSYMBOL_T_Maxmem = 98,                  /* T_Maxmem  */
+  YYSYMBOL_T_Maxpoll = 99,                 /* T_Maxpoll  */
+  YYSYMBOL_T_Mdnstries = 100,              /* T_Mdnstries  */
+  YYSYMBOL_T_Mem = 101,                    /* T_Mem  */
+  YYSYMBOL_T_Memlock = 102,                /* T_Memlock  */
+  YYSYMBOL_T_Minclock = 103,               /* T_Minclock  */
+  YYSYMBOL_T_Mindepth = 104,               /* T_Mindepth  */
+  YYSYMBOL_T_Mindist = 105,                /* T_Mindist  */
+  YYSYMBOL_T_Minimum = 106,                /* T_Minimum  */
+  YYSYMBOL_T_Minjitter = 107,              /* T_Minjitter  */
+  YYSYMBOL_T_Minpoll = 108,                /* T_Minpoll  */
+  YYSYMBOL_T_Minsane = 109,                /* T_Minsane  */
+  YYSYMBOL_T_Mode = 110,                   /* T_Mode  */
+  YYSYMBOL_T_Mode7 = 111,                  /* T_Mode7  */
+  YYSYMBOL_T_Monitor = 112,                /* T_Monitor  */
+  YYSYMBOL_T_Month = 113,                  /* T_Month  */
+  YYSYMBOL_T_Mru = 114,                    /* T_Mru  */
+  YYSYMBOL_T_Mssntp = 115,                 /* T_Mssntp  */
+  YYSYMBOL_T_Multicastclient = 116,        /* T_Multicastclient  */
+  YYSYMBOL_T_Nic = 117,                    /* T_Nic  */
+  YYSYMBOL_T_Nolink = 118,                 /* T_Nolink  */
+  YYSYMBOL_T_Nomodify = 119,               /* T_Nomodify  */
+  YYSYMBOL_T_Nomrulist = 120,              /* T_Nomrulist  */
+  YYSYMBOL_T_None = 121,                   /* T_None  */
+  YYSYMBOL_T_Nonvolatile = 122,            /* T_Nonvolatile  */
+  YYSYMBOL_T_Noepeer = 123,                /* T_Noepeer  */
+  YYSYMBOL_T_Nopeer = 124,                 /* T_Nopeer  */
+  YYSYMBOL_T_Noquery = 125,                /* T_Noquery  */
+  YYSYMBOL_T_Noselect = 126,               /* T_Noselect  */
+  YYSYMBOL_T_Noserve = 127,                /* T_Noserve  */
+  YYSYMBOL_T_Notrap = 128,                 /* T_Notrap  */
+  YYSYMBOL_T_Notrust = 129,                /* T_Notrust  */
+  YYSYMBOL_T_Ntp = 130,                    /* T_Ntp  */
+  YYSYMBOL_T_Ntpport = 131,                /* T_Ntpport  */
+  YYSYMBOL_T_NtpSignDsocket = 132,         /* T_NtpSignDsocket  */
+  YYSYMBOL_T_Orphan = 133,                 /* T_Orphan  */
+  YYSYMBOL_T_Orphanwait = 134,             /* T_Orphanwait  */
+  YYSYMBOL_T_PCEdigest = 135,              /* T_PCEdigest  */
+  YYSYMBOL_T_Panic = 136,                  /* T_Panic  */
+  YYSYMBOL_T_Peer = 137,                   /* T_Peer  */
+  YYSYMBOL_T_Peerstats = 138,              /* T_Peerstats  */
+  YYSYMBOL_T_Phone = 139,                  /* T_Phone  */
+  YYSYMBOL_T_Pid = 140,                    /* T_Pid  */
+  YYSYMBOL_T_Pidfile = 141,                /* T_Pidfile  */
+  YYSYMBOL_T_Poll = 142,                   /* T_Poll  */
+  YYSYMBOL_T_PollSkewList = 143,           /* T_PollSkewList  */
+  YYSYMBOL_T_Pool = 144,                   /* T_Pool  */
+  YYSYMBOL_T_Port = 145,                   /* T_Port  */
+  YYSYMBOL_T_PpsData = 146,                /* T_PpsData  */
+  YYSYMBOL_T_Preempt = 147,                /* T_Preempt  */
+  YYSYMBOL_T_Prefer = 148,                 /* T_Prefer  */
+  YYSYMBOL_T_Protostats = 149,             /* T_Protostats  */
+  YYSYMBOL_T_Pw = 150,                     /* T_Pw  */
+  YYSYMBOL_T_Randfile = 151,               /* T_Randfile  */
+  YYSYMBOL_T_Rawstats = 152,               /* T_Rawstats  */
+  YYSYMBOL_T_Refid = 153,                  /* T_Refid  */
+  YYSYMBOL_T_Requestkey = 154,             /* T_Requestkey  */
+  YYSYMBOL_T_Reset = 155,                  /* T_Reset  */
+  YYSYMBOL_T_Restrict = 156,               /* T_Restrict  */
+  YYSYMBOL_T_Revoke = 157,                 /* T_Revoke  */
+  YYSYMBOL_T_Rlimit = 158,                 /* T_Rlimit  */
+  YYSYMBOL_T_Saveconfigdir = 159,          /* T_Saveconfigdir  */
+  YYSYMBOL_T_Server = 160,                 /* T_Server  */
+  YYSYMBOL_T_Serverresponse = 161,         /* T_Serverresponse  */
+  YYSYMBOL_T_ServerresponseFuzz = 162,     /* T_ServerresponseFuzz  */
+  YYSYMBOL_T_Setvar = 163,                 /* T_Setvar  */
+  YYSYMBOL_T_Source = 164,                 /* T_Source  */
+  YYSYMBOL_T_Stacksize = 165,              /* T_Stacksize  */
+  YYSYMBOL_T_Statistics = 166,             /* T_Statistics  */
+  YYSYMBOL_T_Stats = 167,                  /* T_Stats  */
+  YYSYMBOL_T_Statsdir = 168,               /* T_Statsdir  */
+  YYSYMBOL_T_Step = 169,                   /* T_Step  */
+  YYSYMBOL_T_Stepback = 170,               /* T_Stepback  */
+  YYSYMBOL_T_Stepfwd = 171,                /* T_Stepfwd  */
+  YYSYMBOL_T_Stepout = 172,                /* T_Stepout  */
+  YYSYMBOL_T_Stratum = 173,                /* T_Stratum  */
+  YYSYMBOL_T_String = 174,                 /* T_String  */
+  YYSYMBOL_T_Sys = 175,                    /* T_Sys  */
+  YYSYMBOL_T_Sysstats = 176,               /* T_Sysstats  */
+  YYSYMBOL_T_Tick = 177,                   /* T_Tick  */
+  YYSYMBOL_T_Time1 = 178,                  /* T_Time1  */
+  YYSYMBOL_T_Time2 = 179,                  /* T_Time2  */
+  YYSYMBOL_T_TimeData = 180,               /* T_TimeData  */
+  YYSYMBOL_T_Timer = 181,                  /* T_Timer  */
+  YYSYMBOL_T_Timingstats = 182,            /* T_Timingstats  */
+  YYSYMBOL_T_Tinker = 183,                 /* T_Tinker  */
+  YYSYMBOL_T_Tos = 184,                    /* T_Tos  */
+  YYSYMBOL_T_Trap = 185,                   /* T_Trap  */
+  YYSYMBOL_T_True = 186,                   /* T_True  */
+  YYSYMBOL_T_Trustedkey = 187,             /* T_Trustedkey  */
+  YYSYMBOL_T_Ttl = 188,                    /* T_Ttl  */
+  YYSYMBOL_T_Type = 189,                   /* T_Type  */
+  YYSYMBOL_T_U_int = 190,                  /* T_U_int  */
+  YYSYMBOL_T_UEcrypto = 191,               /* T_UEcrypto  */
+  YYSYMBOL_T_UEcryptonak = 192,            /* T_UEcryptonak  */
+  YYSYMBOL_T_UEdigest = 193,               /* T_UEdigest  */
+  YYSYMBOL_T_Unconfig = 194,               /* T_Unconfig  */
+  YYSYMBOL_T_Unpeer = 195,                 /* T_Unpeer  */
+  YYSYMBOL_T_Version = 196,                /* T_Version  */
+  YYSYMBOL_T_WanderThreshold = 197,        /* T_WanderThreshold  */
+  YYSYMBOL_T_Week = 198,                   /* T_Week  */
+  YYSYMBOL_T_Wildcard = 199,               /* T_Wildcard  */
+  YYSYMBOL_T_Xleave = 200,                 /* T_Xleave  */
+  YYSYMBOL_T_Xmtnonce = 201,               /* T_Xmtnonce  */
+  YYSYMBOL_T_Year = 202,                   /* T_Year  */
+  YYSYMBOL_T_Flag = 203,                   /* T_Flag  */
+  YYSYMBOL_T_EOC = 204,                    /* T_EOC  */
+  YYSYMBOL_T_Simulate = 205,               /* T_Simulate  */
+  YYSYMBOL_T_Beep_Delay = 206,             /* T_Beep_Delay  */
+  YYSYMBOL_T_Sim_Duration = 207,           /* T_Sim_Duration  */
+  YYSYMBOL_T_Server_Offset = 208,          /* T_Server_Offset  */
+  YYSYMBOL_T_Duration = 209,               /* T_Duration  */
+  YYSYMBOL_T_Freq_Offset = 210,            /* T_Freq_Offset  */
+  YYSYMBOL_T_Wander = 211,                 /* T_Wander  */
+  YYSYMBOL_T_Jitter = 212,                 /* T_Jitter  */
+  YYSYMBOL_T_Prop_Delay = 213,             /* T_Prop_Delay  */
+  YYSYMBOL_T_Proc_Delay = 214,             /* T_Proc_Delay  */
+  YYSYMBOL_215_ = 215,                     /* '|'  */
+  YYSYMBOL_216_ = 216,                     /* '='  */
+  YYSYMBOL_217_ = 217,                     /* '('  */
+  YYSYMBOL_218_ = 218,                     /* ')'  */
+  YYSYMBOL_219_ = 219,                     /* '{'  */
+  YYSYMBOL_220_ = 220,                     /* '}'  */
+  YYSYMBOL_YYACCEPT = 221,                 /* $accept  */
+  YYSYMBOL_configuration = 222,            /* configuration  */
+  YYSYMBOL_command_list = 223,             /* command_list  */
+  YYSYMBOL_command = 224,                  /* command  */
+  YYSYMBOL_server_command = 225,           /* server_command  */
+  YYSYMBOL_client_type = 226,              /* client_type  */
+  YYSYMBOL_address = 227,                  /* address  */
+  YYSYMBOL_ip_address = 228,               /* ip_address  */
+  YYSYMBOL_address_fam = 229,              /* address_fam  */
+  YYSYMBOL_option_list = 230,              /* option_list  */
+  YYSYMBOL_option = 231,                   /* option  */
+  YYSYMBOL_option_flag = 232,              /* option_flag  */
+  YYSYMBOL_option_flag_keyword = 233,      /* option_flag_keyword  */
+  YYSYMBOL_option_int = 234,               /* option_int  */
+  YYSYMBOL_option_int_keyword = 235,       /* option_int_keyword  */
+  YYSYMBOL_option_str = 236,               /* option_str  */
+  YYSYMBOL_option_str_keyword = 237,       /* option_str_keyword  */
+  YYSYMBOL_unpeer_command = 238,           /* unpeer_command  */
+  YYSYMBOL_unpeer_keyword = 239,           /* unpeer_keyword  */
+  YYSYMBOL_other_mode_command = 240,       /* other_mode_command  */
+  YYSYMBOL_authentication_command = 241,   /* authentication_command  */
+  YYSYMBOL_crypto_command_list = 242,      /* crypto_command_list  */
+  YYSYMBOL_crypto_command = 243,           /* crypto_command  */
+  YYSYMBOL_crypto_str_keyword = 244,       /* crypto_str_keyword  */
+  YYSYMBOL_orphan_mode_command = 245,      /* orphan_mode_command  */
+  YYSYMBOL_tos_option_list = 246,          /* tos_option_list  */
+  YYSYMBOL_tos_option = 247,               /* tos_option  */
+  YYSYMBOL_tos_option_int_keyword = 248,   /* tos_option_int_keyword  */
+  YYSYMBOL_tos_option_dbl_keyword = 249,   /* tos_option_dbl_keyword  */
+  YYSYMBOL_monitoring_command = 250,       /* monitoring_command  */
+  YYSYMBOL_stats_list = 251,               /* stats_list  */
+  YYSYMBOL_stat = 252,                     /* stat  */
+  YYSYMBOL_filegen_option_list = 253,      /* filegen_option_list  */
+  YYSYMBOL_filegen_option = 254,           /* filegen_option  */
+  YYSYMBOL_link_nolink = 255,              /* link_nolink  */
+  YYSYMBOL_enable_disable = 256,           /* enable_disable  */
+  YYSYMBOL_filegen_type = 257,             /* filegen_type  */
+  YYSYMBOL_access_control_command = 258,   /* access_control_command  */
+  YYSYMBOL_res_ippeerlimit = 259,          /* res_ippeerlimit  */
+  YYSYMBOL_ac_flag_list = 260,             /* ac_flag_list  */
+  YYSYMBOL_access_control_flag = 261,      /* access_control_flag  */
+  YYSYMBOL_discard_option_list = 262,      /* discard_option_list  */
+  YYSYMBOL_discard_option = 263,           /* discard_option  */
+  YYSYMBOL_discard_option_keyword = 264,   /* discard_option_keyword  */
+  YYSYMBOL_mru_option_list = 265,          /* mru_option_list  */
+  YYSYMBOL_mru_option = 266,               /* mru_option  */
+  YYSYMBOL_mru_option_keyword = 267,       /* mru_option_keyword  */
+  YYSYMBOL_fudge_command = 268,            /* fudge_command  */
+  YYSYMBOL_fudge_factor_list = 269,        /* fudge_factor_list  */
+  YYSYMBOL_fudge_factor = 270,             /* fudge_factor  */
+  YYSYMBOL_fudge_factor_dbl_keyword = 271, /* fudge_factor_dbl_keyword  */
+  YYSYMBOL_fudge_factor_bool_keyword = 272, /* fudge_factor_bool_keyword  */
+  YYSYMBOL_device_command = 273,           /* device_command  */
+  YYSYMBOL_device_item_list = 274,         /* device_item_list  */
+  YYSYMBOL_device_item = 275,              /* device_item  */
+  YYSYMBOL_device_item_path_keyword = 276, /* device_item_path_keyword  */
+  YYSYMBOL_rlimit_command = 277,           /* rlimit_command  */
+  YYSYMBOL_rlimit_option_list = 278,       /* rlimit_option_list  */
+  YYSYMBOL_rlimit_option = 279,            /* rlimit_option  */
+  YYSYMBOL_rlimit_option_keyword = 280,    /* rlimit_option_keyword  */
+  YYSYMBOL_system_option_command = 281,    /* system_option_command  */
+  YYSYMBOL_system_option_list = 282,       /* system_option_list  */
+  YYSYMBOL_system_option = 283,            /* system_option  */
+  YYSYMBOL_system_option_flag_keyword = 284, /* system_option_flag_keyword  */
+  YYSYMBOL_system_option_local_flag_keyword = 285, /* system_option_local_flag_keyword  */
+  YYSYMBOL_tinker_command = 286,           /* tinker_command  */
+  YYSYMBOL_tinker_option_list = 287,       /* tinker_option_list  */
+  YYSYMBOL_tinker_option = 288,            /* tinker_option  */
+  YYSYMBOL_tinker_option_keyword = 289,    /* tinker_option_keyword  */
+  YYSYMBOL_miscellaneous_command = 290,    /* miscellaneous_command  */
+  YYSYMBOL_misc_cmd_dbl_keyword = 291,     /* misc_cmd_dbl_keyword  */
+  YYSYMBOL_misc_cmd_int_keyword = 292,     /* misc_cmd_int_keyword  */
+  YYSYMBOL_opt_hash_check = 293,           /* opt_hash_check  */
+  YYSYMBOL_misc_cmd_str_keyword = 294,     /* misc_cmd_str_keyword  */
+  YYSYMBOL_misc_cmd_str_lcl_keyword = 295, /* misc_cmd_str_lcl_keyword  */
+  YYSYMBOL_drift_parm = 296,               /* drift_parm  */
+  YYSYMBOL_pollskew_list = 297,            /* pollskew_list  */
+  YYSYMBOL_pollskew_spec = 298,            /* pollskew_spec  */
+  YYSYMBOL_pollskew_cycle = 299,           /* pollskew_cycle  */
+  YYSYMBOL_variable_assign = 300,          /* variable_assign  */
+  YYSYMBOL_t_default_or_zero = 301,        /* t_default_or_zero  */
+  YYSYMBOL_trap_option_list = 302,         /* trap_option_list  */
+  YYSYMBOL_trap_option = 303,              /* trap_option  */
+  YYSYMBOL_log_config_list = 304,          /* log_config_list  */
+  YYSYMBOL_log_config_command = 305,       /* log_config_command  */
+  YYSYMBOL_interface_command = 306,        /* interface_command  */
+  YYSYMBOL_interface_nic = 307,            /* interface_nic  */
+  YYSYMBOL_nic_rule_class = 308,           /* nic_rule_class  */
+  YYSYMBOL_nic_rule_action = 309,          /* nic_rule_action  */
+  YYSYMBOL_reset_command = 310,            /* reset_command  */
+  YYSYMBOL_counter_set_list = 311,         /* counter_set_list  */
+  YYSYMBOL_counter_set_keyword = 312,      /* counter_set_keyword  */
+  YYSYMBOL_integer_list = 313,             /* integer_list  */
+  YYSYMBOL_integer_list_range = 314,       /* integer_list_range  */
+  YYSYMBOL_integer_list_range_elt = 315,   /* integer_list_range_elt  */
+  YYSYMBOL_integer_range = 316,            /* integer_range  */
+  YYSYMBOL_string_list = 317,              /* string_list  */
+  YYSYMBOL_address_list = 318,             /* address_list  */
+  YYSYMBOL_boolean = 319,                  /* boolean  */
+  YYSYMBOL_number = 320,                   /* number  */
+  YYSYMBOL_basedate = 321,                 /* basedate  */
+  YYSYMBOL_simulate_command = 322,         /* simulate_command  */
+  YYSYMBOL_sim_conf_start = 323,           /* sim_conf_start  */
+  YYSYMBOL_sim_init_statement_list = 324,  /* sim_init_statement_list  */
+  YYSYMBOL_sim_init_statement = 325,       /* sim_init_statement  */
+  YYSYMBOL_sim_init_keyword = 326,         /* sim_init_keyword  */
+  YYSYMBOL_sim_server_list = 327,          /* sim_server_list  */
+  YYSYMBOL_sim_server = 328,               /* sim_server  */
+  YYSYMBOL_sim_server_offset = 329,        /* sim_server_offset  */
+  YYSYMBOL_sim_server_name = 330,          /* sim_server_name  */
+  YYSYMBOL_sim_act_list = 331,             /* sim_act_list  */
+  YYSYMBOL_sim_act = 332,                  /* sim_act  */
+  YYSYMBOL_sim_act_stmt_list = 333,        /* sim_act_stmt_list  */
+  YYSYMBOL_sim_act_stmt = 334,             /* sim_act_stmt  */
+  YYSYMBOL_sim_act_keyword = 335           /* sim_act_keyword  */
+};
+typedef enum yysymbol_kind_t yysymbol_kind_t;
+
 
-/* Copy the second part of user declarations.  */
 
-#line 599 "../../ntpd/ntp_parser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
 #endif
 
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
+/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
+   <limits.h> and (if available) <stdint.h> are included
+   so that the code can choose integer types of a good width.  */
+
+#ifndef __PTRDIFF_MAX__
+# include <limits.h> /* INFRINGES ON USER NAME SPACE */
+# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
+#  define YY_STDINT_H
+# endif
 #endif
 
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
+/* Narrow types that promote to a signed type and that can represent a
+   signed or unsigned integer of at least N bits.  In tables they can
+   save space and decrease cache pressure.  Promoting to a signed type
+   helps avoid bugs in integer arithmetic.  */
+
+#ifdef __INT_LEAST8_MAX__
+typedef __INT_LEAST8_TYPE__ yytype_int8;
+#elif defined YY_STDINT_H
+typedef int_least8_t yytype_int8;
 #else
 typedef signed char yytype_int8;
 #endif
 
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
+#ifdef __INT_LEAST16_MAX__
+typedef __INT_LEAST16_TYPE__ yytype_int16;
+#elif defined YY_STDINT_H
+typedef int_least16_t yytype_int16;
+#else
+typedef short yytype_int16;
+#endif
+
+/* Work around bug in HP-UX 11.23, which defines these macros
+   incorrectly for preprocessor constants.  This workaround can likely
+   be removed in 2023, as HPE has promised support for HP-UX 11.23
+   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
+#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST8_TYPE__ yytype_uint8;
+#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
+       && UINT_LEAST8_MAX <= INT_MAX)
+typedef uint_least8_t yytype_uint8;
+#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
+typedef unsigned char yytype_uint8;
 #else
-typedef unsigned short int yytype_uint16;
+typedef short yytype_uint8;
 #endif
 
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
+#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST16_TYPE__ yytype_uint16;
+#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
+       && UINT_LEAST16_MAX <= INT_MAX)
+typedef uint_least16_t yytype_uint16;
+#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
+typedef unsigned short yytype_uint16;
 #else
-typedef short int yytype_int16;
+typedef int yytype_uint16;
+#endif
+
+#ifndef YYPTRDIFF_T
+# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
+#  define YYPTRDIFF_T __PTRDIFF_TYPE__
+#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
+# elif defined PTRDIFF_MAX
+#  ifndef ptrdiff_t
+#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  endif
+#  define YYPTRDIFF_T ptrdiff_t
+#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
+# else
+#  define YYPTRDIFF_T long
+#  define YYPTRDIFF_MAXIMUM LONG_MAX
+# endif
 #endif
 
 #ifndef YYSIZE_T
@@ -630,15 +1054,28 @@ typedef short int yytype_int16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
+# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
-#  define YYSIZE_T unsigned int
+#  define YYSIZE_T unsigned
 # endif
 #endif
 
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+#define YYSIZE_MAXIMUM                                  \
+  YY_CAST (YYPTRDIFF_T,                                 \
+           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
+            ? YYPTRDIFF_MAXIMUM                         \
+            : YY_CAST (YYSIZE_T, -1)))
+
+#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
+
+
+/* Stored state numbers (used for stacks). */
+typedef yytype_int16 yy_state_t;
+
+/* State numbers in computations.  */
+typedef int yy_state_fast_t;
 
 #ifndef YY_
 # if defined YYENABLE_NLS && YYENABLE_NLS
@@ -652,47 +1089,37 @@ typedef short int yytype_int16;
 # endif
 #endif
 
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
 
 #ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
+# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
+#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define YY_ATTRIBUTE_PURE
+# endif
 #endif
 
 #ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
+# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
+#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
 # else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+#  define YY_ATTRIBUTE_UNUSED
 # endif
 #endif
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
 #else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
 #endif
 
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
     _Pragma ("GCC diagnostic pop")
 #else
 # define YY_INITIAL_VALUE(Value) Value
@@ -705,8 +1132,22 @@ typedef short int yytype_int16;
 # define YY_INITIAL_VALUE(Value) /* Nothing. */
 #endif
 
+#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
+# define YY_IGNORE_USELESS_CAST_BEGIN                          \
+    _Pragma ("GCC diagnostic push")                            \
+    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
+# define YY_IGNORE_USELESS_CAST_END            \
+    _Pragma ("GCC diagnostic pop")
+#endif
+#ifndef YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_END
+#endif
+
 
-#if ! defined yyoverflow || YYERROR_VERBOSE
+#define YY_ASSERT(E) ((void) (0 && (E)))
+
+#if !defined yyoverflow
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -771,8 +1212,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 # endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
+#endif /* !defined yyoverflow */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
@@ -781,17 +1221,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss_alloc;
+  yy_state_t yyss_alloc;
   YYSTYPE yyvs_alloc;
 };
 
 /* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
 
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
 # define YYCOPY_NEEDED 1
@@ -804,11 +1244,11 @@ union yyalloc
 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     do                                                                  \
       {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
+        YYPTRDIFF_T yynewbytes;                                         \
         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
         Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
+        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
+        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
       }                                                                 \
     while (0)
 
@@ -820,12 +1260,12 @@ union yyalloc
 # ifndef YYCOPY
 #  if defined __GNUC__ && 1 < __GNUC__
 #   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
 #  else
 #   define YYCOPY(Dst, Src, Count)              \
       do                                        \
         {                                       \
-          YYSIZE_T yyi;                         \
+          YYPTRDIFF_T yyi;                      \
           for (yyi = 0; yyi < (Count); yyi++)   \
             (Dst)[yyi] = (Src)[yyi];            \
         }                                       \
@@ -835,44 +1275,47 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  219
+#define YYFINAL  222
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   740
+#define YYLAST   688
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  218
+#define YYNTOKENS  221
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  111
+#define YYNNTS  115
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  336
+#define YYNRULES  343
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  453
+#define YYNSTATES  463
+
+/* YYMAXUTOK -- Last valid token kind.  */
+#define YYMAXUTOK   469
 
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   466
 
-#define YYTRANSLATE(YYX)                                                \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, with out-of-bounds checking.  */
+#define YYTRANSLATE(YYX)                                \
+  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
+   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
+   : YYSYMBOL_YYUNDEF)
 
 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
+   as returned by yylex.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     214,   215,     2,     2,     2,     2,     2,     2,     2,     2,
+     217,   218,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   213,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   216,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   216,   212,   217,     2,     2,     2,     2,
+       2,     2,     2,   219,   215,   220,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -906,114 +1349,124 @@ static const yytype_uint8 yytranslate[] =
      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
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
+static const yytype_int16 yyrline[] =
 {
-       0,   391,   391,   395,   396,   397,   412,   413,   414,   415,
-     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
-     433,   443,   444,   445,   446,   447,   451,   452,   457,   462,
-     464,   470,   471,   479,   480,   481,   485,   490,   491,   492,
-     493,   494,   495,   496,   497,   498,   502,   504,   509,   510,
-     511,   512,   513,   514,   518,   523,   532,   542,   543,   553,
-     555,   557,   559,   570,   577,   579,   584,   586,   588,   590,
-     592,   602,   608,   609,   617,   619,   631,   632,   633,   634,
-     635,   644,   649,   654,   662,   664,   666,   668,   673,   674,
-     675,   676,   677,   678,   679,   680,   681,   685,   686,   695,
-     697,   706,   716,   721,   729,   730,   731,   732,   733,   734,
-     735,   736,   741,   742,   750,   760,   769,   784,   789,   790,
-     794,   795,   799,   800,   801,   802,   803,   804,   805,   814,
-     818,   822,   830,   838,   846,   861,   876,   889,   890,   910,
-     911,   919,   930,   931,   932,   933,   934,   935,   936,   937,
-     938,   939,   940,   941,   942,   943,   944,   945,   946,   950,
-     955,   963,   968,   969,   970,   974,   979,   987,   992,   993,
-     994,   995,   996,   997,   998,   999,  1007,  1017,  1022,  1030,
-    1032,  1034,  1043,  1045,  1050,  1051,  1052,  1056,  1057,  1058,
-    1059,  1067,  1072,  1077,  1085,  1090,  1091,  1092,  1101,  1103,
-    1108,  1113,  1121,  1123,  1140,  1141,  1142,  1143,  1144,  1145,
-    1149,  1150,  1151,  1152,  1153,  1154,  1162,  1167,  1172,  1180,
-    1185,  1186,  1187,  1188,  1189,  1190,  1191,  1192,  1193,  1194,
-    1203,  1204,  1205,  1212,  1219,  1226,  1242,  1261,  1269,  1271,
-    1273,  1275,  1277,  1279,  1281,  1288,  1293,  1294,  1295,  1299,
-    1303,  1312,  1314,  1317,  1321,  1325,  1326,  1327,  1331,  1342,
-    1360,  1373,  1374,  1379,  1405,  1406,  1411,  1416,  1418,  1423,
-    1424,  1432,  1434,  1442,  1447,  1455,  1480,  1487,  1497,  1498,
-    1502,  1503,  1504,  1505,  1509,  1510,  1511,  1515,  1520,  1525,
-    1533,  1534,  1535,  1536,  1537,  1538,  1539,  1549,  1554,  1562,
-    1567,  1575,  1577,  1581,  1586,  1591,  1599,  1604,  1612,  1621,
-    1622,  1626,  1627,  1631,  1639,  1657,  1661,  1666,  1674,  1679,
-    1680,  1684,  1689,  1697,  1702,  1707,  1712,  1717,  1725,  1730,
-    1735,  1743,  1748,  1749,  1750,  1751,  1752
+       0,   397,   397,   401,   402,   403,   418,   419,   420,   421,
+     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
+     432,   440,   450,   451,   452,   453,   454,   458,   459,   464,
+     469,   471,   477,   478,   486,   487,   488,   492,   497,   498,
+     499,   500,   501,   502,   503,   504,   505,   509,   511,   516,
+     517,   518,   519,   520,   521,   525,   530,   539,   549,   550,
+     560,   562,   564,   566,   577,   584,   586,   591,   593,   595,
+     597,   599,   609,   615,   616,   624,   626,   638,   639,   640,
+     641,   642,   651,   656,   661,   669,   671,   673,   675,   680,
+     681,   682,   683,   684,   685,   686,   687,   688,   692,   693,
+     702,   704,   713,   723,   728,   736,   737,   738,   739,   740,
+     741,   742,   743,   748,   749,   757,   767,   776,   791,   796,
+     797,   801,   802,   806,   807,   808,   809,   810,   811,   812,
+     821,   825,   829,   837,   845,   853,   868,   883,   896,   897,
+     917,   918,   926,   937,   938,   939,   940,   941,   942,   943,
+     944,   945,   946,   947,   948,   949,   950,   951,   952,   953,
+     957,   962,   970,   975,   976,   977,   981,   986,   994,   999,
+    1000,  1001,  1002,  1003,  1004,  1005,  1006,  1014,  1024,  1029,
+    1037,  1039,  1041,  1050,  1052,  1057,  1058,  1059,  1063,  1064,
+    1065,  1066,  1074,  1084,  1089,  1097,  1102,  1103,  1111,  1116,
+    1121,  1129,  1134,  1135,  1136,  1145,  1147,  1152,  1157,  1165,
+    1167,  1184,  1185,  1186,  1187,  1188,  1189,  1193,  1194,  1195,
+    1196,  1197,  1198,  1206,  1211,  1216,  1224,  1229,  1230,  1231,
+    1232,  1233,  1234,  1235,  1236,  1237,  1238,  1247,  1248,  1249,
+    1256,  1263,  1270,  1286,  1305,  1313,  1315,  1317,  1319,  1321,
+    1323,  1325,  1332,  1337,  1338,  1339,  1343,  1347,  1356,  1358,
+    1361,  1365,  1369,  1370,  1371,  1375,  1386,  1404,  1417,  1418,
+    1423,  1449,  1450,  1455,  1460,  1462,  1467,  1468,  1476,  1478,
+    1486,  1491,  1499,  1524,  1531,  1541,  1542,  1546,  1547,  1548,
+    1549,  1553,  1554,  1555,  1559,  1564,  1569,  1577,  1578,  1579,
+    1580,  1581,  1582,  1583,  1593,  1598,  1606,  1611,  1619,  1621,
+    1625,  1630,  1635,  1643,  1648,  1656,  1665,  1666,  1670,  1671,
+    1675,  1683,  1701,  1705,  1710,  1718,  1723,  1724,  1728,  1733,
+    1741,  1746,  1751,  1756,  1761,  1769,  1774,  1779,  1787,  1792,
+    1793,  1794,  1795,  1796
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || 1
+/** Accessing symbol of state STATE.  */
+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
+
+#if YYDEBUG || 1
+/* The user-facing name of the symbol whose (internal) number is
+   YYSYMBOL.  No bounds checking.  */
+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
+
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "T_Abbrev", "T_Age", "T_All", "T_Allan",
-  "T_Allpeers", "T_Auth", "T_Autokey", "T_Automax", "T_Average",
-  "T_Basedate", "T_Bclient", "T_Bcpollbstep", "T_Beacon", "T_Broadcast",
-  "T_Broadcastclient", "T_Broadcastdelay", "T_Burst", "T_Calibrate",
-  "T_Ceiling", "T_Checkhash", "T_Clockstats", "T_Cohort", "T_ControlKey",
-  "T_Crypto", "T_Cryptostats", "T_Ctl", "T_Day", "T_Default", "T_Digest",
-  "T_Disable", "T_Discard", "T_Dispersion", "T_Double", "T_Driftfile",
-  "T_Drop", "T_Dscp", "T_Ellipsis", "T_Enable", "T_End", "T_Epeer",
-  "T_False", "T_File", "T_Filegen", "T_Filenum", "T_Flag1", "T_Flag2",
-  "T_Flag3", "T_Flag4", "T_Flake", "T_Floor", "T_Freq", "T_Fudge",
-  "T_Fuzz", "T_Host", "T_Huffpuff", "T_Iburst", "T_Ident", "T_Ignore",
-  "T_Ignorehash", "T_Incalloc", "T_Incmem", "T_Initalloc", "T_Initmem",
-  "T_Includefile", "T_Integer", "T_Interface", "T_Intrange", "T_Io",
-  "T_Ippeerlimit", "T_Ipv4", "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag",
-  "T_Kernel", "T_Key", "T_Keys", "T_Keysdir", "T_Kod", "T_Leapfile",
-  "T_Leapsmearinterval", "T_Limited", "T_Link", "T_Listen", "T_Logconfig",
-  "T_Logfile", "T_Loopstats", "T_Lowpriotrap", "T_Manycastclient",
-  "T_Manycastserver", "T_Mask", "T_Maxage", "T_Maxclock", "T_Maxdepth",
-  "T_Maxdist", "T_Maxmem", "T_Maxpoll", "T_Mdnstries", "T_Mem",
-  "T_Memlock", "T_Minclock", "T_Mindepth", "T_Mindist", "T_Minimum",
-  "T_Minjitter", "T_Minpoll", "T_Minsane", "T_Mode", "T_Mode7",
-  "T_Monitor", "T_Month", "T_Mru", "T_Mssntp", "T_Multicastclient",
-  "T_Nic", "T_Nolink", "T_Nomodify", "T_Nomrulist", "T_None",
-  "T_Nonvolatile", "T_Noepeer", "T_Nopeer", "T_Noquery", "T_Noselect",
-  "T_Noserve", "T_Notrap", "T_Notrust", "T_Ntp", "T_Ntpport",
-  "T_NtpSignDsocket", "T_Orphan", "T_Orphanwait", "T_PCEdigest", "T_Panic",
-  "T_Peer", "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Poll",
-  "T_PollSkewList", "T_Pool", "T_Port", "T_Preempt", "T_Prefer",
-  "T_Protostats", "T_Pw", "T_Randfile", "T_Rawstats", "T_Refid",
-  "T_Requestkey", "T_Reset", "T_Restrict", "T_Revoke", "T_Rlimit",
-  "T_Saveconfigdir", "T_Server", "T_Serverresponse",
-  "T_ServerresponseFuzz", "T_Setvar", "T_Source", "T_Stacksize",
-  "T_Statistics", "T_Stats", "T_Statsdir", "T_Step", "T_Stepback",
-  "T_Stepfwd", "T_Stepout", "T_Stratum", "T_String", "T_Sys", "T_Sysstats",
-  "T_Tick", "T_Time1", "T_Time2", "T_Timer", "T_Timingstats", "T_Tinker",
-  "T_Tos", "T_Trap", "T_True", "T_Trustedkey", "T_Ttl", "T_Type",
-  "T_U_int", "T_UEcrypto", "T_UEcryptonak", "T_UEdigest", "T_Unconfig",
-  "T_Unpeer", "T_Version", "T_WanderThreshold", "T_Week", "T_Wildcard",
-  "T_Xleave", "T_Xmtnonce", "T_Year", "T_Flag", "T_EOC", "T_Simulate",
-  "T_Beep_Delay", "T_Sim_Duration", "T_Server_Offset", "T_Duration",
-  "T_Freq_Offset", "T_Wander", "T_Jitter", "T_Prop_Delay", "T_Proc_Delay",
-  "'|'", "'='", "'('", "')'", "'{'", "'}'", "$accept", "configuration",
-  "command_list", "command", "server_command", "client_type", "address",
-  "ip_address", "address_fam", "option_list", "option", "option_flag",
-  "option_flag_keyword", "option_int", "option_int_keyword", "option_str",
-  "option_str_keyword", "unpeer_command", "unpeer_keyword",
-  "other_mode_command", "authentication_command", "crypto_command_list",
-  "crypto_command", "crypto_str_keyword", "orphan_mode_command",
-  "tos_option_list", "tos_option", "tos_option_int_keyword",
-  "tos_option_dbl_keyword", "monitoring_command", "stats_list", "stat",
-  "filegen_option_list", "filegen_option", "link_nolink", "enable_disable",
-  "filegen_type", "access_control_command", "res_ippeerlimit",
-  "ac_flag_list", "access_control_flag", "discard_option_list",
-  "discard_option", "discard_option_keyword", "mru_option_list",
-  "mru_option", "mru_option_keyword", "fudge_command", "fudge_factor_list",
+  "\"end of file\"", "error", "\"invalid token\"", "T_Abbrev", "T_Age",
+  "T_All", "T_Allan", "T_Allpeers", "T_Auth", "T_Autokey", "T_Automax",
+  "T_Average", "T_Basedate", "T_Bclient", "T_Bcpollbstep", "T_Beacon",
+  "T_Broadcast", "T_Broadcastclient", "T_Broadcastdelay", "T_Burst",
+  "T_Calibrate", "T_Ceiling", "T_Checkhash", "T_Clockstats", "T_Cohort",
+  "T_ControlKey", "T_Crypto", "T_Cryptostats", "T_Ctl", "T_Day",
+  "T_Default", "T_Device", "T_Digest", "T_Disable", "T_Discard",
+  "T_Dispersion", "T_Double", "T_Driftfile", "T_Drop", "T_Dscp",
+  "T_Ellipsis", "T_Enable", "T_End", "T_Epeer", "T_False", "T_File",
+  "T_Filegen", "T_Filenum", "T_Flag1", "T_Flag2", "T_Flag3", "T_Flag4",
+  "T_Flake", "T_Floor", "T_Freq", "T_Fudge", "T_Fuzz", "T_Host",
+  "T_Huffpuff", "T_Iburst", "T_Ident", "T_Ignore", "T_Ignorehash",
+  "T_Incalloc", "T_Incmem", "T_Initalloc", "T_Initmem", "T_Includefile",
+  "T_Integer", "T_Interface", "T_Intrange", "T_Io", "T_Ippeerlimit",
+  "T_Ipv4", "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag", "T_Kernel", "T_Key",
+  "T_Keys", "T_Keysdir", "T_Kod", "T_Leapfile", "T_Leapsmearinterval",
+  "T_Limited", "T_Link", "T_Listen", "T_Logconfig", "T_Logfile",
+  "T_Loopstats", "T_Lowpriotrap", "T_Manycastclient", "T_Manycastserver",
+  "T_Mask", "T_Maxage", "T_Maxclock", "T_Maxdepth", "T_Maxdist",
+  "T_Maxmem", "T_Maxpoll", "T_Mdnstries", "T_Mem", "T_Memlock",
+  "T_Minclock", "T_Mindepth", "T_Mindist", "T_Minimum", "T_Minjitter",
+  "T_Minpoll", "T_Minsane", "T_Mode", "T_Mode7", "T_Monitor", "T_Month",
+  "T_Mru", "T_Mssntp", "T_Multicastclient", "T_Nic", "T_Nolink",
+  "T_Nomodify", "T_Nomrulist", "T_None", "T_Nonvolatile", "T_Noepeer",
+  "T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve", "T_Notrap",
+  "T_Notrust", "T_Ntp", "T_Ntpport", "T_NtpSignDsocket", "T_Orphan",
+  "T_Orphanwait", "T_PCEdigest", "T_Panic", "T_Peer", "T_Peerstats",
+  "T_Phone", "T_Pid", "T_Pidfile", "T_Poll", "T_PollSkewList", "T_Pool",
+  "T_Port", "T_PpsData", "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw",
+  "T_Randfile", "T_Rawstats", "T_Refid", "T_Requestkey", "T_Reset",
+  "T_Restrict", "T_Revoke", "T_Rlimit", "T_Saveconfigdir", "T_Server",
+  "T_Serverresponse", "T_ServerresponseFuzz", "T_Setvar", "T_Source",
+  "T_Stacksize", "T_Statistics", "T_Stats", "T_Statsdir", "T_Step",
+  "T_Stepback", "T_Stepfwd", "T_Stepout", "T_Stratum", "T_String", "T_Sys",
+  "T_Sysstats", "T_Tick", "T_Time1", "T_Time2", "T_TimeData", "T_Timer",
+  "T_Timingstats", "T_Tinker", "T_Tos", "T_Trap", "T_True", "T_Trustedkey",
+  "T_Ttl", "T_Type", "T_U_int", "T_UEcrypto", "T_UEcryptonak",
+  "T_UEdigest", "T_Unconfig", "T_Unpeer", "T_Version", "T_WanderThreshold",
+  "T_Week", "T_Wildcard", "T_Xleave", "T_Xmtnonce", "T_Year", "T_Flag",
+  "T_EOC", "T_Simulate", "T_Beep_Delay", "T_Sim_Duration",
+  "T_Server_Offset", "T_Duration", "T_Freq_Offset", "T_Wander", "T_Jitter",
+  "T_Prop_Delay", "T_Proc_Delay", "'|'", "'='", "'('", "')'", "'{'", "'}'",
+  "$accept", "configuration", "command_list", "command", "server_command",
+  "client_type", "address", "ip_address", "address_fam", "option_list",
+  "option", "option_flag", "option_flag_keyword", "option_int",
+  "option_int_keyword", "option_str", "option_str_keyword",
+  "unpeer_command", "unpeer_keyword", "other_mode_command",
+  "authentication_command", "crypto_command_list", "crypto_command",
+  "crypto_str_keyword", "orphan_mode_command", "tos_option_list",
+  "tos_option", "tos_option_int_keyword", "tos_option_dbl_keyword",
+  "monitoring_command", "stats_list", "stat", "filegen_option_list",
+  "filegen_option", "link_nolink", "enable_disable", "filegen_type",
+  "access_control_command", "res_ippeerlimit", "ac_flag_list",
+  "access_control_flag", "discard_option_list", "discard_option",
+  "discard_option_keyword", "mru_option_list", "mru_option",
+  "mru_option_keyword", "fudge_command", "fudge_factor_list",
   "fudge_factor", "fudge_factor_dbl_keyword", "fudge_factor_bool_keyword",
-  "rlimit_command", "rlimit_option_list", "rlimit_option",
-  "rlimit_option_keyword", "system_option_command", "system_option_list",
-  "system_option", "system_option_flag_keyword",
+  "device_command", "device_item_list", "device_item",
+  "device_item_path_keyword", "rlimit_command", "rlimit_option_list",
+  "rlimit_option", "rlimit_option_keyword", "system_option_command",
+  "system_option_list", "system_option", "system_option_flag_keyword",
   "system_option_local_flag_keyword", "tinker_command",
   "tinker_option_list", "tinker_option", "tinker_option_keyword",
   "miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_int_keyword",
@@ -1031,12 +1484,18 @@ static const char *const yytname[] =
   "sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt",
   "sim_act_keyword", YY_NULLPTR
 };
+
+static const char *
+yysymbol_name (yysymbol_kind_t yysymbol)
+{
+  return yytname[yysymbol];
+}
 #endif
 
-# ifdef YYPRINT
+#ifdef YYPRINT
 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
    (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_uint16 yytoknum[] =
+static const yytype_int16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
@@ -1059,157 +1518,160 @@ static const yytype_uint16 yytoknum[] =
      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,   124,    61,    40,    41,   123,   125
+     465,   466,   467,   468,   469,   124,    61,    40,    41,   123,
+     125
 };
-# endif
+#endif
 
-#define YYPACT_NINF -261
+#define YYPACT_NINF (-247)
 
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-261)))
+#define yypact_value_is_default(Yyn) \
+  ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF -7
+#define YYTABLE_NINF (-7)
 
-#define yytable_value_is_error(Yytable_value) \
+#define yytable_value_is_error(Yyn) \
   0
 
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-      19,  -163,   -36,  -261,  -261,  -261,   -25,  -261,   326,    77,
-    -125,  -261,   326,  -261,    16,   -45,  -261,  -119,  -261,  -103,
-    -100,   -98,  -261,   -95,  -261,  -261,   -45,    13,   238,   -45,
-    -261,  -261,   -88,  -261,   -86,  -261,  -261,  -261,    22,   109,
-      -8,    23,   -38,  -261,  -261,   -81,    16,   -80,  -261,   443,
-     607,   -73,   -58,    35,  -261,  -261,  -261,   103,   229,   -90,
-    -261,   -45,  -261,   -45,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,    -9,    45,   -53,   -51,  -261,   -19,
-    -261,  -261,  -102,  -261,  -261,  -261,    82,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,   326,
-    -261,  -261,  -261,  -261,  -261,  -261,    77,  -261,    55,    91,
-    -261,   326,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,    46,  -261,   -42,   407,  -261,  -261,
-     -11,  -261,   -95,  -261,  -261,   -45,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,   238,  -261,    64,   -45,  -261,
-    -261,   -28,   -13,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,   109,  -261,    74,   118,   119,    74,   -31,  -261,  -261,
-    -261,  -261,   -38,  -261,    93,   -55,  -261,    16,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-     443,  -261,    -9,    -7,  -261,  -261,  -261,   -40,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,   607,  -261,   100,    -9,
-    -261,  -261,  -261,   101,   -58,  -261,  -261,  -261,   102,  -261,
-     -23,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,     9,  -170,  -261,  -261,  -261,  -261,  -261,
-     122,  -261,    -2,  -261,  -261,  -261,  -261,   107,    14,  -261,
-    -261,  -261,  -261,  -261,    20,   126,  -261,  -261,    46,  -261,
-      -9,   -40,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,   129,  -261,   139,  -261,    74,
-      74,  -261,   -73,  -261,  -261,  -261,    36,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,   -62,   168,
-    -261,  -261,  -261,   410,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,   -96,    17,     6,  -261,  -261,  -261,  -261,    61,
-    -261,  -261,     3,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,    24,  -261,   534,  -261,  -261,   534,    74,   534,
-     204,   -73,   173,  -261,   174,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,   -63,  -261,    70,    31,    47,
-    -146,  -261,    33,  -261,    -9,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,   183,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,   196,  -261,  -261,   534,   534,  -261,  -261,  -261,  -261,
-    -261,    37,  -261,  -261,  -261,   -45,  -261,  -261,  -261,    48,
-    -261,  -261,  -261,   534,  -261,  -261,    43,    51,    -9,    50,
-    -193,  -261,    57,    -9,  -261,  -261,  -261,    52,     5,  -261,
-    -261,  -261,  -261,  -261,    18,    58,    53,  -261,    63,  -261,
-      -9,  -261,  -261
+       5,  -178,   -19,  -247,  -247,  -247,    -2,  -247,   -58,   294,
+      29,   -94,  -247,   294,  -247,   109,   -58,  -247,   -79,  -247,
+     -70,   -68,   -65,  -247,   -63,  -247,  -247,   -58,    42,   205,
+     -58,  -247,  -247,   -56,  -247,   -50,  -247,  -247,  -247,    45,
+      27,    41,    55,   -34,  -247,  -247,   -49,   109,   -41,  -247,
+     271,   554,   -40,   -64,    72,  -247,  -247,  -247,   145,   196,
+     -54,  -247,   -58,  -247,   -58,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,    33,    83,   -22,   -17,
+    -247,   -11,  -247,  -247,   -52,  -247,  -247,  -247,    26,  -247,
+    -247,  -247,  -121,  -247,    -5,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,   294,  -247,  -247,
+    -247,  -247,  -247,  -247,    29,  -247,    86,   119,  -247,   294,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,   319,
+     377,  -247,  -247,   -10,  -247,   -63,  -247,  -247,   -58,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,   205,  -247,
+     104,   -58,  -247,  -247,     7,    23,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,    27,  -247,   103,   154,   156,   103,
+       1,  -247,  -247,  -247,  -247,   -34,  -247,   126,   -29,  -247,
+     109,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,   271,  -247,    33,    30,  -247,  -247,  -247,
+     -20,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,   554,
+    -247,   139,    33,  -247,  -247,  -247,   143,   -64,  -247,  -247,
+    -247,   155,  -247,    20,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,     4,  -104,  -247,  -247,
+    -247,  -247,  -247,   157,  -247,    54,  -247,  -247,  -121,  -247,
+      57,  -247,  -247,  -247,  -247,  -247,    -4,    58,  -247,  -247,
+    -247,  -247,  -247,    67,   175,  -247,  -247,   319,  -247,    33,
+     -20,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,   178,  -247,   184,  -247,   103,   103,  -247,
+     -40,  -247,  -247,  -247,    79,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,   -55,   214,  -247,  -247,
+    -247,    48,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -143,    51,    43,  -247,  -247,  -247,  -247,  -247,  -247,    88,
+    -247,  -247,    -1,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,    49,  -247,   465,  -247,  -247,   465,   103,   465,
+     227,   -40,   192,  -247,   198,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,   -61,  -247,    98,    64,    69,
+    -150,  -247,    62,  -247,    33,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,   206,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,   226,  -247,  -247,   465,   465,  -247,  -247,  -247,  -247,
+    -247,    68,  -247,  -247,  -247,   -58,  -247,  -247,  -247,    81,
+    -247,  -247,  -247,   465,  -247,  -247,    74,    84,    33,    76,
+    -131,  -247,    90,    33,  -247,  -247,  -247,    78,   131,  -247,
+    -247,  -247,  -247,  -247,     6,    91,    82,  -247,   100,  -247,
+      33,  -247,  -247
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
      Performed when YYTABLE does not specify something else to do.  Zero
      means the default is an error.  */
-static const yytype_uint16 yydefact[] =
+static const yytype_int16 yydefact[] =
 {
-       0,     0,     0,    24,    59,   246,     0,    72,     0,     0,
-     260,   249,     0,   238,     0,     0,   254,     0,   278,     0,
-       0,     0,   250,     0,   255,    25,     0,     0,     0,     0,
-     279,   247,     0,    23,     0,   256,   261,    22,     0,     0,
-       0,     0,     0,   257,    21,     0,     0,     0,   248,     0,
-       0,     0,     0,     0,    57,    58,   315,     0,     2,     0,
-       7,     0,     8,     0,     9,    10,    13,    11,    12,    14,
-      15,    16,    17,    18,     0,     0,     0,     0,   230,     0,
-     231,    19,     0,     5,    63,    64,    65,   204,   205,   206,
-     207,   210,   208,   209,   211,   212,   213,   214,   215,   199,
-     201,   202,   203,   162,   163,   164,   129,   160,     0,   258,
-     239,   198,   104,   105,   106,   107,   111,   108,   109,   110,
-     112,    29,    30,    28,     0,    26,     0,     6,    66,    67,
-     253,   275,   240,   274,   307,    60,    62,   168,   169,   170,
-     171,   172,   173,   174,   175,   130,   166,     0,    61,    71,
-     305,   241,   242,    68,   290,   291,   292,   293,   294,   295,
-     296,   287,   289,   137,    29,    30,   137,   137,    69,   197,
-     195,   196,   191,   193,     0,     0,   243,    99,   103,   100,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     216,   218,     0,     0,    88,    89,    90,     0,    91,    92,
-      98,    93,    97,    94,    95,    96,    81,    83,     0,     0,
-      87,   269,   301,     0,    70,   300,   302,   298,   245,     1,
-       0,     4,    31,    56,   312,   311,   232,   233,   234,   235,
-     286,   285,   284,     0,     0,    80,    76,    77,    78,    79,
-       0,    73,     0,   200,   159,   161,   259,   101,     0,   187,
-     188,   189,   190,   186,     0,     0,   184,   185,   176,   178,
-       0,     0,    27,   236,   252,   251,   237,   273,   306,   165,
-     167,   304,   265,   264,   262,     0,   288,     0,   139,   137,
-     137,   139,     0,   139,   192,   194,     0,   102,   217,   219,
-     313,   310,   308,   309,    86,    82,    84,    85,   244,     0,
-     299,   297,     3,    20,   280,   281,   282,   277,   283,   276,
-     319,   320,     0,     0,     0,    75,    74,   121,   120,     0,
-     118,   119,     0,   113,   116,   117,   182,   183,   181,   177,
-     179,   180,     0,   138,   133,   139,   139,   136,   137,   131,
-     268,     0,     0,   270,     0,    37,    38,    39,    55,    48,
-      50,    49,    52,    40,    41,    42,    43,    51,    53,    44,
-      45,    32,    33,    36,    34,     0,    35,     0,     0,     0,
-       0,   322,     0,   317,     0,   114,   128,   124,   126,   122,
-     123,   125,   127,   115,     0,   142,   143,   144,   145,   146,
-     147,   148,   150,   151,   149,   152,   153,   154,   155,   156,
-     157,     0,   158,   140,   134,   135,   139,   267,   266,   272,
-     271,     0,    46,    47,    54,     0,   316,   314,   321,     0,
-     318,   263,   141,   132,   303,   325,     0,     0,     0,     0,
-       0,   327,     0,     0,   323,   326,   324,     0,     0,   332,
-     333,   334,   335,   336,     0,     0,     0,   328,     0,   330,
-       0,   329,   331
+       0,     0,     0,    25,    60,   253,     0,    73,     0,     0,
+       0,   267,   256,     0,   245,     0,     0,   261,     0,   285,
+       0,     0,     0,   257,     0,   262,    26,     0,     0,     0,
+       0,   286,   254,     0,    24,     0,   263,   268,    23,     0,
+       0,     0,     0,     0,   264,    22,     0,     0,     0,   255,
+       0,     0,     0,     0,     0,    58,    59,   322,     0,     2,
+       0,     7,     0,     8,     0,     9,    10,    13,    11,    12,
+      14,    20,    15,    16,    17,    18,     0,     0,     0,     0,
+     237,     0,   238,    19,     0,     5,    64,    65,    66,    30,
+      31,    29,     0,    27,     0,   211,   212,   213,   214,   217,
+     215,   216,   218,   219,   220,   221,   222,   206,   208,   209,
+     210,   163,   164,   165,   130,   161,     0,   265,   246,   205,
+     105,   106,   107,   108,   112,   109,   110,   111,   113,     0,
+       6,    67,    68,   260,   282,   247,   281,   314,    61,    63,
+     169,   170,   171,   172,   173,   174,   175,   176,   131,   167,
+       0,    62,    72,   312,   248,   249,    69,   297,   298,   299,
+     300,   301,   302,   303,   294,   296,   138,    30,    31,   138,
+     138,    70,   204,   202,   203,   198,   200,     0,     0,   250,
+     100,   104,   101,   227,   228,   229,   230,   231,   232,   233,
+     234,   235,   236,   223,   225,     0,     0,    89,    90,    91,
+       0,    92,    93,    99,    94,    98,    95,    96,    97,    82,
+      84,     0,     0,    88,   276,   308,     0,    71,   307,   309,
+     305,   252,     1,     0,     4,    32,    57,   319,   318,   239,
+     240,   241,   242,   293,   292,   291,     0,     0,    81,    77,
+      78,    79,    80,     0,    74,     0,   197,   196,   192,   194,
+       0,    28,   207,   160,   162,   266,   102,     0,   188,   189,
+     190,   191,   187,     0,     0,   185,   186,   177,   179,     0,
+       0,   243,   259,   258,   244,   280,   313,   166,   168,   311,
+     272,   271,   269,     0,   295,     0,   140,   138,   138,   140,
+       0,   140,   199,   201,     0,   103,   224,   226,   320,   317,
+     315,   316,    87,    83,    85,    86,   251,     0,   306,   304,
+       3,    21,   287,   288,   289,   284,   290,   283,   326,   327,
+       0,     0,     0,    76,    75,   193,   195,   122,   121,     0,
+     119,   120,     0,   114,   117,   118,   183,   184,   182,   178,
+     180,   181,     0,   139,   134,   140,   140,   137,   138,   132,
+     275,     0,     0,   277,     0,    38,    39,    40,    56,    49,
+      51,    50,    53,    41,    42,    43,    44,    52,    54,    45,
+      46,    33,    34,    37,    35,     0,    36,     0,     0,     0,
+       0,   329,     0,   324,     0,   115,   129,   125,   127,   123,
+     124,   126,   128,   116,     0,   143,   144,   145,   146,   147,
+     148,   149,   151,   152,   150,   153,   154,   155,   156,   157,
+     158,     0,   159,   141,   135,   136,   140,   274,   273,   279,
+     278,     0,    47,    48,    55,     0,   323,   321,   328,     0,
+     325,   270,   142,   133,   310,   332,     0,     0,     0,     0,
+       0,   334,     0,     0,   330,   333,   331,     0,     0,   339,
+     340,   341,   342,   343,     0,     0,     0,   335,     0,   337,
+       0,   336,   338
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -261,  -261,  -261,   -48,  -261,  -261,   -15,   -50,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,    65,  -261,  -261,  -261,
-    -261,   -41,  -261,  -261,  -261,  -261,  -261,  -261,  -151,  -260,
-    -261,  -261,   166,  -261,  -261,   128,  -261,  -261,  -261,    21,
-    -261,  -261,  -261,  -261,   104,  -261,  -261,   263,   -43,  -261,
-    -261,  -261,  -261,    87,  -261,  -261,  -261,  -261,  -261,  -261,
-    -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
-     146,  -261,  -261,  -261,  -261,  -261,  -261,   120,  -261,  -261,
-      66,  -261,  -261,   255,    25,  -190,  -261,  -261,  -261,  -261,
-     -27,  -261,  -261,   -78,  -261,  -261,  -261,  -141,  -261,  -154,
-    -261
+    -247,  -247,  -247,   -48,  -247,  -247,    -8,   -51,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,    96,  -247,  -247,  -247,
+    -247,   -42,  -247,  -247,  -247,  -247,  -247,  -247,  -108,  -246,
+    -247,  -247,   194,  -247,  -247,   163,  -247,  -247,  -247,    50,
+    -247,  -247,  -247,  -247,    71,  -247,  -247,  -247,   140,  -247,
+    -247,   303,   -87,  -247,  -247,  -247,  -247,   127,  -247,  -247,
+    -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,  -247,
+    -247,  -247,  -247,  -247,   186,  -247,  -247,  -247,  -247,  -247,
+    -247,   159,  -247,  -247,   107,  -247,  -247,   296,    60,  -193,
+    -247,  -247,  -247,  -247,    11,  -247,  -247,   -53,  -247,  -247,
+    -247,  -106,  -247,  -122,  -247
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    57,    58,    59,    60,    61,   134,   125,   126,   303,
-     361,   362,   363,   364,   365,   366,   367,    62,    63,    64,
-      65,    86,   241,   242,    66,   206,   207,   208,   209,    67,
-     177,   120,   247,   323,   324,   325,   383,    68,   278,   334,
-     403,   106,   107,   108,   145,   146,   147,    69,   258,   259,
-     260,   261,    70,   172,   173,   174,    71,    99,   100,   101,
-     102,    72,   190,   191,   192,    73,    74,    75,   266,    76,
-      77,   110,   152,   274,   275,   176,   408,   298,   343,   132,
-     133,    78,    79,   309,   233,    80,   161,   162,   218,   214,
-     215,   216,   151,   135,   294,   226,   210,    81,    82,   312,
-     313,   314,   370,   371,   427,   372,   430,   431,   444,   445,
-     446
+       0,    58,    59,    60,    61,    62,   137,    93,    94,   311,
+     371,   372,   373,   374,   375,   376,   377,    63,    64,    65,
+      66,    88,   244,   245,    67,   209,   210,   211,   212,    68,
+     180,   128,   256,   333,   334,   335,   393,    69,   286,   344,
+     413,   114,   115,   116,   148,   149,   150,    70,   267,   268,
+     269,   270,    71,   248,   249,   250,    72,   175,   176,   177,
+      73,   107,   108,   109,   110,    74,   193,   194,   195,    75,
+      76,    77,   274,    78,    79,   118,   155,   282,   283,   179,
+     418,   306,   353,   135,   136,    80,    81,   317,   236,    82,
+     164,   165,   221,   217,   218,   219,   154,   138,   302,   229,
+     213,    83,    84,   320,   321,   322,   380,   381,   437,   382,
+     440,   441,   454,   455,   456
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1217,297 +1679,288 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     124,   211,   289,   291,   412,   178,   341,   376,   169,   212,
-     220,   264,   368,   429,   304,   281,   283,   272,   230,   297,
-       1,   337,   163,   339,   434,   167,   224,   292,   121,     2,
-     122,    84,   377,   310,   311,     3,     4,     5,    83,   112,
-     277,   231,    85,   113,     6,     7,   222,   109,   223,   248,
-     265,     8,     9,   127,   273,    10,   243,    11,   225,    12,
-      13,   282,   368,   170,    14,   164,   232,   165,   243,   128,
-     330,   417,   129,    15,   130,   404,   405,   131,    16,   263,
-     136,   305,   342,   306,   149,    17,   150,    18,   103,   153,
-     168,   175,   179,   249,   250,   251,   252,    19,    20,   123,
-      21,    22,   217,   219,   114,    23,    24,   310,   311,    25,
-      26,   221,   227,   235,   234,   378,   154,   155,    27,   228,
-     268,   229,   245,   379,   413,   171,   246,   123,   335,   336,
-     262,   270,    28,   268,    29,    30,   287,   156,   236,   317,
-      31,   237,   380,   293,   271,   277,   423,   318,   279,   280,
-      32,   319,   253,   115,   166,    33,   213,    34,   286,    35,
-     285,    36,    37,   116,   123,   290,   117,   296,   299,   301,
-     316,    38,    39,    40,    41,    42,    43,    44,   302,   157,
-      45,   307,   104,    46,   420,    47,   326,   406,   105,   315,
-     118,   320,   327,   328,    48,   119,   332,   254,   381,    49,
-      50,    51,   382,    52,    53,   308,   333,   344,   340,   158,
-      54,    55,   439,   440,   441,   442,   443,   255,   373,   374,
-      -6,    56,   256,   257,   321,   439,   440,   441,   442,   443,
-     238,   239,   338,   375,   407,   447,   384,   240,   432,     2,
-     410,   411,   414,   437,   415,     3,     4,     5,   416,   419,
-     421,   422,   424,   426,     6,     7,   428,   429,   436,   449,
-     452,     8,     9,   433,   451,    10,   450,    11,   438,    12,
-      13,   295,   244,   269,    14,   111,   284,   288,   267,   329,
-     300,   276,   159,    15,   148,   369,   331,   160,    16,   435,
-     448,   409,   418,   322,     0,    17,     0,    18,     0,     0,
-     137,   138,   139,   140,     0,     0,     0,    19,    20,     0,
-      21,    22,     0,     0,     0,    23,    24,     0,     0,    25,
-      26,     0,     0,     0,     0,     0,     0,     0,    27,     0,
-       0,   141,     0,   142,    87,   143,     0,     0,     0,    88,
-       0,   144,    28,     0,    29,    30,    89,     0,     0,     0,
-      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      32,     0,     0,     0,     0,    33,     0,    34,     0,    35,
-       0,    36,    37,     0,     0,     0,     0,     0,     0,     0,
-       0,    38,    39,    40,    41,    42,    43,    44,     0,     0,
-      45,     0,     0,    46,     0,    47,     0,     0,     0,     0,
-     425,     0,    90,     0,    48,     0,     0,     0,     0,    49,
-      50,    51,     0,    52,    53,     0,     0,     2,     0,   345,
-      54,    55,     0,     3,     4,     5,     0,     0,     0,   346,
-      -6,    56,     6,     7,     0,     0,    91,    92,     0,     8,
-       9,     0,     0,    10,     0,    11,     0,    12,    13,   180,
-       0,     0,    14,     0,     0,    93,     0,     0,     0,     0,
-      94,    15,     0,     0,     0,     0,    16,     0,   347,   348,
-       0,     0,     0,    17,     0,    18,     0,   181,     0,     0,
-       0,     0,     0,     0,     0,    19,    20,   349,    21,    22,
-       0,    95,     0,    23,    24,     0,   182,    25,    26,     0,
-     183,     0,     0,     0,     0,     0,    27,     0,   350,     0,
-       0,     0,     0,     0,    96,    97,    98,   351,     0,   352,
-      28,     0,    29,    30,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,   353,     0,     0,    32,     0,
-       0,     0,     0,    33,     0,    34,     0,    35,     0,    36,
-      37,     0,     0,     0,     0,   354,   355,     0,     0,    38,
-      39,    40,    41,    42,    43,    44,     0,     0,    45,     0,
-       0,    46,     0,    47,     0,     0,   385,     0,   184,     0,
-       0,     0,    48,     0,     0,   386,     0,    49,    50,    51,
-       0,    52,    53,   356,   387,   357,     0,     0,    54,    55,
-       0,     0,     0,   358,     0,     0,     0,   359,   360,    56,
-     185,   186,   187,   188,   388,     0,     0,   389,   189,   193,
-       0,   194,   195,   390,     0,     0,     0,     0,   196,     0,
-       0,   197,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   391,     0,
-       0,     0,   392,   393,     0,     0,   394,   395,   396,   198,
-     397,   398,   399,     0,   400,     0,     0,     0,     0,     0,
+      92,   214,   297,   386,   215,   181,     1,   422,   129,   312,
+     378,   223,   272,   172,   351,     2,    89,   378,    90,   305,
+     252,     3,     4,     5,   299,   246,    85,   233,   387,   327,
+       6,     7,   252,   170,   157,   158,     8,   328,     9,    10,
+     111,   329,    11,   347,    12,   349,    13,    14,   300,    86,
+     234,    15,   273,   280,   225,   159,   226,   355,   238,   247,
+      16,   289,   291,   318,   319,    17,    87,   356,   173,   227,
+     427,   166,    18,   285,    19,   235,   340,   313,   439,   314,
+     117,   330,   271,   239,    20,    21,   240,    22,    23,   444,
+     352,   281,    24,    25,   290,   130,    26,    27,   160,   414,
+     415,   228,   318,   319,   131,    28,   132,   357,   358,   133,
+     139,   134,   388,   156,   331,   167,    91,   168,   152,    29,
+     389,    30,    31,   171,   153,   178,   359,    32,   161,   423,
+     276,   174,   120,   182,    91,   112,   121,    33,   295,   390,
+     220,   113,    34,   276,    35,   222,    36,   360,    37,    38,
+     224,   230,   231,   216,   254,   255,   361,   232,   362,    39,
+      40,    41,    42,    43,    44,    45,   301,   237,    46,   251,
+     433,    47,   278,    48,   363,   285,   241,   242,   315,   345,
+     346,   279,    49,   243,   287,   332,   288,   294,    50,    51,
+      52,   430,    53,    54,   293,   364,   365,   391,   122,    55,
+      56,   392,   162,   316,   298,   169,     2,   304,   163,    -6,
+      57,   307,     3,     4,     5,    91,   449,   450,   451,   452,
+     453,     6,     7,   309,   310,   323,   457,     8,   324,     9,
+      10,   326,   336,    11,   366,    12,   367,    13,    14,   348,
+     416,   337,    15,   338,   368,   442,   342,   123,   369,   370,
+     447,    16,   343,   350,   354,   383,    17,   417,   124,   384,
+     420,   125,   385,    18,   394,    19,   421,   462,   140,   141,
+     142,   143,   424,   426,   431,    20,    21,   183,    22,    23,
+     425,   429,   432,    24,    25,   126,   434,    26,    27,   436,
+     438,   127,   443,   439,   446,   459,    28,   448,   460,   144,
+     419,   145,    95,   146,   461,   303,   184,    96,   253,   147,
+      29,   277,    30,    31,    97,   292,   119,   339,    32,   325,
+     296,   275,   257,   284,   308,   185,   151,   428,    33,   186,
+     341,   379,   458,    34,   445,    35,     0,    36,     0,    37,
+      38,   449,   450,   451,   452,   453,     0,     0,     0,     0,
+      39,    40,    41,    42,    43,    44,    45,     0,     0,    46,
+       0,     0,    47,     0,    48,     0,     0,   258,   259,   260,
+     261,    98,     0,    49,     0,     0,     0,     0,     0,    50,
+      51,    52,     0,    53,    54,     0,     0,     2,     0,     0,
+      55,    56,     0,     3,     4,     5,     0,     0,     0,     0,
+      -6,    57,     6,     7,     0,    99,   100,   187,     8,     0,
+       9,    10,     0,     0,    11,     0,    12,   435,    13,    14,
+       0,     0,     0,    15,   101,     0,   262,     0,     0,   102,
+       0,     0,    16,     0,     0,     0,     0,    17,     0,     0,
+     188,   189,   190,   191,    18,     0,    19,     0,   192,     0,
+       0,     0,     0,     0,     0,     0,    20,    21,     0,    22,
+      23,   103,     0,     0,    24,    25,     0,     0,    26,    27,
+       0,     0,   263,     0,     0,     0,     0,    28,     0,     0,
+       0,     0,     0,     0,     0,   104,   105,   106,     0,     0,
+       0,    29,   264,    30,    31,     0,     0,   265,   266,    32,
+       0,     0,     0,     0,     0,     0,     0,     0,   395,    33,
+       0,     0,     0,     0,    34,     0,    35,   396,    36,     0,
+      37,    38,     0,     0,     0,     0,   397,     0,     0,     0,
+       0,    39,    40,    41,    42,    43,    44,    45,     0,     0,
+      46,     0,     0,    47,     0,    48,   398,     0,     0,   399,
+       0,     0,     0,     0,    49,   400,     0,     0,     0,     0,
+      50,    51,    52,     0,    53,    54,   196,     0,   197,   198,
+       0,    55,    56,     0,     0,   199,     0,     0,   200,     0,
+     401,     0,    57,     0,   402,   403,     0,     0,   404,   405,
+     406,     0,   407,   408,   409,     0,   410,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   201,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   411,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   202,
+       0,   203,     0,     0,     0,     0,     0,   204,     0,   205,
+       0,   412,     0,   206,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   401,     0,     0,     0,     0,     0,     0,
-       0,   199,     0,   200,     0,     0,     0,     0,     0,   201,
-       0,   202,     0,     0,     0,   203,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   402,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
-     205
+       0,     0,     0,     0,     0,     0,     0,   207,   208
 };
 
 static const yytype_int16 yycheck[] =
 {
-      15,    51,   192,    43,    67,    46,    68,     4,    46,    67,
-      58,    22,   158,   206,     5,   166,   167,    30,    37,   209,
-       1,   281,    30,   283,   217,    40,    35,    67,    73,    10,
-      75,    67,    29,   203,   204,    16,    17,    18,   201,    23,
-      71,    60,    67,    27,    25,    26,    61,   172,    63,     3,
-      61,    32,    33,   172,    67,    36,    99,    38,    67,    40,
-      41,    92,   158,   101,    45,    73,    85,    75,   111,   172,
-     260,   217,   172,    54,   172,   335,   336,   172,    59,   127,
-      67,    72,   144,    74,   172,    66,   172,    68,    11,    67,
-      67,   172,   172,    47,    48,    49,    50,    78,    79,   172,
-      81,    82,    67,     0,    88,    86,    87,   203,   204,    90,
-      91,   201,    67,    31,   216,   112,     7,     8,    99,   172,
-     135,   172,    67,   120,   187,   163,    35,   172,   279,   280,
-     172,    67,   113,   148,   115,   116,   177,    28,    56,    32,
-     121,    59,   139,   183,   172,    71,   406,    40,    30,    30,
-     131,    44,   106,   137,   162,   136,   214,   138,   213,   140,
-      67,   142,   143,   147,   172,   172,   150,    67,    67,    67,
-     172,   152,   153,   154,   155,   156,   157,   158,   201,    70,
-     161,   172,   105,   164,   374,   166,   172,   338,   111,    67,
-     174,    84,   172,    67,   175,   179,    67,   151,   195,   180,
-     181,   182,   199,   184,   185,   196,    67,    39,   172,   100,
-     191,   192,   207,   208,   209,   210,   211,   171,   201,   213,
-     201,   202,   176,   177,   117,   207,   208,   209,   210,   211,
-     148,   149,   282,   172,    30,   217,   212,   155,   428,    10,
-      67,    67,   172,   433,   213,    16,    17,    18,   201,   216,
-      67,    55,   215,   205,    25,    26,   213,   206,   201,   201,
-     450,    32,    33,   213,   201,    36,   213,    38,   216,    40,
-      41,   206,   106,   145,    45,    12,   172,   190,   132,   258,
-     214,   161,   173,    54,    29,   312,   261,   178,    59,   430,
-     444,   341,   370,   186,    -1,    66,    -1,    68,    -1,    -1,
-      62,    63,    64,    65,    -1,    -1,    -1,    78,    79,    -1,
-      81,    82,    -1,    -1,    -1,    86,    87,    -1,    -1,    90,
-      91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
-      -1,    93,    -1,    95,     8,    97,    -1,    -1,    -1,    13,
-      -1,   103,   113,    -1,   115,   116,    20,    -1,    -1,    -1,
-     121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     131,    -1,    -1,    -1,    -1,   136,    -1,   138,    -1,   140,
-      -1,   142,   143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   152,   153,   154,   155,   156,   157,   158,    -1,    -1,
-     161,    -1,    -1,   164,    -1,   166,    -1,    -1,    -1,    -1,
-     415,    -1,    76,    -1,   175,    -1,    -1,    -1,    -1,   180,
-     181,   182,    -1,   184,   185,    -1,    -1,    10,    -1,     9,
-     191,   192,    -1,    16,    17,    18,    -1,    -1,    -1,    19,
-     201,   202,    25,    26,    -1,    -1,   110,   111,    -1,    32,
-      33,    -1,    -1,    36,    -1,    38,    -1,    40,    41,     6,
-      -1,    -1,    45,    -1,    -1,   129,    -1,    -1,    -1,    -1,
-     134,    54,    -1,    -1,    -1,    -1,    59,    -1,    58,    59,
-      -1,    -1,    -1,    66,    -1,    68,    -1,    34,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    78,    79,    77,    81,    82,
-      -1,   165,    -1,    86,    87,    -1,    53,    90,    91,    -1,
-      57,    -1,    -1,    -1,    -1,    -1,    99,    -1,    98,    -1,
-      -1,    -1,    -1,    -1,   188,   189,   190,   107,    -1,   109,
-     113,    -1,   115,   116,    -1,    -1,    -1,    -1,   121,    -1,
-      -1,    -1,    -1,    -1,    -1,   125,    -1,    -1,   131,    -1,
-      -1,    -1,    -1,   136,    -1,   138,    -1,   140,    -1,   142,
-     143,    -1,    -1,    -1,    -1,   145,   146,    -1,    -1,   152,
-     153,   154,   155,   156,   157,   158,    -1,    -1,   161,    -1,
-      -1,   164,    -1,   166,    -1,    -1,    42,    -1,   135,    -1,
-      -1,    -1,   175,    -1,    -1,    51,    -1,   180,   181,   182,
-      -1,   184,   185,   183,    60,   185,    -1,    -1,   191,   192,
-      -1,    -1,    -1,   193,    -1,    -1,    -1,   197,   198,   202,
-     167,   168,   169,   170,    80,    -1,    -1,    83,   175,    12,
-      -1,    14,    15,    89,    -1,    -1,    -1,    -1,    21,    -1,
-      -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
-      -1,    -1,   118,   119,    -1,    -1,   122,   123,   124,    52,
-     126,   127,   128,    -1,   130,    -1,    -1,    -1,    -1,    -1,
+       8,    52,   195,     4,    68,    47,     1,    68,    16,     5,
+     160,    59,    22,    47,    69,    10,    74,   160,    76,   212,
+     107,    16,    17,    18,    44,   146,   204,    38,    29,    33,
+      25,    26,   119,    41,     7,     8,    31,    41,    33,    34,
+      11,    45,    37,   289,    39,   291,    41,    42,    68,    68,
+      61,    46,    62,    30,    62,    28,    64,     9,    32,   180,
+      55,   169,   170,   206,   207,    60,    68,    19,   102,    36,
+     220,    30,    67,    72,    69,    86,   269,    73,   209,    75,
+     174,    85,   130,    57,    79,    80,    60,    82,    83,   220,
+     145,    68,    87,    88,    93,   174,    91,    92,    71,   345,
+     346,    68,   206,   207,   174,   100,   174,    59,    60,   174,
+      68,   174,   113,    68,   118,    74,   174,    76,   174,   114,
+     121,   116,   117,    68,   174,   174,    78,   122,   101,   190,
+     138,   165,    23,   174,   174,   106,    27,   132,   180,   140,
+      68,   112,   137,   151,   139,     0,   141,    99,   143,   144,
+     204,    68,   174,   217,    68,    36,   108,   174,   110,   154,
+     155,   156,   157,   158,   159,   160,   186,   219,   163,   174,
+     416,   166,    68,   168,   126,    72,   150,   151,   174,   287,
+     288,   174,   177,   157,    30,   189,    30,   216,   183,   184,
+     185,   384,   187,   188,    68,   147,   148,   198,    89,   194,
+     195,   202,   175,   199,   174,   164,    10,    68,   181,   204,
+     205,    68,    16,    17,    18,   174,   210,   211,   212,   213,
+     214,    25,    26,    68,   204,    68,   220,    31,   174,    33,
+      34,   174,   174,    37,   186,    39,   188,    41,    42,   290,
+     348,   174,    46,    68,   196,   438,    68,   138,   200,   201,
+     443,    55,    68,   174,    40,   204,    60,    30,   149,   216,
+      68,   152,   174,    67,   215,    69,    68,   460,    63,    64,
+      65,    66,   174,   204,    68,    79,    80,     6,    82,    83,
+     216,   219,    56,    87,    88,   176,   218,    91,    92,   208,
+     216,   182,   216,   209,   204,   204,   100,   219,   216,    94,
+     351,    96,     8,    98,   204,   209,    35,    13,   114,   104,
+     114,   148,   116,   117,    20,   175,    13,   267,   122,   248,
+     193,   135,     3,   164,   217,    54,    30,   380,   132,    58,
+     270,   320,   454,   137,   440,   139,    -1,   141,    -1,   143,
+     144,   210,   211,   212,   213,   214,    -1,    -1,    -1,    -1,
+     154,   155,   156,   157,   158,   159,   160,    -1,    -1,   163,
+      -1,    -1,   166,    -1,   168,    -1,    -1,    48,    49,    50,
+      51,    77,    -1,   177,    -1,    -1,    -1,    -1,    -1,   183,
+     184,   185,    -1,   187,   188,    -1,    -1,    10,    -1,    -1,
+     194,   195,    -1,    16,    17,    18,    -1,    -1,    -1,    -1,
+     204,   205,    25,    26,    -1,   111,   112,   136,    31,    -1,
+      33,    34,    -1,    -1,    37,    -1,    39,   425,    41,    42,
+      -1,    -1,    -1,    46,   130,    -1,   107,    -1,    -1,   135,
+      -1,    -1,    55,    -1,    -1,    -1,    -1,    60,    -1,    -1,
+     169,   170,   171,   172,    67,    -1,    69,    -1,   177,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    -1,    82,
+      83,   167,    -1,    -1,    87,    88,    -1,    -1,    91,    92,
+      -1,    -1,   153,    -1,    -1,    -1,    -1,   100,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   191,   192,   193,    -1,    -1,
+      -1,   114,   173,   116,   117,    -1,    -1,   178,   179,   122,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,   132,
+      -1,    -1,    -1,    -1,   137,    -1,   139,    52,   141,    -1,
+     143,   144,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,
+      -1,   154,   155,   156,   157,   158,   159,   160,    -1,    -1,
+     163,    -1,    -1,   166,    -1,   168,    81,    -1,    -1,    84,
+      -1,    -1,    -1,    -1,   177,    90,    -1,    -1,    -1,    -1,
+     183,   184,   185,    -1,   187,   188,    12,    -1,    14,    15,
+      -1,   194,   195,    -1,    -1,    21,    -1,    -1,    24,    -1,
+     115,    -1,   205,    -1,   119,   120,    -1,    -1,   123,   124,
+     125,    -1,   127,   128,   129,    -1,   131,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   159,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    94,    -1,    96,    -1,    -1,    -1,    -1,    -1,   102,
-      -1,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
-     133
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
+      -1,    97,    -1,    -1,    -1,    -1,    -1,   103,    -1,   105,
+      -1,   196,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   133,   134
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
-static const yytype_uint16 yystos[] =
+static const yytype_int16 yystos[] =
 {
-       0,     1,    10,    16,    17,    18,    25,    26,    32,    33,
-      36,    38,    40,    41,    45,    54,    59,    66,    68,    78,
-      79,    81,    82,    86,    87,    90,    91,    99,   113,   115,
-     116,   121,   131,   136,   138,   140,   142,   143,   152,   153,
-     154,   155,   156,   157,   158,   161,   164,   166,   175,   180,
-     181,   182,   184,   185,   191,   192,   202,   219,   220,   221,
-     222,   223,   235,   236,   237,   238,   242,   247,   255,   265,
-     270,   274,   279,   283,   284,   285,   287,   288,   299,   300,
-     303,   315,   316,   201,    67,    67,   239,     8,    13,    20,
-      76,   110,   111,   129,   134,   165,   188,   189,   190,   275,
-     276,   277,   278,    11,   105,   111,   259,   260,   261,   172,
-     289,   275,    23,    27,    88,   137,   147,   150,   174,   179,
-     249,    73,    75,   172,   224,   225,   226,   172,   172,   172,
-     172,   172,   297,   298,   224,   311,    67,    62,    63,    64,
-      65,    93,    95,    97,   103,   262,   263,   264,   311,   172,
-     172,   310,   290,    67,     7,     8,    28,    70,   100,   173,
-     178,   304,   305,    30,    73,    75,   162,   224,    67,    46,
-     101,   163,   271,   272,   273,   172,   293,   248,   249,   172,
-       6,    34,    53,    57,   135,   167,   168,   169,   170,   175,
-     280,   281,   282,    12,    14,    15,    21,    24,    52,    94,
-      96,   102,   104,   108,   132,   133,   243,   244,   245,   246,
-     314,   225,    67,   214,   307,   308,   309,    67,   306,     0,
-     221,   201,   224,   224,    35,    67,   313,    67,   172,   172,
-      37,    60,    85,   302,   216,    31,    56,    59,   148,   149,
-     155,   240,   241,   276,   260,    67,    35,   250,     3,    47,
-      48,    49,    50,   106,   151,   171,   176,   177,   266,   267,
-     268,   269,   172,   221,    22,    61,   286,   298,   224,   263,
-      67,   172,    30,    67,   291,   292,   305,    71,   256,    30,
-      30,   256,    92,   256,   272,    67,   213,   249,   281,   313,
-     172,    43,    67,   183,   312,   244,    67,   313,   295,    67,
-     308,    67,   201,   227,     5,    72,    74,   172,   196,   301,
-     203,   204,   317,   318,   319,    67,   172,    32,    40,    44,
-      84,   117,   186,   251,   252,   253,   172,   172,    67,   267,
-     313,   312,    67,    67,   257,   256,   256,   257,   225,   257,
-     172,    68,   144,   296,    39,     9,    19,    58,    59,    77,
-      98,   107,   109,   125,   145,   146,   183,   185,   193,   197,
-     198,   228,   229,   230,   231,   232,   233,   234,   158,   318,
-     320,   321,   323,   201,   213,   172,     4,    29,   112,   120,
-     139,   195,   199,   254,   212,    42,    51,    60,    80,    83,
-      89,   114,   118,   119,   122,   123,   124,   126,   127,   128,
-     130,   159,   193,   258,   257,   257,   256,    30,   294,   225,
-      67,    67,    67,   187,   172,   213,   201,   217,   321,   216,
-     313,    67,    55,   257,   215,   224,   205,   322,   213,   206,
-     324,   325,   313,   213,   217,   325,   201,   313,   216,   207,
-     208,   209,   210,   211,   326,   327,   328,   217,   327,   201,
-     213,   201,   313
+       0,     1,    10,    16,    17,    18,    25,    26,    31,    33,
+      34,    37,    39,    41,    42,    46,    55,    60,    67,    69,
+      79,    80,    82,    83,    87,    88,    91,    92,   100,   114,
+     116,   117,   122,   132,   137,   139,   141,   143,   144,   154,
+     155,   156,   157,   158,   159,   160,   163,   166,   168,   177,
+     183,   184,   185,   187,   188,   194,   195,   205,   222,   223,
+     224,   225,   226,   238,   239,   240,   241,   245,   250,   258,
+     268,   273,   277,   281,   286,   290,   291,   292,   294,   295,
+     306,   307,   310,   322,   323,   204,    68,    68,   242,    74,
+      76,   174,   227,   228,   229,     8,    13,    20,    77,   111,
+     112,   130,   135,   167,   191,   192,   193,   282,   283,   284,
+     285,    11,   106,   112,   262,   263,   264,   174,   296,   282,
+      23,    27,    89,   138,   149,   152,   176,   182,   252,   227,
+     174,   174,   174,   174,   174,   304,   305,   227,   318,    68,
+      63,    64,    65,    66,    94,    96,    98,   104,   265,   266,
+     267,   318,   174,   174,   317,   297,    68,     7,     8,    28,
+      71,   101,   175,   181,   311,   312,    30,    74,    76,   164,
+     227,    68,    47,   102,   165,   278,   279,   280,   174,   300,
+     251,   252,   174,     6,    35,    54,    58,   136,   169,   170,
+     171,   172,   177,   287,   288,   289,    12,    14,    15,    21,
+      24,    53,    95,    97,   103,   105,   109,   133,   134,   246,
+     247,   248,   249,   321,   228,    68,   217,   314,   315,   316,
+      68,   313,     0,   224,   204,   227,   227,    36,    68,   320,
+      68,   174,   174,    38,    61,    86,   309,   219,    32,    57,
+      60,   150,   151,   157,   243,   244,   146,   180,   274,   275,
+     276,   174,   283,   263,    68,    36,   253,     3,    48,    49,
+      50,    51,   107,   153,   173,   178,   179,   269,   270,   271,
+     272,   224,    22,    62,   293,   305,   227,   266,    68,   174,
+      30,    68,   298,   299,   312,    72,   259,    30,    30,   259,
+      93,   259,   279,    68,   216,   252,   288,   320,   174,    44,
+      68,   186,   319,   247,    68,   320,   302,    68,   315,    68,
+     204,   230,     5,    73,    75,   174,   199,   308,   206,   207,
+     324,   325,   326,    68,   174,   275,   174,    33,    41,    45,
+      85,   118,   189,   254,   255,   256,   174,   174,    68,   270,
+     320,   319,    68,    68,   260,   259,   259,   260,   228,   260,
+     174,    69,   145,   303,    40,     9,    19,    59,    60,    78,
+      99,   108,   110,   126,   147,   148,   186,   188,   196,   200,
+     201,   231,   232,   233,   234,   235,   236,   237,   160,   325,
+     327,   328,   330,   204,   216,   174,     4,    29,   113,   121,
+     140,   198,   202,   257,   215,    43,    52,    61,    81,    84,
+      90,   115,   119,   120,   123,   124,   125,   127,   128,   129,
+     131,   161,   196,   261,   260,   260,   259,    30,   301,   228,
+      68,    68,    68,   190,   174,   216,   204,   220,   328,   219,
+     320,    68,    56,   260,   218,   227,   208,   329,   216,   209,
+     331,   332,   320,   216,   220,   332,   204,   320,   219,   210,
+     211,   212,   213,   214,   333,   334,   335,   220,   334,   204,
+     216,   204,   320
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint16 yyr1[] =
+static const yytype_int16 yyr1[] =
 {
-       0,   218,   219,   220,   220,   220,   221,   221,   221,   221,
-     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
-     222,   223,   223,   223,   223,   223,   224,   224,   225,   226,
-     226,   227,   227,   228,   228,   228,   229,   230,   230,   230,
-     230,   230,   230,   230,   230,   230,   231,   231,   232,   232,
-     232,   232,   232,   232,   233,   234,   235,   236,   236,   237,
-     237,   237,   237,   238,   238,   238,   238,   238,   238,   238,
-     238,   238,   239,   239,   240,   240,   241,   241,   241,   241,
-     241,   242,   243,   243,   244,   244,   244,   244,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   246,   246,   247,
-     247,   247,   248,   248,   249,   249,   249,   249,   249,   249,
-     249,   249,   250,   250,   251,   251,   251,   251,   252,   252,
-     253,   253,   254,   254,   254,   254,   254,   254,   254,   255,
-     255,   255,   255,   255,   255,   255,   255,   256,   256,   257,
-     257,   257,   258,   258,   258,   258,   258,   258,   258,   258,
-     258,   258,   258,   258,   258,   258,   258,   258,   258,   259,
-     259,   260,   261,   261,   261,   262,   262,   263,   264,   264,
-     264,   264,   264,   264,   264,   264,   265,   266,   266,   267,
-     267,   267,   267,   267,   268,   268,   268,   269,   269,   269,
-     269,   270,   271,   271,   272,   273,   273,   273,   274,   274,
-     275,   275,   276,   276,   277,   277,   277,   277,   277,   277,
-     278,   278,   278,   278,   278,   278,   279,   280,   280,   281,
-     282,   282,   282,   282,   282,   282,   282,   282,   282,   282,
-     283,   283,   283,   283,   283,   283,   283,   283,   283,   283,
-     283,   283,   283,   283,   283,   283,   284,   284,   284,   285,
-     285,   286,   286,   286,   287,   288,   288,   288,   289,   289,
-     289,   290,   290,   291,   292,   292,   293,   294,   294,   295,
-     295,   296,   296,   297,   297,   298,   299,   299,   300,   300,
-     301,   301,   301,   301,   302,   302,   302,   303,   304,   304,
-     305,   305,   305,   305,   305,   305,   305,   306,   306,   307,
-     307,   308,   308,   309,   310,   310,   311,   311,   312,   312,
-     312,   313,   313,   314,   315,   316,   317,   317,   318,   319,
-     319,   320,   320,   321,   322,   323,   324,   324,   325,   326,
-     326,   327,   328,   328,   328,   328,   328
+       0,   221,   222,   223,   223,   223,   224,   224,   224,   224,
+     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
+     224,   225,   226,   226,   226,   226,   226,   227,   227,   228,
+     229,   229,   230,   230,   231,   231,   231,   232,   233,   233,
+     233,   233,   233,   233,   233,   233,   233,   234,   234,   235,
+     235,   235,   235,   235,   235,   236,   237,   238,   239,   239,
+     240,   240,   240,   240,   241,   241,   241,   241,   241,   241,
+     241,   241,   241,   242,   242,   243,   243,   244,   244,   244,
+     244,   244,   245,   246,   246,   247,   247,   247,   247,   248,
+     248,   248,   248,   248,   248,   248,   248,   248,   249,   249,
+     250,   250,   250,   251,   251,   252,   252,   252,   252,   252,
+     252,   252,   252,   253,   253,   254,   254,   254,   254,   255,
+     255,   256,   256,   257,   257,   257,   257,   257,   257,   257,
+     258,   258,   258,   258,   258,   258,   258,   258,   259,   259,
+     260,   260,   260,   261,   261,   261,   261,   261,   261,   261,
+     261,   261,   261,   261,   261,   261,   261,   261,   261,   261,
+     262,   262,   263,   264,   264,   264,   265,   265,   266,   267,
+     267,   267,   267,   267,   267,   267,   267,   268,   269,   269,
+     270,   270,   270,   270,   270,   271,   271,   271,   272,   272,
+     272,   272,   273,   274,   274,   275,   276,   276,   277,   278,
+     278,   279,   280,   280,   280,   281,   281,   282,   282,   283,
+     283,   284,   284,   284,   284,   284,   284,   285,   285,   285,
+     285,   285,   285,   286,   287,   287,   288,   289,   289,   289,
+     289,   289,   289,   289,   289,   289,   289,   290,   290,   290,
+     290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
+     290,   290,   290,   291,   291,   291,   292,   292,   293,   293,
+     293,   294,   295,   295,   295,   296,   296,   296,   297,   297,
+     298,   299,   299,   300,   301,   301,   302,   302,   303,   303,
+     304,   304,   305,   306,   306,   307,   307,   308,   308,   308,
+     308,   309,   309,   309,   310,   311,   311,   312,   312,   312,
+     312,   312,   312,   312,   313,   313,   314,   314,   315,   315,
+     316,   317,   317,   318,   318,   319,   319,   319,   320,   320,
+     321,   322,   323,   324,   324,   325,   326,   326,   327,   327,
+     328,   329,   330,   331,   331,   332,   333,   333,   334,   335,
+     335,   335,   335,   335
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
+static const yytype_int8 yyr2[] =
 {
        0,     2,     1,     3,     2,     2,     0,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       3,     1,     1,     1,     1,     1,     1,     2,     1,     1,
-       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     1,     1,
-       1,     1,     1,     1,     2,     1,     2,     1,     1,     1,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     0,     2,     2,     2,     1,     1,     1,     1,
-       1,     2,     2,     1,     2,     2,     2,     1,     1,     1,
+       1,     3,     1,     1,     1,     1,     1,     1,     2,     1,
+       1,     1,     0,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     2,     2,     1,
+       1,     1,     1,     1,     1,     2,     1,     2,     1,     1,
+       1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     0,     2,     2,     2,     1,     1,     1,
+       1,     1,     2,     2,     1,     2,     2,     2,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       2,     2,     3,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     0,     2,     2,     2,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       2,     2,     4,     6,     4,     5,     5,     4,     0,     2,
+       0,     2,     3,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       2,     1,     2,     1,     1,     1,     2,     1,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     3,     2,     1,
+       2,     2,     2,     2,     2,     1,     1,     1,     1,     1,
+       1,     1,     3,     2,     1,     2,     1,     1,     2,     2,
+       1,     2,     1,     1,     1,     2,     2,     2,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     2,     2,     1,     2,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     3,     3,     1,     2,     2,     2,     2,
        2,     3,     2,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     0,     2,     2,     2,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
-       2,     4,     6,     4,     5,     5,     4,     0,     2,     0,
-       2,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
-       1,     2,     1,     1,     1,     2,     1,     2,     1,     1,
-       1,     1,     1,     1,     1,     1,     3,     2,     1,     2,
-       2,     2,     2,     2,     1,     1,     1,     1,     1,     1,
-       1,     2,     2,     1,     2,     1,     1,     1,     2,     2,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     1,     2,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     2,     2,     2,     3,     3,     1,     2,
-       2,     2,     2,     2,     3,     2,     1,     1,     1,     1,
-       1,     1,     1,     0,     1,     1,     1,     1,     1,     2,
-       0,     0,     2,     4,     1,     1,     4,     1,     0,     0,
-       2,     2,     2,     2,     1,     1,     3,     3,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     2,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     1,     2,
-       1,     1,     1,     5,     2,     1,     2,     1,     1,     1,
-       1,     1,     1,     2,     5,     1,     3,     2,     3,     1,
-       1,     2,     1,     5,     4,     3,     2,     1,     6,     3,
-       2,     3,     1,     1,     1,     1,     1
+       0,     1,     1,     1,     1,     1,     2,     0,     0,     2,
+       4,     1,     1,     4,     1,     0,     0,     2,     2,     2,
+       2,     1,     1,     3,     3,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     2,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     1,     2,     1,     1,     1,
+       5,     2,     1,     2,     1,     1,     1,     1,     1,     1,
+       2,     5,     1,     3,     2,     3,     1,     1,     2,     1,
+       5,     4,     3,     2,     1,     6,     3,     2,     3,     1,
+       1,     1,     1,     1
 };
 
 
+enum { YYENOMEM = -2 };
+
 #define yyerrok         (yyerrstatus = 0)
 #define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
 
 #define YYACCEPT        goto yyacceptlab
 #define YYABORT         goto yyabortlab
@@ -1516,27 +1969,26 @@ static const yytype_uint8 yyr2[] =
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
-
-/* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
+#define YYBACKUP(Token, Value)                                    \
+  do                                                              \
+    if (yychar == YYEMPTY)                                        \
+      {                                                           \
+        yychar = (Token);                                         \
+        yylval = (Value);                                         \
+        YYPOPSTACK (yylen);                                       \
+        yystate = *yyssp;                                         \
+        goto yybackup;                                            \
+      }                                                           \
+    else                                                          \
+      {                                                           \
+        yyerror (YY_("syntax error: cannot back up")); \
+        YYERROR;                                                  \
+      }                                                           \
+  while (0)
+
+/* Backward compatibility with an undocumented macro.
+   Use YYerror or YYUNDEF. */
+#define YYERRCODE YYUNDEF
 
 
 /* Enable debugging if requested.  */
@@ -1554,54 +2006,58 @@ do {                                            \
 } while (0)
 
 /* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
+# ifndef YY_LOCATION_PRINT
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
 
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
 do {                                                                      \
   if (yydebug)                                                            \
     {                                                                     \
       YYFPRINTF (stderr, "%s ", Title);                                   \
       yy_symbol_print (stderr,                                            \
-                  Type, Value); \
+                  Kind, Value); \
       YYFPRINTF (stderr, "\n");                                           \
     }                                                                     \
 } while (0)
 
 
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
+/*-----------------------------------.
+| Print this symbol's value on YYO.  |
+`-----------------------------------*/
 
 static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_value_print (FILE *yyo,
+                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
+  FILE *yyoutput = yyo;
+  YY_USE (yyoutput);
   if (!yyvaluep)
     return;
 # ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+  if (yykind < YYNTOKENS)
+    YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
 # endif
-  YYUSE (yytype);
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  YY_USE (yykind);
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+/*---------------------------.
+| Print this symbol on YYO.  |
+`---------------------------*/
 
 static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_print (FILE *yyo,
+                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+  YYFPRINTF (yyo, "%s %s (",
+             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
 
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-  YYFPRINTF (yyoutput, ")");
+  yy_symbol_value_print (yyo, yykind, yyvaluep);
+  YYFPRINTF (yyo, ")");
 }
 
 /*------------------------------------------------------------------.
@@ -1610,7 +2066,7 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
 `------------------------------------------------------------------*/
 
 static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
 {
   YYFPRINTF (stderr, "Stack now");
   for (; yybottom <= yytop; yybottom++)
@@ -1633,21 +2089,21 @@ do {                                                            \
 `------------------------------------------------*/
 
 static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
+yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
+                 int yyrule)
 {
-  unsigned long int yylno = yyrline[yyrule];
+  int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
              yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr,
-                       yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                                              );
+                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
+                       &yyvsp[(yyi + 1) - (yynrhs)]);
       YYFPRINTF (stderr, "\n");
     }
 }
@@ -1662,8 +2118,8 @@ do {                                    \
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YYDPRINTF(Args) ((void) 0)
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
 # define YY_STACK_PRINT(Bottom, Top)
 # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
@@ -1686,249 +2142,30 @@ int yydebug;
 #endif
 
 
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
 
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
 
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                    return 2;
-                  yysize = yysize1;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  {
-    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-      return 2;
-    yysize = yysize1;
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
 
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
 
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
 static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg,
+            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
 {
-  YYUSE (yyvaluep);
+  YY_USE (yyvaluep);
   if (!yymsg)
     yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
-
-
-/* The lookahead symbol.  */
+/* Lookahead token kind.  */
 int yychar;
 
 /* The semantic value of the lookahead symbol.  */
@@ -1937,6 +2174,8 @@ YYSTYPE yylval;
 int yynerrs;
 
 
+
+
 /*----------.
 | yyparse.  |
 `----------*/
@@ -1944,43 +2183,36 @@ int yynerrs;
 int
 yyparse (void)
 {
-    int yystate;
+    yy_state_fast_t yystate = 0;
     /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
+    int yyerrstatus = 0;
 
-       Refer to the stacks through separate pointers, to allow yyoverflow
+    /* Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
 
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
+    /* Their size.  */
+    YYPTRDIFF_T yystacksize = YYINITDEPTH;
 
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
+    /* The state stack: array, bottom, top.  */
+    yy_state_t yyssa[YYINITDEPTH];
+    yy_state_t *yyss = yyssa;
+    yy_state_t *yyssp = yyss;
 
-    YYSIZE_T yystacksize;
+    /* The semantic value stack: array, bottom, top.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs = yyvsa;
+    YYSTYPE *yyvsp = yyvs;
 
   int yyn;
+  /* The return value of yyparse.  */
   int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
+  /* Lookahead symbol kind.  */
+  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
+
 
 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
@@ -1988,58 +2220,60 @@ yyparse (void)
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
   YYDPRINTF ((stderr, "Starting parse\n"));
 
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
   yychar = YYEMPTY; /* Cause a token to be read.  */
   goto yysetstate;
 
+
 /*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
+| yynewstate -- push a new state, which is found in yystate.  |
 `------------------------------------------------------------*/
- yynewstate:
+yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
- yysetstate:
-  *yyssp = yystate;
+
+/*--------------------------------------------------------------------.
+| yysetstate -- set current state (the top of the stack) to yystate.  |
+`--------------------------------------------------------------------*/
+yysetstate:
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
+  YY_IGNORE_USELESS_CAST_BEGIN
+  *yyssp = YY_CAST (yy_state_t, yystate);
+  YY_IGNORE_USELESS_CAST_END
+  YY_STACK_PRINT (yyss, yyssp);
 
   if (yyss + yystacksize - 1 <= yyssp)
+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
+    goto yyexhaustedlab;
+#else
     {
       /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
+      YYPTRDIFF_T yysize = yyssp - yyss + 1;
 
-#ifdef yyoverflow
+# if defined yyoverflow
       {
         /* Give user a chance to reallocate the stack.  Use copies of
            these so that the &'s don't force the real ones into
            memory.  */
+        yy_state_t *yyss1 = yyss;
         YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
 
         /* Each stack pointer address is followed by the size of the
            data in use in that stack, in bytes.  This used to be a
            conditional around just the two extra args, but that might
            be undefined if yyoverflow is a macro.  */
         yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
+                    &yyss1, yysize * YYSIZEOF (*yyssp),
+                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
                     &yystacksize);
-
         yyss = yyss1;
         yyvs = yyvs1;
       }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
+# else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
         goto yyexhaustedlab;
@@ -2048,9 +2282,10 @@ yyparse (void)
         yystacksize = YYMAXDEPTH;
 
       {
-        yytype_int16 *yyss1 = yyss;
+        yy_state_t *yyss1 = yyss;
         union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+          YY_CAST (union yyalloc *,
+                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
         if (! yyptr)
           goto yyexhaustedlab;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
@@ -2060,30 +2295,30 @@ yyparse (void)
           YYSTACK_FREE (yyss1);
       }
 # endif
-#endif /* no yyoverflow */
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
+      YY_IGNORE_USELESS_CAST_BEGIN
+      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
+                  YY_CAST (long, yystacksize)));
+      YY_IGNORE_USELESS_CAST_END
 
       if (yyss + yystacksize - 1 <= yyssp)
         YYABORT;
     }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
   if (yystate == YYFINAL)
     YYACCEPT;
 
   goto yybackup;
 
+
 /*-----------.
 | yybackup.  |
 `-----------*/
 yybackup:
-
   /* Do appropriate processing given the current state.  Read a
      lookahead token if we need one and don't already have one.  */
 
@@ -2094,18 +2329,29 @@ yybackup:
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
   if (yychar == YYEMPTY)
     {
-      YYDPRINTF ((stderr, "Reading a token"));
+      YYDPRINTF ((stderr, "Reading a token\n"));
       yychar = yylex ();
     }
 
   if (yychar <= YYEOF)
     {
-      yychar = yytoken = YYEOF;
+      yychar = YYEOF;
+      yytoken = YYSYMBOL_YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
+  else if (yychar == YYerror)
+    {
+      /* The scanner already issued an error message, process directly
+         to error recovery.  But do not keep the error token as
+         lookahead, it is too special and may lead us to an endless
+         loop in error recovery. */
+      yychar = YYUNDEF;
+      yytoken = YYSYMBOL_YYerror;
+      goto yyerrlab1;
+    }
   else
     {
       yytoken = YYTRANSLATE (yychar);
@@ -2133,15 +2379,13 @@ yybackup:
 
   /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
   yystate = yyn;
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
   goto yynewstate;
 
 
@@ -2156,7 +2400,7 @@ yydefault:
 
 
 /*-----------------------------.
-| yyreduce -- Do a reduction.  |
+| yyreduce -- do a reduction.  |
 `-----------------------------*/
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
@@ -2176,9 +2420,9 @@ yyreduce:
   YY_REDUCE_PRINT (yyn);
   switch (yyn)
     {
-        case 5:
-#line 398 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 5: /* command_list: error T_EOC  */
+#line 404 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        /* I will need to incorporate much more fine grained
                         * error messages. The following should suffice for
                         * the time being.
@@ -2190,172 +2434,172 @@ yyreduce:
                                ip_ctx->errpos.nline,
                                ip_ctx->errpos.ncol);
                }
-#line 2194 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2438 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 20:
-#line 434 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 21: /* server_command: client_type address option_list  */
+#line 441 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        peer_node *my_node;
 
                        my_node = create_peer_node((yyvsp[-2].Integer), (yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.peers, my_node);
                }
-#line 2205 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2449 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 27:
-#line 453 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
-#line 2211 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 28: /* address: address_fam T_String  */
+#line 460 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
+#line 2455 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 28:
-#line 458 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
-#line 2217 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 29: /* ip_address: T_String  */
+#line 465 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
+#line 2461 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 29:
-#line 463 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = AF_INET; }
-#line 2223 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 30: /* address_fam: T_Ipv4_flag  */
+#line 470 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = AF_INET; }
+#line 2467 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 30:
-#line 465 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = AF_INET6; }
-#line 2229 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 31: /* address_fam: T_Ipv6_flag  */
+#line 472 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = AF_INET6; }
+#line 2473 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 31:
-#line 470 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = NULL; }
-#line 2235 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 32: /* option_list: %empty  */
+#line 477 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = NULL; }
+#line 2479 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 32:
-#line 472 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 33: /* option_list: option_list option  */
+#line 479 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2244 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2488 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 36:
-#line 486 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2250 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 37: /* option_flag: option_flag_keyword  */
+#line 493 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
+#line 2494 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 46:
-#line 503 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2256 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 47: /* option_int: option_int_keyword T_Integer  */
+#line 510 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 2500 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 47:
-#line 505 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2262 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 48: /* option_int: option_int_keyword T_U_int  */
+#line 512 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 2506 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 54:
-#line 519 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2268 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 55: /* option_str: option_str_keyword T_String  */
+#line 526 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
+#line 2512 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 56:
-#line 533 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 57: /* unpeer_command: unpeer_keyword address  */
+#line 540 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        unpeer_node *my_node;
 
                        my_node = create_unpeer_node((yyvsp[0].Address_node));
                        if (my_node)
                                APPEND_G_FIFO(cfgt.unpeers, my_node);
                }
-#line 2280 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2524 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 59:
-#line 554 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.broadcastclient = 1; }
-#line 2286 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 60: /* other_mode_command: T_Broadcastclient  */
+#line 561 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.broadcastclient = 1; }
+#line 2530 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 60:
-#line 556 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
-#line 2292 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 61: /* other_mode_command: T_Manycastserver address_list  */
+#line 563 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
+#line 2536 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 61:
-#line 558 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
-#line 2298 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 62: /* other_mode_command: T_Multicastclient address_list  */
+#line 565 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
+#line 2542 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 62:
-#line 560 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.mdnstries = (yyvsp[0].Integer); }
-#line 2304 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 63: /* other_mode_command: T_Mdnstries T_Integer  */
+#line 567 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.mdnstries = (yyvsp[0].Integer); }
+#line 2548 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 63:
-#line 571 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 64: /* authentication_command: T_Automax T_Integer  */
+#line 578 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *atrv;
 
                        atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
                        APPEND_G_FIFO(cfgt.vars, atrv);
                }
-#line 2315 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2559 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 64:
-#line 578 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.control_key = (yyvsp[0].Integer); }
-#line 2321 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 65: /* authentication_command: T_ControlKey T_Integer  */
+#line 585 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.auth.control_key = (yyvsp[0].Integer); }
+#line 2565 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 65:
-#line 580 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 66: /* authentication_command: T_Crypto crypto_command_list  */
+#line 587 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        cfgt.auth.cryptosw++;
                        CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
                }
-#line 2330 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2574 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 66:
-#line 585 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.keys = (yyvsp[0].String); }
-#line 2336 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 67: /* authentication_command: T_Keys T_String  */
+#line 592 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.auth.keys = (yyvsp[0].String); }
+#line 2580 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 67:
-#line 587 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.keysdir = (yyvsp[0].String); }
-#line 2342 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 68: /* authentication_command: T_Keysdir T_String  */
+#line 594 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.auth.keysdir = (yyvsp[0].String); }
+#line 2586 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 68:
-#line 589 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.request_key = (yyvsp[0].Integer); }
-#line 2348 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 69: /* authentication_command: T_Requestkey T_Integer  */
+#line 596 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.auth.request_key = (yyvsp[0].Integer); }
+#line 2592 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 69:
-#line 591 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.revoke = (yyvsp[0].Integer); }
-#line 2354 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 70: /* authentication_command: T_Revoke T_Integer  */
+#line 598 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.auth.revoke = (yyvsp[0].Integer); }
+#line 2598 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 70:
-#line 593 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 71: /* authentication_command: T_Trustedkey integer_list_range  */
+#line 600 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        /* [Bug 948] leaves it open if appending or
                         * replacing the trusted key list is the right
                         * way. In any case, either alternative should
@@ -2364,39 +2608,39 @@ yyreduce:
                        DESTROY_G_FIFO(cfgt.auth.trusted_key_list, destroy_attr_val); /* remove for append */
                        CONCAT_G_FIFOS(cfgt.auth.trusted_key_list, (yyvsp[0].Attr_val_fifo));
                }
-#line 2368 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2612 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 71:
-#line 603 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
-#line 2374 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 72: /* authentication_command: T_NtpSignDsocket T_String  */
+#line 610 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
+#line 2618 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 72:
-#line 608 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = NULL; }
-#line 2380 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 73: /* crypto_command_list: %empty  */
+#line 615 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = NULL; }
+#line 2624 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 73:
-#line 610 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 74: /* crypto_command_list: crypto_command_list crypto_command  */
+#line 617 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2389 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2633 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 74:
-#line 618 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2395 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 75: /* crypto_command: crypto_str_keyword T_String  */
+#line 625 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
+#line 2639 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 75:
-#line 620 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 76: /* crypto_command: T_Revoke T_Integer  */
+#line 627 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val) = NULL;
                        cfgt.auth.revoke = (yyvsp[0].Integer);
                        msyslog(LOG_WARNING,
@@ -2404,66 +2648,66 @@ yyreduce:
                                "please use 'revoke %d' instead.",
                                cfgt.auth.revoke, cfgt.auth.revoke);
                }
-#line 2408 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2652 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 81:
-#line 645 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
-#line 2414 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 82: /* orphan_mode_command: T_Tos tos_option_list  */
+#line 652 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
+#line 2658 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 82:
-#line 650 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 83: /* tos_option_list: tos_option_list tos_option  */
+#line 657 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2423 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2667 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 83:
-#line 655 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 84: /* tos_option_list: tos_option  */
+#line 662 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2432 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2676 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 84:
-#line 663 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2438 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 85: /* tos_option: tos_option_int_keyword T_Integer  */
+#line 670 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
+#line 2682 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 85:
-#line 665 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2444 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 86: /* tos_option: tos_option_dbl_keyword number  */
+#line 672 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
+#line 2688 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 86:
-#line 667 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2450 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 87: /* tos_option: T_Cohort boolean  */
+#line 674 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
+#line 2694 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 87:
-#line 669 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Basedate, (yyvsp[0].Integer)); }
-#line 2456 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 88: /* tos_option: basedate  */
+#line 676 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival(T_Basedate, (yyvsp[0].Integer)); }
+#line 2700 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 99:
-#line 696 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
-#line 2462 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 100: /* monitoring_command: T_Statistics stats_list  */
+#line 703 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
+#line 2706 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 100:
-#line 698 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 101: /* monitoring_command: T_Statsdir T_String  */
+#line 705 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                cfgt.stats_dir = (yyvsp[0].String);
                        } else {
@@ -2471,56 +2715,56 @@ yyreduce:
                                yyerror("statsdir remote configuration ignored");
                        }
                }
-#line 2475 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2719 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 101:
-#line 707 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 102: /* monitoring_command: T_Filegen stat filegen_option_list  */
+#line 714 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        filegen_node *fgn;
 
                        fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.filegen_opts, fgn);
                }
-#line 2486 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2730 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 102:
-#line 717 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 103: /* stats_list: stats_list stat  */
+#line 724 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 2495 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2739 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 103:
-#line 722 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 104: /* stats_list: stat  */
+#line 729 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Int_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 2504 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2748 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 112:
-#line 741 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = NULL; }
-#line 2510 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 113: /* filegen_option_list: %empty  */
+#line 748 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = NULL; }
+#line 2754 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 113:
-#line 743 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 114: /* filegen_option_list: filegen_option_list filegen_option  */
+#line 750 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2519 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2763 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 114:
-#line 751 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 115: /* filegen_option: T_File T_String  */
+#line 758 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
                        } else {
@@ -2529,12 +2773,12 @@ yyreduce:
                                yyerror("filegen file remote config ignored");
                        }
                }
-#line 2533 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2777 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 115:
-#line 761 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 116: /* filegen_option: T_Type filegen_type  */
+#line 768 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
                        } else {
@@ -2542,12 +2786,12 @@ yyreduce:
                                yyerror("filegen type remote config ignored");
                        }
                }
-#line 2546 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2790 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 116:
-#line 770 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 117: /* filegen_option: link_nolink  */
+#line 777 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        const char *err;
 
                        if (lex_from_file()) {
@@ -2561,70 +2805,70 @@ yyreduce:
                                yyerror(err);
                        }
                }
-#line 2565 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2809 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 117:
-#line 785 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2571 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 118: /* filegen_option: enable_disable  */
+#line 792 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
+#line 2815 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 129:
-#line 815 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 130: /* access_control_command: T_Discard discard_option_list  */
+#line 822 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
                }
-#line 2579 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2823 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 130:
-#line 819 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 131: /* access_control_command: T_Mru mru_option_list  */
+#line 826 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
                }
-#line 2587 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2831 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 131:
-#line 823 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 132: /* access_control_command: T_Restrict address res_ippeerlimit ac_flag_list  */
+#line 830 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        restrict_node *rn;
 
                        rn = create_restrict_node((yyvsp[-2].Address_node), NULL, (yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2599 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2843 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 132:
-#line 831 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 133: /* access_control_command: T_Restrict address T_Mask ip_address res_ippeerlimit ac_flag_list  */
+#line 838 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        restrict_node *rn;
 
                        rn = create_restrict_node((yyvsp[-4].Address_node), (yyvsp[-2].Address_node), (yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2611 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2855 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 133:
-#line 839 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 134: /* access_control_command: T_Restrict T_Default res_ippeerlimit ac_flag_list  */
+#line 846 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        restrict_node *rn;
 
                        rn = create_restrict_node(NULL, NULL, (yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2623 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2867 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 134:
-#line 847 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 135: /* access_control_command: T_Restrict T_Ipv4_flag T_Default res_ippeerlimit ac_flag_list  */
+#line 854 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        restrict_node *rn;
 
                        rn = create_restrict_node(
@@ -2638,12 +2882,12 @@ yyreduce:
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2642 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2886 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 135:
-#line 862 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 136: /* access_control_command: T_Restrict T_Ipv6_flag T_Default res_ippeerlimit ac_flag_list  */
+#line 869 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        restrict_node *rn;
 
                        rn = create_restrict_node(
@@ -2657,12 +2901,12 @@ yyreduce:
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2661 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2905 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 136:
-#line 877 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 137: /* access_control_command: T_Restrict T_Source res_ippeerlimit ac_flag_list  */
+#line 884 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        restrict_node * rn;
 
                        APPEND_G_FIFO((yyvsp[0].Attr_val_fifo), create_attr_ival((yyvsp[-2].Integer), 1));
@@ -2670,18 +2914,18 @@ yyreduce:
                                NULL, NULL, (yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo), lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2674 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2918 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 137:
-#line 889 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = -1; }
-#line 2680 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 138: /* res_ippeerlimit: %empty  */
+#line 896 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = -1; }
+#line 2924 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 138:
-#line 891 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 139: /* res_ippeerlimit: T_Ippeerlimit T_Integer  */
+#line 898 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (((yyvsp[0].Integer) < -1) || ((yyvsp[0].Integer) > 100)) {
                                struct FILE_INFO * ip_ctx;
 
@@ -2696,131 +2940,131 @@ yyreduce:
                        }
                        (yyval.Integer) = (yyvsp[0].Integer);
                }
-#line 2700 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2944 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 139:
-#line 910 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = NULL; }
-#line 2706 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 140: /* ac_flag_list: %empty  */
+#line 917 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = NULL; }
+#line 2950 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 140:
-#line 912 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 141: /* ac_flag_list: ac_flag_list access_control_flag  */
+#line 919 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *av;
 
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        av = create_attr_ival((yyvsp[0].Integer), 1);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), av);
                }
-#line 2718 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2962 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 141:
-#line 920 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 142: /* ac_flag_list: ac_flag_list T_Serverresponse T_Fuzz  */
+#line 927 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *av;
 
                        (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
                        av = create_attr_ival(T_ServerresponseFuzz, 1);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), av);
                }
-#line 2730 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2974 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 159:
-#line 951 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 160: /* discard_option_list: discard_option_list discard_option  */
+#line 958 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2739 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2983 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 160:
-#line 956 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 161: /* discard_option_list: discard_option  */
+#line 963 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2748 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2992 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 161:
-#line 964 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2754 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 162: /* discard_option: discard_option_keyword T_Integer  */
+#line 971 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 2998 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 165:
-#line 975 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 166: /* mru_option_list: mru_option_list mru_option  */
+#line 982 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2763 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3007 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 166:
-#line 980 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 167: /* mru_option_list: mru_option  */
+#line 987 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2772 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3016 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 167:
-#line 988 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2778 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 168: /* mru_option: mru_option_keyword T_Integer  */
+#line 995 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 3022 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 176:
-#line 1008 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 177: /* fudge_command: T_Fudge address fudge_factor_list  */
+#line 1015 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        addr_opts_node *aon;
 
                        aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.fudge, aon);
                }
-#line 2789 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3033 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 177:
-#line 1018 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 178: /* fudge_factor_list: fudge_factor_list fudge_factor  */
+#line 1025 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2798 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3042 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 178:
-#line 1023 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 179: /* fudge_factor_list: fudge_factor  */
+#line 1030 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2807 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3051 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 179:
-#line 1031 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2813 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 180: /* fudge_factor: fudge_factor_dbl_keyword number  */
+#line 1038 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
+#line 3057 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 180:
-#line 1033 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2819 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 181: /* fudge_factor: fudge_factor_bool_keyword boolean  */
+#line 1040 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 3063 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 181:
-#line 1035 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 182: /* fudge_factor: T_Stratum T_Integer  */
+#line 1042 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if ((yyvsp[0].Integer) >= 0 && (yyvsp[0].Integer) <= 16) {
                                (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
                        } else {
@@ -2828,90 +3072,125 @@ yyreduce:
                                yyerror("fudge factor: stratum value not in [0..16], ignored");
                        }
                }
-#line 2832 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3076 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 182:
-#line 1044 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2838 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 183: /* fudge_factor: T_Abbrev T_String  */
+#line 1051 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
+#line 3082 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 183:
-#line 1046 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2844 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 184: /* fudge_factor: T_Refid T_String  */
+#line 1053 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
+#line 3088 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 191:
-#line 1068 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
-#line 2850 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 192: /* device_command: T_Device address device_item_list  */
+#line 1075 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
+                       addr_opts_node *aon;
+
+                       aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
+                       APPEND_G_FIFO(cfgt.device, aon);
+               }
+#line 3099 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 192:
-#line 1073 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 193: /* device_item_list: device_item_list device_item  */
+#line 1085 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2859 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3108 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 193:
-#line 1078 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 194: /* device_item_list: device_item  */
+#line 1090 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2868 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3117 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 194:
-#line 1086 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2874 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 195: /* device_item: device_item_path_keyword T_String  */
+#line 1098 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
+#line 3123 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 198:
-#line 1102 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2880 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 198: /* rlimit_command: T_Rlimit rlimit_option_list  */
+#line 1112 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
+#line 3129 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 199:
-#line 1104 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2886 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 199: /* rlimit_option_list: rlimit_option_list rlimit_option  */
+#line 1117 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
+                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+               }
+#line 3138 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 200:
-#line 1109 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 200: /* rlimit_option_list: rlimit_option  */
+#line 1122 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
+                       (yyval.Attr_val_fifo) = NULL;
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+               }
+#line 3147 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
+    break;
+
+  case 201: /* rlimit_option: rlimit_option_keyword T_Integer  */
+#line 1130 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 3153 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
+    break;
+
+  case 205: /* system_option_command: T_Enable system_option_list  */
+#line 1146 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
+#line 3159 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
+    break;
+
+  case 206: /* system_option_command: T_Disable system_option_list  */
+#line 1148 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
+#line 3165 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
+    break;
+
+  case 207: /* system_option_list: system_option_list system_option  */
+#line 1153 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2895 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3174 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 201:
-#line 1114 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 208: /* system_option_list: system_option  */
+#line 1158 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2904 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3183 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 202:
-#line 1122 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2910 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 209: /* system_option: system_option_flag_keyword  */
+#line 1166 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
+#line 3189 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 203:
-#line 1124 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 210: /* system_option: system_option_local_flag_keyword  */
+#line 1168 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
                        } else {
@@ -2924,75 +3203,75 @@ yyreduce:
                                yyerror(err_str);
                        }
                }
-#line 2928 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3207 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 216:
-#line 1163 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
-#line 2934 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 223: /* tinker_command: T_Tinker tinker_option_list  */
+#line 1207 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
+#line 3213 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 217:
-#line 1168 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 224: /* tinker_option_list: tinker_option_list tinker_option  */
+#line 1212 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2943 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3222 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 218:
-#line 1173 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 225: /* tinker_option_list: tinker_option  */
+#line 1217 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2952 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3231 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 219:
-#line 1181 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2958 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 226: /* tinker_option: tinker_option_keyword number  */
+#line 1225 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
+#line 3237 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 232:
-#line 1206 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 239: /* miscellaneous_command: misc_cmd_dbl_keyword number  */
+#line 1250 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *av;
 
                        av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2969 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3248 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 233:
-#line 1213 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 240: /* miscellaneous_command: misc_cmd_int_keyword T_Integer  */
+#line 1257 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *av;
 
                        av = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2980 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3259 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 234:
-#line 1220 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 241: /* miscellaneous_command: misc_cmd_str_keyword T_String  */
+#line 1264 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *av;
 
                        av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2991 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3270 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 235:
-#line 1227 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 242: /* miscellaneous_command: misc_cmd_str_lcl_keyword T_String  */
+#line 1271 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        char error_text[64];
                        attr_val *av;
 
@@ -3007,12 +3286,12 @@ yyreduce:
                                yyerror(error_text);
                        }
                }
-#line 3011 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3290 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 236:
-#line 1243 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 243: /* miscellaneous_command: T_Includefile T_String command  */
+#line 1287 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (!lex_from_file()) {
                                YYFREE((yyvsp[-1].String)); /* avoid leak */
                                yyerror("remote includefile ignored");
@@ -3030,105 +3309,105 @@ yyreduce:
                        }
                        YYFREE((yyvsp[-1].String)); /* avoid leak */
                }
-#line 3034 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3313 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 237:
-#line 1262 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 244: /* miscellaneous_command: T_Leapfile T_String opt_hash_check  */
+#line 1306 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        attr_val *av;
 
                        av = create_attr_sval((yyvsp[-2].Integer), (yyvsp[-1].String));
                        av->flag = (yyvsp[0].Integer);
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 3046 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3325 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 238:
-#line 1270 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { lex_flush_stack(); }
-#line 3052 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 245: /* miscellaneous_command: T_End  */
+#line 1314 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { lex_flush_stack(); }
+#line 3331 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 239:
-#line 1272 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { /* see drift_parm below for actions */ }
-#line 3058 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 246: /* miscellaneous_command: T_Driftfile drift_parm  */
+#line 1316 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { /* see drift_parm below for actions */ }
+#line 3337 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 240:
-#line 1274 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
-#line 3064 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 247: /* miscellaneous_command: T_Logconfig log_config_list  */
+#line 1318 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
+#line 3343 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 241:
-#line 1276 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
-#line 3070 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 248: /* miscellaneous_command: T_Phone string_list  */
+#line 1320 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
+#line 3349 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 242:
-#line 1278 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.pollskewlist, (yyvsp[0].Attr_val_fifo)); }
-#line 3076 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 249: /* miscellaneous_command: T_PollSkewList pollskew_list  */
+#line 1322 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.pollskewlist, (yyvsp[0].Attr_val_fifo)); }
+#line 3355 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 243:
-#line 1280 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
-#line 3082 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 250: /* miscellaneous_command: T_Setvar variable_assign  */
+#line 1324 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
+#line 3361 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 244:
-#line 1282 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 251: /* miscellaneous_command: T_Trap ip_address trap_option_list  */
+#line 1326 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        addr_opts_node *aon;
 
                        aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.trap, aon);
                }
-#line 3093 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3372 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 245:
-#line 1289 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
-#line 3099 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 252: /* miscellaneous_command: T_Ttl integer_list  */
+#line 1333 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
+#line 3378 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 250:
-#line 1304 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 257: /* misc_cmd_int_keyword: T_Leapsmearinterval  */
+#line 1348 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
 #ifndef LEAP_SMEAR
                        yyerror("Built without LEAP_SMEAR support.");
 #endif
                }
-#line 3109 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3388 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 251:
-#line 1313 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = FALSE; }
-#line 3115 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 258: /* opt_hash_check: T_Ignorehash  */
+#line 1357 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = FALSE; }
+#line 3394 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 252:
-#line 1315 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = TRUE; }
-#line 3121 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 259: /* opt_hash_check: T_Checkhash  */
+#line 1359 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = TRUE; }
+#line 3400 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 253:
-#line 1317 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {  (yyval.Integer) = TRUE; }
-#line 3127 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 260: /* opt_hash_check: %empty  */
+#line 1361 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        {  (yyval.Integer) = TRUE; }
+#line 3406 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 258:
-#line 1332 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 265: /* drift_parm: T_String  */
+#line 1376 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                attr_val *av;
                                av = create_attr_sval(T_Driftfile, (yyvsp[0].String));
@@ -3138,12 +3417,12 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3142 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3421 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 259:
-#line 1343 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 266: /* drift_parm: T_String T_Double  */
+#line 1387 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                attr_val *av;
                                av = create_attr_sval(T_Driftfile, (yyvsp[-1].String));
@@ -3159,12 +3438,12 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3163 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3442 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 260:
-#line 1360 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 267: /* drift_parm: %empty  */
+#line 1404 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if (lex_from_file()) {
                                attr_val *av;
                                av = create_attr_sval(T_Driftfile, estrdup(""));
@@ -3173,24 +3452,24 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3177 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3456 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 261:
-#line 1373 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = NULL; }
-#line 3183 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 268: /* pollskew_list: %empty  */
+#line 1417 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = NULL; }
+#line 3462 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 262:
-#line 1375 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = append_gen_fifo((yyvsp[-1].Attr_val_fifo), (yyvsp[0].Attr_val)); }
-#line 3189 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 269: /* pollskew_list: pollskew_list pollskew_spec  */
+#line 1419 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = append_gen_fifo((yyvsp[-1].Attr_val_fifo), (yyvsp[0].Attr_val)); }
+#line 3468 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 263:
-#line 1380 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 270: /* pollskew_spec: pollskew_cycle T_Integer '|' T_Integer  */
+#line 1424 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if ((yyvsp[-2].Integer) < 0 || (yyvsp[0].Integer) < 0) {
                                /* bad numbers */
                                yyerror("pollskewlist: skew values must be >=0");
@@ -3212,84 +3491,84 @@ yyreduce:
                        }
                        (yyval.Attr_val) = (yyvsp[-3].Attr_val);
                }
-#line 3216 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3495 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 264:
-#line 1405 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = ((yyvsp[0].Integer) >= 3 && (yyvsp[0].Integer) <= 17) ? create_attr_rval((yyvsp[0].Integer), 0, 0) : NULL; }
-#line 3222 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 271: /* pollskew_cycle: T_Integer  */
+#line 1449 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                          { (yyval.Attr_val) = ((yyvsp[0].Integer) >= 3 && (yyvsp[0].Integer) <= 17) ? create_attr_rval((yyvsp[0].Integer), 0, 0) : NULL; }
+#line 3501 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 265:
-#line 1406 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_rval(-1, 0, 0); }
-#line 3228 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 272: /* pollskew_cycle: T_Default  */
+#line 1450 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                          { (yyval.Attr_val) = create_attr_rval(-1, 0, 0); }
+#line 3507 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 266:
-#line 1412 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
-#line 3234 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 273: /* variable_assign: T_String '=' T_String t_default_or_zero  */
+#line 1456 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
+#line 3513 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 268:
-#line 1418 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = 0; }
-#line 3240 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 275: /* t_default_or_zero: %empty  */
+#line 1462 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = 0; }
+#line 3519 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 269:
-#line 1423 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val_fifo) = NULL; }
-#line 3246 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 276: /* trap_option_list: %empty  */
+#line 1467 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val_fifo) = NULL; }
+#line 3525 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 270:
-#line 1425 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 277: /* trap_option_list: trap_option_list trap_option  */
+#line 1469 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3255 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3534 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 271:
-#line 1433 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 3261 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 278: /* trap_option: T_Port T_Integer  */
+#line 1477 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
+#line 3540 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 272:
-#line 1435 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 279: /* trap_option: T_Interface ip_address  */
+#line 1479 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address));
                        destroy_address_node((yyvsp[0].Address_node));
                }
-#line 3270 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3549 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 273:
-#line 1443 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 280: /* log_config_list: log_config_list log_config_command  */
+#line 1487 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3279 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3558 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 274:
-#line 1448 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 281: /* log_config_list: log_config_command  */
+#line 1492 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3288 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3567 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 275:
-#line 1456 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 282: /* log_config_command: T_String  */
+#line 1500 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        char    prefix;
                        char *  type;
 
@@ -3310,142 +3589,142 @@ yyreduce:
                        (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
                        YYFREE((yyvsp[0].String));
                }
-#line 3314 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3593 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 276:
-#line 1481 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 283: /* interface_command: interface_nic nic_rule_action nic_rule_class  */
+#line 1525 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        nic_rule_node *nrn;
 
                        nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer));
                        APPEND_G_FIFO(cfgt.nic_rules, nrn);
                }
-#line 3325 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3604 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 277:
-#line 1488 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 284: /* interface_command: interface_nic nic_rule_action T_String  */
+#line 1532 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        nic_rule_node *nrn;
 
                        nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer));
                        APPEND_G_FIFO(cfgt.nic_rules, nrn);
                }
-#line 3336 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3615 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 287:
-#line 1516 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
-#line 3342 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 294: /* reset_command: T_Reset counter_set_list  */
+#line 1560 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
+#line 3621 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 288:
-#line 1521 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 295: /* counter_set_list: counter_set_list counter_set_keyword  */
+#line 1565 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3351 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3630 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 289:
-#line 1526 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 296: /* counter_set_list: counter_set_keyword  */
+#line 1570 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Int_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3360 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3639 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 297:
-#line 1550 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 304: /* integer_list: integer_list T_Integer  */
+#line 1594 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3369 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3648 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 298:
-#line 1555 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 305: /* integer_list: T_Integer  */
+#line 1599 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3378 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3657 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 299:
-#line 1563 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 306: /* integer_list_range: integer_list_range integer_list_range_elt  */
+#line 1607 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3387 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3666 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 300:
-#line 1568 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 307: /* integer_list_range: integer_list_range_elt  */
+#line 1612 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3396 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3675 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 301:
-#line 1576 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
-#line 3402 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 308: /* integer_list_range_elt: T_Integer  */
+#line 1620 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
+#line 3681 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 303:
-#line 1582 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_rval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
-#line 3408 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 310: /* integer_range: '(' T_Integer T_Ellipsis T_Integer ')'  */
+#line 1626 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_rval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
+#line 3687 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 304:
-#line 1587 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 311: /* string_list: string_list T_String  */
+#line 1631 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.String_fifo) = (yyvsp[-1].String_fifo);
                        APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
                }
-#line 3417 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3696 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 305:
-#line 1592 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 312: /* string_list: T_String  */
+#line 1636 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.String_fifo) = NULL;
                        APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
                }
-#line 3426 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3705 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 306:
-#line 1600 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 313: /* address_list: address_list address  */
+#line 1644 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
                        APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
                }
-#line 3435 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3714 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 307:
-#line 1605 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 314: /* address_list: address  */
+#line 1649 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Address_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
                }
-#line 3444 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3723 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 308:
-#line 1613 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 315: /* boolean: T_Integer  */
+#line 1657 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
                                yyerror("Integer value is not boolean (0 or 1). Assuming 1");
                                (yyval.Integer) = 1;
@@ -3453,36 +3732,36 @@ yyreduce:
                                (yyval.Integer) = (yyvsp[0].Integer);
                        }
                }
-#line 3457 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3736 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 309:
-#line 1621 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = 1; }
-#line 3463 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 316: /* boolean: T_True  */
+#line 1665 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = 1; }
+#line 3742 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 310:
-#line 1622 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = 0; }
-#line 3469 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 317: /* boolean: T_False  */
+#line 1666 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = 0; }
+#line 3748 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 311:
-#line 1626 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Double) = (double)(yyvsp[0].Integer); }
-#line 3475 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 318: /* number: T_Integer  */
+#line 1670 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                                { (yyval.Double) = (double)(yyvsp[0].Integer); }
+#line 3754 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 313:
-#line 1632 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = basedate_eval_string((yyvsp[0].String)); YYFREE((yyvsp[0].String)); }
-#line 3481 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 320: /* basedate: T_Basedate T_String  */
+#line 1676 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Integer) = basedate_eval_string((yyvsp[0].String)); YYFREE((yyvsp[0].String)); }
+#line 3760 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 314:
-#line 1640 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 321: /* simulate_command: sim_conf_start '{' sim_init_statement_list sim_server_list '}'  */
+#line 1684 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        sim_node *sn;
 
                        sn =  create_sim_node((yyvsp[-2].Attr_val_fifo), (yyvsp[-1].Sim_server_fifo));
@@ -3491,125 +3770,126 @@ yyreduce:
                        /* Revert from ; to \n for end-of-command */
                        old_config_style = 1;
                }
-#line 3495 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3774 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 315:
-#line 1657 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { old_config_style = 0; }
-#line 3501 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 322: /* sim_conf_start: T_Simulate  */
+#line 1701 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                           { old_config_style = 0; }
+#line 3780 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 316:
-#line 1662 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 323: /* sim_init_statement_list: sim_init_statement_list sim_init_statement T_EOC  */
+#line 1706 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3510 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3789 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 317:
-#line 1667 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 324: /* sim_init_statement_list: sim_init_statement T_EOC  */
+#line 1711 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3519 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3798 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 318:
-#line 1675 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3525 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 325: /* sim_init_statement: sim_init_keyword '=' number  */
+#line 1719 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
+#line 3804 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 321:
-#line 1685 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 328: /* sim_server_list: sim_server_list sim_server  */
+#line 1729 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo);
                        APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
                }
-#line 3534 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3813 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 322:
-#line 1690 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 329: /* sim_server_list: sim_server  */
+#line 1734 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Sim_server_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
                }
-#line 3543 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3822 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 323:
-#line 1698 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); }
-#line 3549 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 330: /* sim_server: sim_server_name '{' sim_server_offset sim_act_list '}'  */
+#line 1742 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); }
+#line 3828 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 324:
-#line 1703 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Double) = (yyvsp[-1].Double); }
-#line 3555 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 331: /* sim_server_offset: T_Server_Offset '=' number T_EOC  */
+#line 1747 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Double) = (yyvsp[-1].Double); }
+#line 3834 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 325:
-#line 1708 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Address_node) = (yyvsp[0].Address_node); }
-#line 3561 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 332: /* sim_server_name: T_Server '=' address  */
+#line 1752 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Address_node) = (yyvsp[0].Address_node); }
+#line 3840 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 326:
-#line 1713 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 333: /* sim_act_list: sim_act_list sim_act  */
+#line 1757 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo);
                        APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
                }
-#line 3570 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3849 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 327:
-#line 1718 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 334: /* sim_act_list: sim_act  */
+#line 1762 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Sim_script_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
                }
-#line 3579 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3858 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 328:
-#line 1726 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
-#line 3585 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 335: /* sim_act: T_Duration '=' number '{' sim_act_stmt_list '}'  */
+#line 1770 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
+#line 3864 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 329:
-#line 1731 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 336: /* sim_act_stmt_list: sim_act_stmt_list sim_act_stmt T_EOC  */
+#line 1775 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3594 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3873 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 330:
-#line 1736 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    {
+  case 337: /* sim_act_stmt_list: sim_act_stmt T_EOC  */
+#line 1780 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3603 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3882 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
-  case 331:
-#line 1744 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3609 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 338: /* sim_act_stmt: sim_act_keyword '=' number  */
+#line 1788 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
+                        { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
+#line 3888 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
     break;
 
 
-#line 3613 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3892 "../../../src/ntp-stable-3758/ntpd/ntp_parser.c"
+
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3623,25 +3903,23 @@ yyreduce:
      case of YYERROR or YYBACKUP, subsequent parser actions might lead
      to an incorrect destructor call or verbose syntax error message
      before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
 
   YYPOPSTACK (yylen);
   yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
   /* Now 'shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
+  {
+    const int yylhs = yyr1[yyn] - YYNTOKENS;
+    const int yyi = yypgoto[yylhs] + *yyssp;
+    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
+               ? yytable[yyi]
+               : yydefgoto[yylhs]);
+  }
 
   goto yynewstate;
 
@@ -3652,50 +3930,14 @@ yyreduce:
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
      user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
+  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
       ++yynerrs;
-#if ! YYERROR_VERBOSE
       yyerror (YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
     }
 
-
-
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
@@ -3724,12 +3966,10 @@ yyerrlab:
 | yyerrorlab -- error raised explicitly by YYERROR.  |
 `---------------------------------------------------*/
 yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
+  /* Pacify compilers when the user code never invokes YYERROR and the
+     label yyerrorlab therefore never appears in user code.  */
+  if (0)
+    YYERROR;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -3746,13 +3986,14 @@ yyerrorlab:
 yyerrlab1:
   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
+  /* Pop stack until we find a state that shifts the error token.  */
   for (;;)
     {
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
         {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+          yyn += YYSYMBOL_YYerror;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
             {
               yyn = yytable[yyn];
               if (0 < yyn)
@@ -3766,7 +4007,7 @@ yyerrlab1:
 
 
       yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp);
+                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -3778,7 +4019,7 @@ yyerrlab1:
 
 
   /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
 
   yystate = yyn;
   goto yynewstate;
@@ -3791,6 +4032,7 @@ yyacceptlab:
   yyresult = 0;
   goto yyreturn;
 
+
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
@@ -3798,16 +4040,21 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#if !defined yyoverflow || YYERROR_VERBOSE
+
+#if !defined yyoverflow
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
 yyexhaustedlab:
   yyerror (YY_("memory exhausted"));
   yyresult = 2;
-  /* Fall through.  */
+  goto yyreturn;
 #endif
 
+
+/*-------------------------------------------------------.
+| yyreturn -- parsing is finished, clean up and return.  |
+`-------------------------------------------------------*/
 yyreturn:
   if (yychar != YYEMPTY)
     {
@@ -3824,20 +4071,18 @@ yyreturn:
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp);
+                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
 #endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
+
   return yyresult;
 }
-#line 1755 "../../ntpd/ntp_parser.y" /* yacc.c:1906  */
+
+#line 1799 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
 
 
 void
index d232a89a1ba4bfb561008ccfb1c84cd94a88d9cc..426b4b9666ba109379a1361de4a579237db32a7c 100644 (file)
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.7.6.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+   Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -15,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-#ifndef YY_YY__NTPD_NTP_PARSER_H_INCLUDED
-# define YY_YY__NTPD_NTP_PARSER_H_INCLUDED
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+   especially those whose name start with YY_ or yy_.  They are
+   private implementation details that can be changed or removed.  */
+
+#ifndef YY_YY__SRC_NTP_STABLE_NTPD_NTP_PARSER_H_INCLUDED
+# define YY_YY__SRC_NTP_STABLE_NTPD_NTP_PARSER_H_INCLUDED
 /* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
 extern int yydebug;
 #endif
 
-/* Token type.  */
+/* Token kinds.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
   enum yytokentype
   {
-    T_Abbrev = 258,
-    T_Age = 259,
-    T_All = 260,
-    T_Allan = 261,
-    T_Allpeers = 262,
-    T_Auth = 263,
-    T_Autokey = 264,
-    T_Automax = 265,
-    T_Average = 266,
-    T_Basedate = 267,
-    T_Bclient = 268,
-    T_Bcpollbstep = 269,
-    T_Beacon = 270,
-    T_Broadcast = 271,
-    T_Broadcastclient = 272,
-    T_Broadcastdelay = 273,
-    T_Burst = 274,
-    T_Calibrate = 275,
-    T_Ceiling = 276,
-    T_Checkhash = 277,
-    T_Clockstats = 278,
-    T_Cohort = 279,
-    T_ControlKey = 280,
-    T_Crypto = 281,
-    T_Cryptostats = 282,
-    T_Ctl = 283,
-    T_Day = 284,
-    T_Default = 285,
-    T_Digest = 286,
-    T_Disable = 287,
-    T_Discard = 288,
-    T_Dispersion = 289,
-    T_Double = 290,
-    T_Driftfile = 291,
-    T_Drop = 292,
-    T_Dscp = 293,
-    T_Ellipsis = 294,
-    T_Enable = 295,
-    T_End = 296,
-    T_Epeer = 297,
-    T_False = 298,
-    T_File = 299,
-    T_Filegen = 300,
-    T_Filenum = 301,
-    T_Flag1 = 302,
-    T_Flag2 = 303,
-    T_Flag3 = 304,
-    T_Flag4 = 305,
-    T_Flake = 306,
-    T_Floor = 307,
-    T_Freq = 308,
-    T_Fudge = 309,
-    T_Fuzz = 310,
-    T_Host = 311,
-    T_Huffpuff = 312,
-    T_Iburst = 313,
-    T_Ident = 314,
-    T_Ignore = 315,
-    T_Ignorehash = 316,
-    T_Incalloc = 317,
-    T_Incmem = 318,
-    T_Initalloc = 319,
-    T_Initmem = 320,
-    T_Includefile = 321,
-    T_Integer = 322,
-    T_Interface = 323,
-    T_Intrange = 324,
-    T_Io = 325,
-    T_Ippeerlimit = 326,
-    T_Ipv4 = 327,
-    T_Ipv4_flag = 328,
-    T_Ipv6 = 329,
-    T_Ipv6_flag = 330,
-    T_Kernel = 331,
-    T_Key = 332,
-    T_Keys = 333,
-    T_Keysdir = 334,
-    T_Kod = 335,
-    T_Leapfile = 336,
-    T_Leapsmearinterval = 337,
-    T_Limited = 338,
-    T_Link = 339,
-    T_Listen = 340,
-    T_Logconfig = 341,
-    T_Logfile = 342,
-    T_Loopstats = 343,
-    T_Lowpriotrap = 344,
-    T_Manycastclient = 345,
-    T_Manycastserver = 346,
-    T_Mask = 347,
-    T_Maxage = 348,
-    T_Maxclock = 349,
-    T_Maxdepth = 350,
-    T_Maxdist = 351,
-    T_Maxmem = 352,
-    T_Maxpoll = 353,
-    T_Mdnstries = 354,
-    T_Mem = 355,
-    T_Memlock = 356,
-    T_Minclock = 357,
-    T_Mindepth = 358,
-    T_Mindist = 359,
-    T_Minimum = 360,
-    T_Minjitter = 361,
-    T_Minpoll = 362,
-    T_Minsane = 363,
-    T_Mode = 364,
-    T_Mode7 = 365,
-    T_Monitor = 366,
-    T_Month = 367,
-    T_Mru = 368,
-    T_Mssntp = 369,
-    T_Multicastclient = 370,
-    T_Nic = 371,
-    T_Nolink = 372,
-    T_Nomodify = 373,
-    T_Nomrulist = 374,
-    T_None = 375,
-    T_Nonvolatile = 376,
-    T_Noepeer = 377,
-    T_Nopeer = 378,
-    T_Noquery = 379,
-    T_Noselect = 380,
-    T_Noserve = 381,
-    T_Notrap = 382,
-    T_Notrust = 383,
-    T_Ntp = 384,
-    T_Ntpport = 385,
-    T_NtpSignDsocket = 386,
-    T_Orphan = 387,
-    T_Orphanwait = 388,
-    T_PCEdigest = 389,
-    T_Panic = 390,
-    T_Peer = 391,
-    T_Peerstats = 392,
-    T_Phone = 393,
-    T_Pid = 394,
-    T_Pidfile = 395,
-    T_Poll = 396,
-    T_PollSkewList = 397,
-    T_Pool = 398,
-    T_Port = 399,
-    T_Preempt = 400,
-    T_Prefer = 401,
-    T_Protostats = 402,
-    T_Pw = 403,
-    T_Randfile = 404,
-    T_Rawstats = 405,
-    T_Refid = 406,
-    T_Requestkey = 407,
-    T_Reset = 408,
-    T_Restrict = 409,
-    T_Revoke = 410,
-    T_Rlimit = 411,
-    T_Saveconfigdir = 412,
-    T_Server = 413,
-    T_Serverresponse = 414,
-    T_ServerresponseFuzz = 415,
-    T_Setvar = 416,
-    T_Source = 417,
-    T_Stacksize = 418,
-    T_Statistics = 419,
-    T_Stats = 420,
-    T_Statsdir = 421,
-    T_Step = 422,
-    T_Stepback = 423,
-    T_Stepfwd = 424,
-    T_Stepout = 425,
-    T_Stratum = 426,
-    T_String = 427,
-    T_Sys = 428,
-    T_Sysstats = 429,
-    T_Tick = 430,
-    T_Time1 = 431,
-    T_Time2 = 432,
-    T_Timer = 433,
-    T_Timingstats = 434,
-    T_Tinker = 435,
-    T_Tos = 436,
-    T_Trap = 437,
-    T_True = 438,
-    T_Trustedkey = 439,
-    T_Ttl = 440,
-    T_Type = 441,
-    T_U_int = 442,
-    T_UEcrypto = 443,
-    T_UEcryptonak = 444,
-    T_UEdigest = 445,
-    T_Unconfig = 446,
-    T_Unpeer = 447,
-    T_Version = 448,
-    T_WanderThreshold = 449,
-    T_Week = 450,
-    T_Wildcard = 451,
-    T_Xleave = 452,
-    T_Xmtnonce = 453,
-    T_Year = 454,
-    T_Flag = 455,
-    T_EOC = 456,
-    T_Simulate = 457,
-    T_Beep_Delay = 458,
-    T_Sim_Duration = 459,
-    T_Server_Offset = 460,
-    T_Duration = 461,
-    T_Freq_Offset = 462,
-    T_Wander = 463,
-    T_Jitter = 464,
-    T_Prop_Delay = 465,
-    T_Proc_Delay = 466
+    YYEMPTY = -2,
+    YYEOF = 0,                     /* "end of file"  */
+    YYerror = 256,                 /* error  */
+    YYUNDEF = 257,                 /* "invalid token"  */
+    T_Abbrev = 258,                /* T_Abbrev  */
+    T_Age = 259,                   /* T_Age  */
+    T_All = 260,                   /* T_All  */
+    T_Allan = 261,                 /* T_Allan  */
+    T_Allpeers = 262,              /* T_Allpeers  */
+    T_Auth = 263,                  /* T_Auth  */
+    T_Autokey = 264,               /* T_Autokey  */
+    T_Automax = 265,               /* T_Automax  */
+    T_Average = 266,               /* T_Average  */
+    T_Basedate = 267,              /* T_Basedate  */
+    T_Bclient = 268,               /* T_Bclient  */
+    T_Bcpollbstep = 269,           /* T_Bcpollbstep  */
+    T_Beacon = 270,                /* T_Beacon  */
+    T_Broadcast = 271,             /* T_Broadcast  */
+    T_Broadcastclient = 272,       /* T_Broadcastclient  */
+    T_Broadcastdelay = 273,        /* T_Broadcastdelay  */
+    T_Burst = 274,                 /* T_Burst  */
+    T_Calibrate = 275,             /* T_Calibrate  */
+    T_Ceiling = 276,               /* T_Ceiling  */
+    T_Checkhash = 277,             /* T_Checkhash  */
+    T_Clockstats = 278,            /* T_Clockstats  */
+    T_Cohort = 279,                /* T_Cohort  */
+    T_ControlKey = 280,            /* T_ControlKey  */
+    T_Crypto = 281,                /* T_Crypto  */
+    T_Cryptostats = 282,           /* T_Cryptostats  */
+    T_Ctl = 283,                   /* T_Ctl  */
+    T_Day = 284,                   /* T_Day  */
+    T_Default = 285,               /* T_Default  */
+    T_Device = 286,                /* T_Device  */
+    T_Digest = 287,                /* T_Digest  */
+    T_Disable = 288,               /* T_Disable  */
+    T_Discard = 289,               /* T_Discard  */
+    T_Dispersion = 290,            /* T_Dispersion  */
+    T_Double = 291,                /* T_Double  */
+    T_Driftfile = 292,             /* T_Driftfile  */
+    T_Drop = 293,                  /* T_Drop  */
+    T_Dscp = 294,                  /* T_Dscp  */
+    T_Ellipsis = 295,              /* T_Ellipsis  */
+    T_Enable = 296,                /* T_Enable  */
+    T_End = 297,                   /* T_End  */
+    T_Epeer = 298,                 /* T_Epeer  */
+    T_False = 299,                 /* T_False  */
+    T_File = 300,                  /* T_File  */
+    T_Filegen = 301,               /* T_Filegen  */
+    T_Filenum = 302,               /* T_Filenum  */
+    T_Flag1 = 303,                 /* T_Flag1  */
+    T_Flag2 = 304,                 /* T_Flag2  */
+    T_Flag3 = 305,                 /* T_Flag3  */
+    T_Flag4 = 306,                 /* T_Flag4  */
+    T_Flake = 307,                 /* T_Flake  */
+    T_Floor = 308,                 /* T_Floor  */
+    T_Freq = 309,                  /* T_Freq  */
+    T_Fudge = 310,                 /* T_Fudge  */
+    T_Fuzz = 311,                  /* T_Fuzz  */
+    T_Host = 312,                  /* T_Host  */
+    T_Huffpuff = 313,              /* T_Huffpuff  */
+    T_Iburst = 314,                /* T_Iburst  */
+    T_Ident = 315,                 /* T_Ident  */
+    T_Ignore = 316,                /* T_Ignore  */
+    T_Ignorehash = 317,            /* T_Ignorehash  */
+    T_Incalloc = 318,              /* T_Incalloc  */
+    T_Incmem = 319,                /* T_Incmem  */
+    T_Initalloc = 320,             /* T_Initalloc  */
+    T_Initmem = 321,               /* T_Initmem  */
+    T_Includefile = 322,           /* T_Includefile  */
+    T_Integer = 323,               /* T_Integer  */
+    T_Interface = 324,             /* T_Interface  */
+    T_Intrange = 325,              /* T_Intrange  */
+    T_Io = 326,                    /* T_Io  */
+    T_Ippeerlimit = 327,           /* T_Ippeerlimit  */
+    T_Ipv4 = 328,                  /* T_Ipv4  */
+    T_Ipv4_flag = 329,             /* T_Ipv4_flag  */
+    T_Ipv6 = 330,                  /* T_Ipv6  */
+    T_Ipv6_flag = 331,             /* T_Ipv6_flag  */
+    T_Kernel = 332,                /* T_Kernel  */
+    T_Key = 333,                   /* T_Key  */
+    T_Keys = 334,                  /* T_Keys  */
+    T_Keysdir = 335,               /* T_Keysdir  */
+    T_Kod = 336,                   /* T_Kod  */
+    T_Leapfile = 337,              /* T_Leapfile  */
+    T_Leapsmearinterval = 338,     /* T_Leapsmearinterval  */
+    T_Limited = 339,               /* T_Limited  */
+    T_Link = 340,                  /* T_Link  */
+    T_Listen = 341,                /* T_Listen  */
+    T_Logconfig = 342,             /* T_Logconfig  */
+    T_Logfile = 343,               /* T_Logfile  */
+    T_Loopstats = 344,             /* T_Loopstats  */
+    T_Lowpriotrap = 345,           /* T_Lowpriotrap  */
+    T_Manycastclient = 346,        /* T_Manycastclient  */
+    T_Manycastserver = 347,        /* T_Manycastserver  */
+    T_Mask = 348,                  /* T_Mask  */
+    T_Maxage = 349,                /* T_Maxage  */
+    T_Maxclock = 350,              /* T_Maxclock  */
+    T_Maxdepth = 351,              /* T_Maxdepth  */
+    T_Maxdist = 352,               /* T_Maxdist  */
+    T_Maxmem = 353,                /* T_Maxmem  */
+    T_Maxpoll = 354,               /* T_Maxpoll  */
+    T_Mdnstries = 355,             /* T_Mdnstries  */
+    T_Mem = 356,                   /* T_Mem  */
+    T_Memlock = 357,               /* T_Memlock  */
+    T_Minclock = 358,              /* T_Minclock  */
+    T_Mindepth = 359,              /* T_Mindepth  */
+    T_Mindist = 360,               /* T_Mindist  */
+    T_Minimum = 361,               /* T_Minimum  */
+    T_Minjitter = 362,             /* T_Minjitter  */
+    T_Minpoll = 363,               /* T_Minpoll  */
+    T_Minsane = 364,               /* T_Minsane  */
+    T_Mode = 365,                  /* T_Mode  */
+    T_Mode7 = 366,                 /* T_Mode7  */
+    T_Monitor = 367,               /* T_Monitor  */
+    T_Month = 368,                 /* T_Month  */
+    T_Mru = 369,                   /* T_Mru  */
+    T_Mssntp = 370,                /* T_Mssntp  */
+    T_Multicastclient = 371,       /* T_Multicastclient  */
+    T_Nic = 372,                   /* T_Nic  */
+    T_Nolink = 373,                /* T_Nolink  */
+    T_Nomodify = 374,              /* T_Nomodify  */
+    T_Nomrulist = 375,             /* T_Nomrulist  */
+    T_None = 376,                  /* T_None  */
+    T_Nonvolatile = 377,           /* T_Nonvolatile  */
+    T_Noepeer = 378,               /* T_Noepeer  */
+    T_Nopeer = 379,                /* T_Nopeer  */
+    T_Noquery = 380,               /* T_Noquery  */
+    T_Noselect = 381,              /* T_Noselect  */
+    T_Noserve = 382,               /* T_Noserve  */
+    T_Notrap = 383,                /* T_Notrap  */
+    T_Notrust = 384,               /* T_Notrust  */
+    T_Ntp = 385,                   /* T_Ntp  */
+    T_Ntpport = 386,               /* T_Ntpport  */
+    T_NtpSignDsocket = 387,        /* T_NtpSignDsocket  */
+    T_Orphan = 388,                /* T_Orphan  */
+    T_Orphanwait = 389,            /* T_Orphanwait  */
+    T_PCEdigest = 390,             /* T_PCEdigest  */
+    T_Panic = 391,                 /* T_Panic  */
+    T_Peer = 392,                  /* T_Peer  */
+    T_Peerstats = 393,             /* T_Peerstats  */
+    T_Phone = 394,                 /* T_Phone  */
+    T_Pid = 395,                   /* T_Pid  */
+    T_Pidfile = 396,               /* T_Pidfile  */
+    T_Poll = 397,                  /* T_Poll  */
+    T_PollSkewList = 398,          /* T_PollSkewList  */
+    T_Pool = 399,                  /* T_Pool  */
+    T_Port = 400,                  /* T_Port  */
+    T_PpsData = 401,               /* T_PpsData  */
+    T_Preempt = 402,               /* T_Preempt  */
+    T_Prefer = 403,                /* T_Prefer  */
+    T_Protostats = 404,            /* T_Protostats  */
+    T_Pw = 405,                    /* T_Pw  */
+    T_Randfile = 406,              /* T_Randfile  */
+    T_Rawstats = 407,              /* T_Rawstats  */
+    T_Refid = 408,                 /* T_Refid  */
+    T_Requestkey = 409,            /* T_Requestkey  */
+    T_Reset = 410,                 /* T_Reset  */
+    T_Restrict = 411,              /* T_Restrict  */
+    T_Revoke = 412,                /* T_Revoke  */
+    T_Rlimit = 413,                /* T_Rlimit  */
+    T_Saveconfigdir = 414,         /* T_Saveconfigdir  */
+    T_Server = 415,                /* T_Server  */
+    T_Serverresponse = 416,        /* T_Serverresponse  */
+    T_ServerresponseFuzz = 417,    /* T_ServerresponseFuzz  */
+    T_Setvar = 418,                /* T_Setvar  */
+    T_Source = 419,                /* T_Source  */
+    T_Stacksize = 420,             /* T_Stacksize  */
+    T_Statistics = 421,            /* T_Statistics  */
+    T_Stats = 422,                 /* T_Stats  */
+    T_Statsdir = 423,              /* T_Statsdir  */
+    T_Step = 424,                  /* T_Step  */
+    T_Stepback = 425,              /* T_Stepback  */
+    T_Stepfwd = 426,               /* T_Stepfwd  */
+    T_Stepout = 427,               /* T_Stepout  */
+    T_Stratum = 428,               /* T_Stratum  */
+    T_String = 429,                /* T_String  */
+    T_Sys = 430,                   /* T_Sys  */
+    T_Sysstats = 431,              /* T_Sysstats  */
+    T_Tick = 432,                  /* T_Tick  */
+    T_Time1 = 433,                 /* T_Time1  */
+    T_Time2 = 434,                 /* T_Time2  */
+    T_TimeData = 435,              /* T_TimeData  */
+    T_Timer = 436,                 /* T_Timer  */
+    T_Timingstats = 437,           /* T_Timingstats  */
+    T_Tinker = 438,                /* T_Tinker  */
+    T_Tos = 439,                   /* T_Tos  */
+    T_Trap = 440,                  /* T_Trap  */
+    T_True = 441,                  /* T_True  */
+    T_Trustedkey = 442,            /* T_Trustedkey  */
+    T_Ttl = 443,                   /* T_Ttl  */
+    T_Type = 444,                  /* T_Type  */
+    T_U_int = 445,                 /* T_U_int  */
+    T_UEcrypto = 446,              /* T_UEcrypto  */
+    T_UEcryptonak = 447,           /* T_UEcryptonak  */
+    T_UEdigest = 448,              /* T_UEdigest  */
+    T_Unconfig = 449,              /* T_Unconfig  */
+    T_Unpeer = 450,                /* T_Unpeer  */
+    T_Version = 451,               /* T_Version  */
+    T_WanderThreshold = 452,       /* T_WanderThreshold  */
+    T_Week = 453,                  /* T_Week  */
+    T_Wildcard = 454,              /* T_Wildcard  */
+    T_Xleave = 455,                /* T_Xleave  */
+    T_Xmtnonce = 456,              /* T_Xmtnonce  */
+    T_Year = 457,                  /* T_Year  */
+    T_Flag = 458,                  /* T_Flag  */
+    T_EOC = 459,                   /* T_EOC  */
+    T_Simulate = 460,              /* T_Simulate  */
+    T_Beep_Delay = 461,            /* T_Beep_Delay  */
+    T_Sim_Duration = 462,          /* T_Sim_Duration  */
+    T_Server_Offset = 463,         /* T_Server_Offset  */
+    T_Duration = 464,              /* T_Duration  */
+    T_Freq_Offset = 465,           /* T_Freq_Offset  */
+    T_Wander = 466,                /* T_Wander  */
+    T_Jitter = 467,                /* T_Jitter  */
+    T_Prop_Delay = 468,            /* T_Prop_Delay  */
+    T_Proc_Delay = 469             /* T_Proc_Delay  */
   };
+  typedef enum yytokentype yytoken_kind_t;
 #endif
-/* Tokens.  */
+/* Token kinds.  */
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYerror 256
+#define YYUNDEF 257
 #define T_Abbrev 258
 #define T_Age 259
 #define T_All 260
@@ -285,194 +302,196 @@ extern int yydebug;
 #define T_Ctl 283
 #define T_Day 284
 #define T_Default 285
-#define T_Digest 286
-#define T_Disable 287
-#define T_Discard 288
-#define T_Dispersion 289
-#define T_Double 290
-#define T_Driftfile 291
-#define T_Drop 292
-#define T_Dscp 293
-#define T_Ellipsis 294
-#define T_Enable 295
-#define T_End 296
-#define T_Epeer 297
-#define T_False 298
-#define T_File 299
-#define T_Filegen 300
-#define T_Filenum 301
-#define T_Flag1 302
-#define T_Flag2 303
-#define T_Flag3 304
-#define T_Flag4 305
-#define T_Flake 306
-#define T_Floor 307
-#define T_Freq 308
-#define T_Fudge 309
-#define T_Fuzz 310
-#define T_Host 311
-#define T_Huffpuff 312
-#define T_Iburst 313
-#define T_Ident 314
-#define T_Ignore 315
-#define T_Ignorehash 316
-#define T_Incalloc 317
-#define T_Incmem 318
-#define T_Initalloc 319
-#define T_Initmem 320
-#define T_Includefile 321
-#define T_Integer 322
-#define T_Interface 323
-#define T_Intrange 324
-#define T_Io 325
-#define T_Ippeerlimit 326
-#define T_Ipv4 327
-#define T_Ipv4_flag 328
-#define T_Ipv6 329
-#define T_Ipv6_flag 330
-#define T_Kernel 331
-#define T_Key 332
-#define T_Keys 333
-#define T_Keysdir 334
-#define T_Kod 335
-#define T_Leapfile 336
-#define T_Leapsmearinterval 337
-#define T_Limited 338
-#define T_Link 339
-#define T_Listen 340
-#define T_Logconfig 341
-#define T_Logfile 342
-#define T_Loopstats 343
-#define T_Lowpriotrap 344
-#define T_Manycastclient 345
-#define T_Manycastserver 346
-#define T_Mask 347
-#define T_Maxage 348
-#define T_Maxclock 349
-#define T_Maxdepth 350
-#define T_Maxdist 351
-#define T_Maxmem 352
-#define T_Maxpoll 353
-#define T_Mdnstries 354
-#define T_Mem 355
-#define T_Memlock 356
-#define T_Minclock 357
-#define T_Mindepth 358
-#define T_Mindist 359
-#define T_Minimum 360
-#define T_Minjitter 361
-#define T_Minpoll 362
-#define T_Minsane 363
-#define T_Mode 364
-#define T_Mode7 365
-#define T_Monitor 366
-#define T_Month 367
-#define T_Mru 368
-#define T_Mssntp 369
-#define T_Multicastclient 370
-#define T_Nic 371
-#define T_Nolink 372
-#define T_Nomodify 373
-#define T_Nomrulist 374
-#define T_None 375
-#define T_Nonvolatile 376
-#define T_Noepeer 377
-#define T_Nopeer 378
-#define T_Noquery 379
-#define T_Noselect 380
-#define T_Noserve 381
-#define T_Notrap 382
-#define T_Notrust 383
-#define T_Ntp 384
-#define T_Ntpport 385
-#define T_NtpSignDsocket 386
-#define T_Orphan 387
-#define T_Orphanwait 388
-#define T_PCEdigest 389
-#define T_Panic 390
-#define T_Peer 391
-#define T_Peerstats 392
-#define T_Phone 393
-#define T_Pid 394
-#define T_Pidfile 395
-#define T_Poll 396
-#define T_PollSkewList 397
-#define T_Pool 398
-#define T_Port 399
-#define T_Preempt 400
-#define T_Prefer 401
-#define T_Protostats 402
-#define T_Pw 403
-#define T_Randfile 404
-#define T_Rawstats 405
-#define T_Refid 406
-#define T_Requestkey 407
-#define T_Reset 408
-#define T_Restrict 409
-#define T_Revoke 410
-#define T_Rlimit 411
-#define T_Saveconfigdir 412
-#define T_Server 413
-#define T_Serverresponse 414
-#define T_ServerresponseFuzz 415
-#define T_Setvar 416
-#define T_Source 417
-#define T_Stacksize 418
-#define T_Statistics 419
-#define T_Stats 420
-#define T_Statsdir 421
-#define T_Step 422
-#define T_Stepback 423
-#define T_Stepfwd 424
-#define T_Stepout 425
-#define T_Stratum 426
-#define T_String 427
-#define T_Sys 428
-#define T_Sysstats 429
-#define T_Tick 430
-#define T_Time1 431
-#define T_Time2 432
-#define T_Timer 433
-#define T_Timingstats 434
-#define T_Tinker 435
-#define T_Tos 436
-#define T_Trap 437
-#define T_True 438
-#define T_Trustedkey 439
-#define T_Ttl 440
-#define T_Type 441
-#define T_U_int 442
-#define T_UEcrypto 443
-#define T_UEcryptonak 444
-#define T_UEdigest 445
-#define T_Unconfig 446
-#define T_Unpeer 447
-#define T_Version 448
-#define T_WanderThreshold 449
-#define T_Week 450
-#define T_Wildcard 451
-#define T_Xleave 452
-#define T_Xmtnonce 453
-#define T_Year 454
-#define T_Flag 455
-#define T_EOC 456
-#define T_Simulate 457
-#define T_Beep_Delay 458
-#define T_Sim_Duration 459
-#define T_Server_Offset 460
-#define T_Duration 461
-#define T_Freq_Offset 462
-#define T_Wander 463
-#define T_Jitter 464
-#define T_Prop_Delay 465
-#define T_Proc_Delay 466
+#define T_Device 286
+#define T_Digest 287
+#define T_Disable 288
+#define T_Discard 289
+#define T_Dispersion 290
+#define T_Double 291
+#define T_Driftfile 292
+#define T_Drop 293
+#define T_Dscp 294
+#define T_Ellipsis 295
+#define T_Enable 296
+#define T_End 297
+#define T_Epeer 298
+#define T_False 299
+#define T_File 300
+#define T_Filegen 301
+#define T_Filenum 302
+#define T_Flag1 303
+#define T_Flag2 304
+#define T_Flag3 305
+#define T_Flag4 306
+#define T_Flake 307
+#define T_Floor 308
+#define T_Freq 309
+#define T_Fudge 310
+#define T_Fuzz 311
+#define T_Host 312
+#define T_Huffpuff 313
+#define T_Iburst 314
+#define T_Ident 315
+#define T_Ignore 316
+#define T_Ignorehash 317
+#define T_Incalloc 318
+#define T_Incmem 319
+#define T_Initalloc 320
+#define T_Initmem 321
+#define T_Includefile 322
+#define T_Integer 323
+#define T_Interface 324
+#define T_Intrange 325
+#define T_Io 326
+#define T_Ippeerlimit 327
+#define T_Ipv4 328
+#define T_Ipv4_flag 329
+#define T_Ipv6 330
+#define T_Ipv6_flag 331
+#define T_Kernel 332
+#define T_Key 333
+#define T_Keys 334
+#define T_Keysdir 335
+#define T_Kod 336
+#define T_Leapfile 337
+#define T_Leapsmearinterval 338
+#define T_Limited 339
+#define T_Link 340
+#define T_Listen 341
+#define T_Logconfig 342
+#define T_Logfile 343
+#define T_Loopstats 344
+#define T_Lowpriotrap 345
+#define T_Manycastclient 346
+#define T_Manycastserver 347
+#define T_Mask 348
+#define T_Maxage 349
+#define T_Maxclock 350
+#define T_Maxdepth 351
+#define T_Maxdist 352
+#define T_Maxmem 353
+#define T_Maxpoll 354
+#define T_Mdnstries 355
+#define T_Mem 356
+#define T_Memlock 357
+#define T_Minclock 358
+#define T_Mindepth 359
+#define T_Mindist 360
+#define T_Minimum 361
+#define T_Minjitter 362
+#define T_Minpoll 363
+#define T_Minsane 364
+#define T_Mode 365
+#define T_Mode7 366
+#define T_Monitor 367
+#define T_Month 368
+#define T_Mru 369
+#define T_Mssntp 370
+#define T_Multicastclient 371
+#define T_Nic 372
+#define T_Nolink 373
+#define T_Nomodify 374
+#define T_Nomrulist 375
+#define T_None 376
+#define T_Nonvolatile 377
+#define T_Noepeer 378
+#define T_Nopeer 379
+#define T_Noquery 380
+#define T_Noselect 381
+#define T_Noserve 382
+#define T_Notrap 383
+#define T_Notrust 384
+#define T_Ntp 385
+#define T_Ntpport 386
+#define T_NtpSignDsocket 387
+#define T_Orphan 388
+#define T_Orphanwait 389
+#define T_PCEdigest 390
+#define T_Panic 391
+#define T_Peer 392
+#define T_Peerstats 393
+#define T_Phone 394
+#define T_Pid 395
+#define T_Pidfile 396
+#define T_Poll 397
+#define T_PollSkewList 398
+#define T_Pool 399
+#define T_Port 400
+#define T_PpsData 401
+#define T_Preempt 402
+#define T_Prefer 403
+#define T_Protostats 404
+#define T_Pw 405
+#define T_Randfile 406
+#define T_Rawstats 407
+#define T_Refid 408
+#define T_Requestkey 409
+#define T_Reset 410
+#define T_Restrict 411
+#define T_Revoke 412
+#define T_Rlimit 413
+#define T_Saveconfigdir 414
+#define T_Server 415
+#define T_Serverresponse 416
+#define T_ServerresponseFuzz 417
+#define T_Setvar 418
+#define T_Source 419
+#define T_Stacksize 420
+#define T_Statistics 421
+#define T_Stats 422
+#define T_Statsdir 423
+#define T_Step 424
+#define T_Stepback 425
+#define T_Stepfwd 426
+#define T_Stepout 427
+#define T_Stratum 428
+#define T_String 429
+#define T_Sys 430
+#define T_Sysstats 431
+#define T_Tick 432
+#define T_Time1 433
+#define T_Time2 434
+#define T_TimeData 435
+#define T_Timer 436
+#define T_Timingstats 437
+#define T_Tinker 438
+#define T_Tos 439
+#define T_Trap 440
+#define T_True 441
+#define T_Trustedkey 442
+#define T_Ttl 443
+#define T_Type 444
+#define T_U_int 445
+#define T_UEcrypto 446
+#define T_UEcryptonak 447
+#define T_UEdigest 448
+#define T_Unconfig 449
+#define T_Unpeer 450
+#define T_Version 451
+#define T_WanderThreshold 452
+#define T_Week 453
+#define T_Wildcard 454
+#define T_Xleave 455
+#define T_Xmtnonce 456
+#define T_Year 457
+#define T_Flag 458
+#define T_EOC 459
+#define T_Simulate 460
+#define T_Beep_Delay 461
+#define T_Sim_Duration 462
+#define T_Server_Offset 463
+#define T_Duration 464
+#define T_Freq_Offset 465
+#define T_Wander 466
+#define T_Jitter 467
+#define T_Prop_Delay 468
+#define T_Proc_Delay 469
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
 union YYSTYPE
 {
-#line 52 "../../ntpd/ntp_parser.y" /* yacc.c:1909  */
+#line 52 "../../../src/ntp-stable-3758/ntpd/ntp_parser.y"
 
        char *                  String;
        double                  Double;
@@ -491,9 +510,9 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 495 "../../ntpd/ntp_parser.h" /* yacc.c:1909  */
-};
+#line 514 "../../../src/ntp-stable-3758/ntpd/ntp_parser.h"
 
+};
 typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
@@ -504,4 +523,4 @@ extern YYSTYPE yylval;
 
 int yyparse (void);
 
-#endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED  */
+#endif /* !YY_YY__SRC_NTP_STABLE_NTPD_NTP_PARSER_H_INCLUDED  */
index 0a73e71204db5b0403044bce357f7d19e73505b5..f9b18d16a8cac496f3b748770519babde975877c 100644 (file)
@@ -97,6 +97,7 @@
 %token <Integer>       T_Ctl
 %token <Integer>       T_Day
 %token <Integer>       T_Default
+%token <Integer>       T_Device
 %token <Integer>       T_Digest
 %token <Integer>       T_Disable
 %token <Integer>       T_Discard
 %token <Integer>       T_PollSkewList
 %token <Integer>       T_Pool
 %token <Integer>       T_Port
+%token <Integer>       T_PpsData
 %token <Integer>       T_Preempt
 %token <Integer>       T_Prefer
 %token <Integer>       T_Protostats
 %token <Integer>       T_Tick
 %token <Integer>       T_Time1
 %token <Integer>       T_Time2
+%token <Integer>       T_TimeData
 %token <Integer>       T_Timer
 %token <Integer>       T_Timingstats
 %token <Integer>       T_Tinker
 %type  <Attr_val>      crypto_command
 %type  <Attr_val_fifo> crypto_command_list
 %type  <Integer>       crypto_str_keyword
+%type  <Attr_val>      device_item
+%type  <Integer>       device_item_path_keyword
+%type  <Attr_val_fifo> device_item_list
 %type  <Attr_val>      discard_option
 %type  <Integer>       discard_option_keyword
 %type  <Attr_val_fifo> discard_option_list
@@ -423,6 +429,7 @@ command :   /* NULL STATEMENT */
        |       tinker_command
        |       miscellaneous_command
        |       simulate_command
+       |       device_command
        ;
 
 /* Server Commands
@@ -1059,6 +1066,43 @@ fudge_factor_bool_keyword
        |       T_Flag4
        ;
 
+/* Device Commands
+ * --------------
+ */
+
+device_command
+       :       T_Device address device_item_list
+               {
+                       addr_opts_node *aon;
+
+                       aon = create_addr_opts_node($2, $3);
+                       APPEND_G_FIFO(cfgt.device, aon);
+               }
+       ;
+
+device_item_list
+       :       device_item_list device_item
+               {
+                       $$ = $1;
+                       APPEND_G_FIFO($$, $2);
+               }
+       |       device_item
+               {
+                       $$ = NULL;
+                       APPEND_G_FIFO($$, $1);
+               }
+       ;
+
+device_item
+       :       device_item_path_keyword T_String
+                       { $$ = create_attr_sval($1, $2); }
+       ;
+
+device_item_path_keyword
+       :       T_TimeData
+       |       T_PpsData
+       ;
+
 /* rlimit Commands
  * ---------------
  */
index cb2c887653369dc57d632de9a9196af3b6b1604b..00bd2388ed15614b01274a8214c507fa9297d389 100644 (file)
 #include "config.h"
 #include "ntpd.h"
 
+#if defined(HAVE_UNISTD_H)
+# include <unistd.h>
+#endif
+#if defined(HAVE_FCNTL_H)
+# include <fcntl.h>
+#endif
+
+#include <stdlib.h>
+
 /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
 #if defined(__linux__) && defined(HAVE_OPENAT) && defined(HAVE_FDOPENDIR)
 #define WITH_PPSDEV_MATCH
 /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
 
-#include <unistd.h>
 #include <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
 #include <dirent.h>
 #include <string.h>
 #include <errno.h>
@@ -367,8 +373,11 @@ findMatchingPpsDev(
 #endif /* linux PPS device matcher */
 /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
 
+#include "ntp_clockdev.h"
+
 int
 ppsdev_reopen(
+       const sockaddr_u *srcadr,
        int         ttyfd  , /* current tty FD, or -1 */
        int         ppsfd  , /* current pps FD, or -1 */
        const char *ppspath, /* path to pps device, or NULL */
@@ -376,6 +385,7 @@ ppsdev_reopen(
        int         oflags ) /* openn flags for pps device */
 {
        int retfd = -1;
+       const char *altpath;
 
        /* avoid 'unused' warnings: we might not use all args, no
         * thanks to conditional compiling:)
@@ -384,6 +394,9 @@ ppsdev_reopen(
        (void)omode;
        (void)oflags;
 
+       if (NULL != (altpath = clockdev_lookup(srcadr, 1)))
+               ppspath = altpath;
+
 #   if defined(__unix__) && !defined(_WIN32)
        if (-1 == retfd) {      
                if (ppspath && *ppspath) {
index 872f4a05263f1b916129c8176d9b842d16342520..818ba42f34af926b0b14cfd7b003edb91d816c27 100644 (file)
@@ -10,6 +10,7 @@
 #include "ntp_unixtime.h"
 #include "ntp_tty.h"
 #include "ntp_refclock.h"
+#include "ntp_clockdev.h"
 #include "ntp_stdlib.h"
 #include "ntp_assert.h"
 #include "timespecops.h"
@@ -71,6 +72,8 @@ static int  refclock_cmpl_fp (const void *, const void *);
 static int  refclock_sample (struct refclockproc *);
 static int  refclock_ioctl(int, u_int);
 static void refclock_checkburst(struct peer *, struct refclockproc *);
+static int  symBaud2numBaud(int symBaud);
+static int  numBaud2symBaud(int numBaud);
 
 /* circular buffer functions
  *
@@ -877,13 +880,15 @@ process_refclock_packet(
  */
 int
 refclock_open(
-       const char      *dev,   /* device name pointer */
+       const sockaddr_u *srcadr,
+       const char      *dev,   /* device name pointer */
        u_int           speed,  /* serial port speed (code) */
        u_int           lflags  /* line discipline flags */
        )
 {
+       const char *cdev;
        int     fd;
-       int     omode;
+       int     omode;  
 #ifdef O_NONBLOCK
        char    trash[128];     /* litter bin for old input data */
 #endif
@@ -899,6 +904,9 @@ refclock_open(
        omode |= O_NOCTTY;
 #endif
 
+       if (NULL != (cdev = clockdev_lookup(srcadr, 0)))
+               dev = cdev;
+       
        fd = open(dev, omode, 0777);
        /* refclock_open() long returned 0 on failure, avoid it. */
        if (0 == fd) {
@@ -921,6 +929,9 @@ refclock_open(
                close(fd);
                return -1;
        }
+       msyslog(LOG_NOTICE, "%s serial %s open at %d bps",
+               refnumtoa(srcadr), dev, symBaud2numBaud(speed));
+
 #ifdef O_NONBLOCK
        /*
         * We want to make sure there is no pending trash in the input
@@ -1769,4 +1780,47 @@ refclock_format_lcode(
        va_end(va);
 }
 
+static const int baudTable[][2] = {
+       {B0, 0},
+       {B50, 50},
+       {B75, 75},
+       {B110, 110},
+       {B134, 134},
+       {B150, 150},
+       {B200, 200},
+       {B300, 300},
+       {B600, 600},
+       {B1200, 1200},
+       {B1800, 1800},
+       {B2400, 2400},
+       {B4800, 4800},
+       {B9600, 9600},
+       {B19200, 19200},
+       {B38400, 38400},
+#   ifdef B57600
+       {B57600, 57600 },
+#   endif
+#   ifdef B115200
+       {B115200, 115200},
+#   endif
+       {-1, -1}
+};
+    
+
+static int  symBaud2numBaud(int symBaud)
+{
+       int i;
+       for (i = 0; baudTable[i][1] >= 0; ++i)
+               if (baudTable[i][0] == symBaud)
+                       break;
+       return baudTable[i][1];
+}
+static int  numBaud2symBaud(int numBaud)
+{
+       int i;
+       for (i = 0; baudTable[i][1] >= 0; ++i)
+               if (baudTable[i][1] == numBaud)
+                       break;
+       return baudTable[i][0];
+}
 #endif /* REFCLOCK */
index f62cc466b25c112d9bee99373a2fac38af5f6986..628b27f052aa19fb570fe953d30c0ae992829d37 100644 (file)
@@ -513,7 +513,7 @@ acts_timeout(
                 */
                snprintf(device, sizeof(device), DEVICE,
                    up->unit);
-               fd = refclock_open(device, SPEED232, LDISC_ACTS |
+               fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_ACTS |
                    LDISC_RAW | LDISC_REMOTE);
                if (fd < 0) {
                        msyslog(LOG_ERR, "acts: open fails %m");
index 738be508d586d194b60dd43c0839a653021a3897..1560754bcde27c7e374e694c4111dd1ff6f08e70 100644 (file)
@@ -163,7 +163,7 @@ arb_start(
         * Open serial port. Use CLK line discipline, if available.
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return (0);
 
index 7daae8d3a03ab02cec67572baae82d84ba049a76..d2dba54cb46205231c035ec15ff79e46a205d44d 100644 (file)
@@ -645,7 +645,7 @@ arc_start(
         * Open serial port. Use CLK line discipline, if available.
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       temp_fd = refclock_open(device, SPEED, LDISC_CLK);
+       temp_fd = refclock_open(&peer->srcadr, device, SPEED, LDISC_CLK);
        if (temp_fd <= 0)
                return 0;
        DPRINTF(1, ("arc: unit %d using tty_open().\n", unit));
index 1acf9b208cfa3ba96ef140027767b09daa4b9614..9c215eeeb0fe30976af7d1a53e04dbce799c8042 100644 (file)
@@ -166,7 +166,7 @@ as2201_start(
         * Open serial port. Use CLK line discipline, if available.
         */
        snprintf(gpsdev, sizeof(gpsdev), DEVICE, unit);
-       fd = refclock_open(gpsdev, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, gpsdev, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return (0);
 
index ee54b43a612639c1afa94e81eb0250af895d8401..1499ee4c81ed5565827124cb59e29e6dde14a7c3 100644 (file)
@@ -109,7 +109,7 @@ chronolog_start(
        if (debug)
                printf ("starting Chronolog with device %s\n",device);
 #endif
-       fd = refclock_open(device, SPEED232, 0);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, 0);
        if (fd <= 0)
                return (0);
 
index d745c816768d2a8bd23ef27180edbb6eff70ae1d..3f43fea86a67403f43a94a621bccf695cea2fc8f 100644 (file)
@@ -493,7 +493,7 @@ chu_start(
                fd = fd_audio;
        } else {
                snprintf(device, sizeof(device), DEVICE, unit);
-               fd = refclock_open(device, SPEED232, LDISC_RAW);
+               fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_RAW);
        }
 #else /* HAVE_AUDIO */
 
@@ -501,7 +501,7 @@ chu_start(
         * Open serial port in raw mode.
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_RAW);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_RAW);
 #endif /* HAVE_AUDIO */
 
        if (fd < 0)
index 89f0f4748413fbeadb9dd472ab4da4f5680b51aa..085044182a047507dd63eaf42158333db1648027 100644 (file)
@@ -120,7 +120,7 @@ dumbclock_start(
        if (debug)
                printf ("starting Dumbclock with device %s\n",device);
 #endif
-       fd = refclock_open(device, SPEED232, 0);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, 0);
        if (fd <= 0)
                return (0);
 
index d5915da3b5e7f8b882cb832c2f2762005b684eb0..602cff8b37daf000ce74aaa969a5003d9594462f 100644 (file)
@@ -107,7 +107,7 @@ fg_start(
 
        DPRINTF(1, ("starting FG with device %s\n",device));
 
-       fd = refclock_open(device, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return (0);
        
index aed056c9149783cf531e4ff82c6827688ef38acf..ceb71f2eff78be7a512d322d1da5326405b39be3 100644 (file)
@@ -222,7 +222,7 @@ heath_start(
         * Open serial port
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, speed[peer->ttl & 0x3],
+       fd = refclock_open(&peer->srcadr, device, speed[peer->ttl & 0x3],
                           LDISC_REMOTE);
        if (fd <= 0)
                return (0);
index dae8b37617797ad6492fcccc23038a399bfc8307..43ad43a99a2da43592c4378f465580d98d9b7e58 100644 (file)
@@ -132,7 +132,7 @@ hopfserial_start (
        /* LDISC_STD, LDISC_RAW
         * Open serial port. Use CLK line discipline, if available.
         */
-       fd = refclock_open(gpsdev, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, gpsdev, SPEED232, LDISC_CLK);
        if (fd <= 0) {
 #ifdef DEBUG
                printf("hopfSerialClock(%d) start: open %s failed\n", unit, gpsdev);
index 0b45fc74f2f1ea93060f3db630c0a22647a2eca3..549f16c445f3602a8120e5c0d893a16369e3dd2a 100644 (file)
@@ -171,7 +171,7 @@ hpgps_start(
                ldisc |= LDISC_7O1;
                speed = SPEED232Z;
        }
-       fd = refclock_open(device, speed, ldisc);
+       fd = refclock_open(&peer->srcadr, device, speed, ldisc);
        if (fd <= 0)
                return (0);
        /*
index 0b554fac66744bf7736b7d0ea8fbf9e4d3c08beb..c4e1697bfdf77255da00c58cdd36a3d3d7c0ca19 100644 (file)
@@ -532,7 +532,7 @@ jjy_start ( int unit, struct peer *peer )
        }
 
        /* Open the device */
-       fd = refclock_open ( sDeviceName, up->linespeed, up->linediscipline ) ;
+       fd = refclock_open ( &peer->srcadr, sDeviceName, up->linespeed, up->linediscipline ) ;
        if ( fd <= 0 ) {
                free ( (void*) up ) ;
                return RC_START_ERROR ;
index 815786a3798605cad8071d349b49833365137bb3..7db0198ec6922ac6ee736ae44e10bd672c715e72 100644 (file)
@@ -184,7 +184,7 @@ jupiter_start(
         * Open serial port
         */
        snprintf(gpsdev, sizeof(gpsdev), DEVICE, unit);
-       fd = refclock_open(gpsdev, SPEED232, LDISC_RAW);
+       fd = refclock_open(&peer->srcadr, gpsdev, SPEED232, LDISC_RAW);
        if (fd <= 0) {
                jupiter_debug(peer, "jupiter_start", "open %s: %m",
                              gpsdev);
index 6969e6a2deb1814f8cc891e6a5ffbdb55d53e5d4..11c17d069dd4755d25b643cccc740747c22449a5 100644 (file)
@@ -217,7 +217,7 @@ mx4200_start(
         * Open serial port
         */
        snprintf(gpsdev, sizeof(gpsdev), DEVICE, unit);
-       fd = refclock_open(gpsdev, SPEED232, LDISC_PPS);
+       fd = refclock_open(&peer->srcadr, gpsdev, SPEED232, LDISC_PPS);
        if (fd <= 0)
                return 0;
 
index 6fda0f0785be691f1883e109bb5607a7de963b89..a543816783108fa574724f8189487d79b25c6ee3 100644 (file)
@@ -178,7 +178,7 @@ neoclock4x_start(int unit,
   /* LDISC_STD, LDISC_RAW
    * Open serial port. Use CLK line discipline, if available.
    */
-  fd = refclock_open(dev, B2400, LDISC_STD);
+  fd = refclock_open(&peer->srcadr, dev, B2400, LDISC_STD);
   if(fd <= 0)
     {
       return (0);
index 56178e61073d5e91cb4cc7f947e797c3e62794f5..c4c6d56778bcc1d46ef41886072e505e9dee2878 100644 (file)
@@ -367,45 +367,34 @@ nmea_start(
        size_t                          devlen;
        u_int32                         rate;
        int                             baudrate;
-       const char *                    baudtext;
-
 
        /* Get baudrate choice from mode byte bits 4/5/6 */
        rate = (peer->ttl & NMEA_BAUDRATE_MASK) >> NMEA_BAUDRATE_SHIFT;
 
        switch (rate) {
+       default:
        case 0:
                baudrate = SPEED232;
-               baudtext = "4800";
                break;
        case 1:
                baudrate = B9600;
-               baudtext = "9600";
                break;
        case 2:
                baudrate = B19200;
-               baudtext = "19200";
                break;
        case 3:
                baudrate = B38400;
-               baudtext = "38400";
                break;
 #   ifdef B57600
        case 4:
                baudrate = B57600;
-               baudtext = "57600";
                break;
 #   endif
 #   ifdef B115200
        case 5:
                baudrate = B115200;
-               baudtext = "115200";
                break;
 #   endif
-       default:
-               baudrate = SPEED232;
-               baudtext = "4800 (fallback)";
-               break;
        }
 
        /* Allocate and initialize unit structure */
@@ -436,14 +425,12 @@ nmea_start(
                        refnumtoa(&peer->srcadr));
                return FALSE; /* buffer overflow */
        }
-       pp->io.fd = refclock_open(device, baudrate, LDISC_CLK);
+       pp->io.fd = refclock_open(&peer->srcadr, device, baudrate, LDISC_CLK);
        if (0 >= pp->io.fd) {
                pp->io.fd = nmead_open(device);
                if (-1 == pp->io.fd)
                        return FALSE;
        }
-       LOGIF(CLOCKINFO, (LOG_NOTICE, "%s serial %s open at %s bps",
-             refnumtoa(&peer->srcadr), device, baudtext));
 
        /* succeed if this clock can be added */
        return io_addclock(&pp->io) != 0;
@@ -528,6 +515,7 @@ nmea_control(
                        ppsname = NULL;
                }
                up->ppsapi_fd = ppsdev_reopen(
+                       &peer->srcadr,
                        pp->io.fd, up->ppsapi_fd,
                        ppsname, PPSOPENMODE, (S_IRUSR|S_IWUSR));
                /* note 1: the pps fd might be the same as the tty fd
index a0d11d922b2845a1249d45115e41d802753d0ad3..36ec013bda931629b24222b1c9f132f766c44e90 100644 (file)
@@ -684,7 +684,7 @@ oncore_start(
        }
 #endif /* !SYS_WINNT */
 
-       fd1 = refclock_open(device1, SPEED, LDISC_RAW);
+       fd1 = refclock_open(&peer->srcadr, device1, SPEED, LDISC_RAW);
        if (fd1 <= 0) {
                oncore_log_f(instance, LOG_ERR, "Can't open fd1 (%s)",
                             device1);
index cb68255d05b0e320a0408cc527b01d0166335c3c..f52a6d550f5ebf785135beb896f2208cec4c50cc 100644 (file)
@@ -312,7 +312,7 @@ palisade_start (
         * Open serial port. 
         */
        speed = (CLK_TYPE(peer) == CLK_COPERNICUS) ? SPEED232COP : SPEED232;
-       fd = refclock_open(gpsdev, speed, LDISC_RAW);
+       fd = refclock_open(&peer->srcadr, gpsdev, speed, LDISC_RAW);
        if (fd <= 0) {
 #ifdef DEBUG
                printf("Palisade(%d) start: open %s failed\n", unit, gpsdev);
index 043bc8673c7e2cd617fa9e16c64cdedfce4180a4..58dc260ecefc443436d940d9e48316c014ed189e 100644 (file)
 #include "timevalops.h"                /* includes <sys/time.h> */
 #include "ntp_control.h"
 #include "ntp_string.h"
+#include "ntp_clockdev.h"
 
 #include <stdio.h>
 #include <ctype.h>
@@ -2992,6 +2993,7 @@ parse_start(
        struct parseunit * parse;
        char parsedev[sizeof(PARSEDEVICE)+20];
        char parseppsdev[sizeof(PARSEPPSDEVICE)+20];
+       const char *altdev;
        parsectl_t tmp_ctl;
        u_int type;
 
@@ -3018,8 +3020,20 @@ parse_start(
        /*
         * Unit okay, attempt to open the device.
         */
-       (void) snprintf(parsedev, sizeof(parsedev), PARSEDEVICE, unit);
-       (void) snprintf(parseppsdev, sizeof(parsedev), PARSEPPSDEVICE, unit);
+
+       /* see if there's a configured alternative device name: */
+       altdev = clockdev_lookup(&peer->srcadr, 0);
+       if (altdev && (strlen(altdev) < sizeof(parsedev)))
+               strcpy(parsedev, altdev);
+       else
+               (void) snprintf(parsedev, sizeof(parsedev), PARSEDEVICE, unit);
+       
+       /* likewise for a pps device: */
+       altdev = clockdev_lookup(&peer->srcadr, 1);
+       if (altdev && (strlen(altdev) < sizeof(parseppsdev)))
+               strcpy(parseppsdev, altdev);
+       else
+               (void) snprintf(parseppsdev, sizeof(parseppsdev), PARSEPPSDEVICE, unit);
 
 #ifndef O_NOCTTY
 #define O_NOCTTY 0
index 39be05138dde693e2c9e66e29995902080bee7c2..1d3e1ffcfd6a547e9958d285074017028123e155 100644 (file)
@@ -128,7 +128,7 @@ pst_start(
         * Open serial port. Use CLK line discipline, if available.
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return (0);
 
index 602ca9d6aa1485b0a5801dea3d681aa89b41d277..789029f8aad50b3866029519cbdb6e2c5076b2fc 100644 (file)
@@ -477,7 +477,7 @@ ripencc_start(int unit, struct peer *peer)
         * Open serial port
         */
        (void)snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_RAW);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_RAW);
        if (fd <= 0) {
                pp->io.fd = -1;
                return (0);
index 35901392da0e420ba572fd283a24588b57556fd3..11616db8c3094a11cd377548a55de06d306fc403 100644 (file)
@@ -281,7 +281,7 @@ true_start(
         * Open serial port
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return 0;
 
index d8f24a506f5083362c9bc59e5c0171cad195d171..60147adba219b3ee1e673e1e48df84706020c8c4 100644 (file)
@@ -126,7 +126,7 @@ ulink_start(
         * Open serial port. Use CLK line discipline, if available.
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return (0);
 
index 75897fcc550b18ccded679d876525072f52e55a2..6aafc26f14086cc2ac88106ef75a0953df6d8fb7 100644 (file)
@@ -189,7 +189,7 @@ wwvb_start(
         * Open serial port. Use CLK line discipline, if available.
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_CLK);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_CLK);
        if (fd <= 0)
                return (0);
 
index 8f9f0aad08dccab54d6fa6ea97fba2863b7bdf26..f776048686177cd168db713a7db831360ddf77f7 100644 (file)
@@ -138,7 +138,7 @@ zyfer_start(
         * Something like LDISC_ACTS that looked for ! would be nice...
         */
        snprintf(device, sizeof(device), DEVICE, unit);
-       fd = refclock_open(device, SPEED232, LDISC_RAW);
+       fd = refclock_open(&peer->srcadr, device, SPEED232, LDISC_RAW);
        if (fd <= 0)
                return (0);
 
index 22b06b4718179aa1313bee3cdd54d9c6720f2062..cccaea299dd61c7bd5b33deb949cc1bd881a909d 100644 (file)
@@ -14,6 +14,8 @@
 #include "ntp_iocplmem.h"
 #include "ntp_iocpltypes.h"
 
+const char * (*termios_device_lookup_func)(const sockaddr_u*, int) = NULL;
+
 /* -------------------------------------------------------------------
  * COM port management
  *
@@ -174,14 +176,18 @@ common_serial_open(
        handle = INVALID_HANDLE_VALUE;
 
        pch = NULL;
-       if ('/' == dev[0]) {
+
+       if (0 == _strnicmp("\\\\.\\COM", dev, 7)) {
+                pch = dev + 7;
+                TRACE(1, ("common_serial_open skipped '\\\\.\\COM' leaving %s\n", pch));
+       } else if ('/' == dev[0]) {
                pch = dev + strlen(dev);
                while (isdigit((u_char)pch[-1]))
                        --pch;
                TRACE(1, ("common_serial_open skipped to ending digits leaving %s\n", pch));
        } else if (0 == _strnicmp("COM", dev, 3)) {
                pch = dev + 3;
-               TRACE(1, ("common_serial_open skipped COM leaving %s\n", pch));
+               TRACE(1, ("common_serial_open skipped 'COM' leaving %s\n", pch));
        }
 
        if (!pch || !isdigit((u_char)pch[0])) {
@@ -314,11 +320,14 @@ tty_open(
  */
 int
 refclock_open(
+       const sockaddr_u *srcadr,
        const char *    dev,    /* device name pointer */
        u_int           speed,  /* serial port speed (code) */
        u_int           flags   /* line discipline flags */
        )
 {
+       extern const char* clockdev_lookup(const sockaddr_u *, int);
+
        const char *    windev;
        HANDLE          h;
        COMMTIMEOUTS    timeouts;
@@ -327,6 +336,11 @@ refclock_open(
        int             fd;
        int             translate;
 
+       if (NULL != termios_device_lookup_func) {
+               const char * altdev = (*termios_device_lookup_func)(srcadr, 0);
+               if (NULL != altdev)
+                       dev = altdev;
+       }
        /*
         * open communication port handle
         */
index 86501cbf6c1466cf371bba69cdf700af2e6a8523..f829a6365036e7d1d8f28f721518e6f75898c161 100644 (file)
                        Name="Source Files"
                        Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
                        >
+                       <File
+                               RelativePath="..\..\..\ntpd\ntp_clockdev.c"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                       />
+                               </FileConfiguration>
+                       </File>
                        <File
                                RelativePath="..\..\..\ntpd\ntp_ppsdev.c"
                                >
index 0bc3ee2f65cc9639d4f070133485d12ba93d7e7e..2d16eacf2f24b2833d3d4e3122051672d6298a12 100644 (file)
                        Name="Source Files"
                        Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
                        >
+                       <File
+                               RelativePath="..\..\..\..\ntpd\ntp_clockdev.c"
+                               >
+                       </File>
                        <File
                                RelativePath="..\..\..\..\ntpd\ntp_ppsdev.c"
                                >
index 9b445fb525ba6454bb79a87653344eafadcf28c3..eefa4b7359573b37a29760d704a745ff8892dc3a 100644 (file)
     <ClCompile Include="..\..\..\..\libparse\parse.c" />
     <ClCompile Include="..\..\..\..\libparse\parse_conf.c" />
     <ClCompile Include="..\..\..\..\libparse\trim_info.c" />
+    <ClCompile Include="..\..\..\..\ntpd\ntp_clockdev.c" />
     <ClCompile Include="..\..\..\..\ntpd\ntp_ppsdev.c" />
     <ClCompile Include="..\..\..\..\ntpd\cmd_args.c" />
     <ClCompile Include="..\..\..\..\ntpd\ntpd-opts.c" />
index 4a22b09a0f033be1ac018012d14ffbebbc83dcae..10bc14fcc7d74ac477f53ddb9efe5117492e21e0 100644 (file)
@@ -24,6 +24,9 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\..\..\..\ntpd\ntp_clockdev.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\ntpd\ntp_ppsdev.c">
       <Filter>Source Files</Filter>
     </ClCompile>
index c116eb14b50ff943a4ea5449d9f9c712f4e2fe5f..4da44e050a09709360268abd44f6b14643dce15b 100644 (file)
     <ClCompile Include="..\..\..\..\libparse\parse.c" />
     <ClCompile Include="..\..\..\..\libparse\parse_conf.c" />
     <ClCompile Include="..\..\..\..\libparse\trim_info.c" />
+    <ClCompile Include="..\..\..\..\ntpd\ntp_clockdev.c" />
     <ClCompile Include="..\..\..\..\ntpd\ntp_ppsdev.c" />
     <ClCompile Include="..\..\..\..\ntpd\cmd_args.c" />
     <ClCompile Include="..\..\..\..\ntpd\ntpd-opts.c" />
index 4a22b09a0f033be1ac018012d14ffbebbc83dcae..10bc14fcc7d74ac477f53ddb9efe5117492e21e0 100644 (file)
@@ -24,6 +24,9 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\..\..\..\ntpd\ntp_clockdev.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\ntpd\ntp_ppsdev.c">
       <Filter>Source Files</Filter>
     </ClCompile>