]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
authorHarlan Stenn <stenn@ntp.org>
Sun, 17 Jan 2016 05:07:22 +0000 (05:07 +0000)
committerHarlan Stenn <stenn@ntp.org>
Sun, 17 Jan 2016 05:07:22 +0000 (05:07 +0000)
bk: 569b218augGfsHFmhorMdB0S2gVsxA

17 files changed:
ChangeLog
html/miscopt.html
include/ntp.h
ntpd/invoke-ntp.conf.texi
ntpd/keyword-gen-utd
ntpd/keyword-gen.c
ntpd/ntp.conf.5man
ntpd/ntp.conf.5mdoc
ntpd/ntp.conf.def
ntpd/ntp.conf.man.in
ntpd/ntp.conf.mdoc.in
ntpd/ntp_config.c
ntpd/ntp_keyword.h
ntpd/ntp_parser.c
ntpd/ntp_parser.h
ntpd/ntp_parser.y
ntpd/ntp_proto.c

index 304bd85ab7dc7c851bbe3b0704766c8fed26ba78..094d4f46043a0df3e18e67eb03dfe9a0b42809ce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+---
+
+* [Sec 2942]: Off-path DoS attack on auth broadcast mode.  HStenn.
+
 ---
 (4.2.8p5) 2016/01/07 Released by Harlan Stenn <stenn@ntp.org>
 
index 261b08faca60aa6f94ed4ac6a7576b75d2b1d49e..bc520f60a62ed37ff9e37407333853d196c52633 100644 (file)
@@ -11,7 +11,7 @@
 <img src="pic/boom3.gif" alt="gif" align="left"><a href="http://www.eecis.udel.edu/~mills/pictures.html">from <i>Pogo</i>, Walt Kelly</a>
 <p>We have three, now looking for more.</p>
 <p>Last update:
-  <!-- #BeginDate format:En2m -->17-Nov-2015  11:06<!-- #EndDate -->
+  <!-- #BeginDate format:En2m -->16-Jan-2016  13:08<!-- #EndDate -->
     UTC</p>
 <br clear="left">
 <h4>Related Links</h4>
@@ -29,8 +29,9 @@
   <dd>The file format consists of a single line containing a single floating point number, which records the frequency offset measured in parts-per-million (PPM). The file is updated by first writing the current drift value into a temporary file and then renaming this file to replace the old version.</dd>
   <dt id="dscp"><tt>dscp <i>dscp</i></tt></dt>
   <dd>This command specifies the Differentiated Services Code Point (DSCP) value that is used in sent NTP packets.  The default value is 46 for Expedited Forwarding (EF).</dd>
-  <dt id="enable"><tt>enable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats]</tt><br>
-    <tt>disable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats]</tt></dt>
+  <dt id="enable"><tt>enable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</tt></dt>
+
+  <dt><tt>disable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</tt></dt>
   <dd>Provides a way to enable or disable various system options. Flags not mentioned are unaffected. Note that most of these flags can be modified remotely using <a href="ntpq.html"><tt>ntpq</tt></a> utility program's <tt>:config</tt> and <tt>config-from-file</tt> commands.
     <dl>
       <dt><tt>auth</tt></dt>
       <dd>Enables time and frequency discipline. In effect, this switch opens and closes the feedback loop, which is useful for testing. The default for this flag is enable.</dd>
       <dt><tt>stats</tt></dt>
       <dd>Enables the statistics facility. See the <a href="monopt.html">Monitoring Options</a> page for further information. The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
+| unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early
+      <dt><tt>unpeer_crypto_early</tt></dt>
+      <dd>Enables the early resetting of an association in case of a crypto failure.  This is generally a feature, but it can be used in a DoS attack.  If you are seeing these packets being used as a DoS attack against your server, you should disable this flag.  The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
+      <dt><tt>unpeer_crypto_nak_early</tt></dt>
+      <dd>Enables the early resetting of an association in case of a crypto_NAK message.  This is generally a feature, but it can be used in a DoS attack.  If you are seeing these packets being used as a DoS attack against your server, you should disable this flag.  The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
+      <dt><tt>unpeer_digest_early</tt></dt>
+      <dd>Enables the early resetting of an association in case of an autokey digest failur.  This is generally a feature, but it can be used in a DoS attack.  If you are seeing these packets being used as a DoS attack against your server, you should disable this flag.  The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
     </dl>
   </dd>
   <dt id="includefile"><tt>includefile <i>includefile</i></tt></dt>
index 4ffc35f6febce274061aff17ed9b62fc1f400acc..13ec1dbe4a9d2692a88f49714801d301135166a0 100644 (file)
@@ -708,6 +708,9 @@ struct pkt {
 #define        PROTO_ORPHAN            26
 #define        PROTO_ORPHWAIT          27
 #define        PROTO_MODE7             28
+#define        PROTO_UECRYPTO          29
+#define        PROTO_UECRYPTONAK       30
+#define        PROTO_UEDIGEST          31
 
 /*
  * Configuration items for the loop filter
index 32b41e69e192cbe3bdc70c5c6eff767e2178a637..ed4aaee6bc5233a1c8a3bdbcbb5840d6e9347b44 100644 (file)
@@ -6,7 +6,7 @@
 #
 # EDIT THIS FILE WITH CAUTION  (invoke-ntp.conf.texi)
 #
-# It has been AutoGen-ed  January  7, 2016 at 11:30:49 PM by AutoGen 5.18.5
+# It has been AutoGen-ed  January 17, 2016 at 02:38:28 AM by AutoGen 5.18.4
 # From the definitions    ntp.conf.def
 # and the template file   agtexi-file.tpl
 @end ignore
@@ -2294,8 +2294,8 @@ otherwise, should be avoided.
 @item @code{dscp} @kbd{value}
 This option specifies the Differentiated Services Control Point (DSCP) value,
 a 6-bit code.  The default value is 46, signifying Expedited Forwarding.
-@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats}]}
-@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats}]}
+@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]}
+@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]}
 Provides a way to enable or disable various server options.
 Flags not mentioned are unaffected.
 Note that all of these flags
@@ -2367,6 +2367,67 @@ See the
 section for further information.
 The default for this flag is
 @code{disable}.
+@item @code{unpeer_crypto_early}
+By default, if
+@code{ntpd(1ntpdmdoc)}
+receives an autokey packet that fails TEST9,
+a crypto failure,
+the association is immediately cleared.
+This is almost certainly a feature,
+but if, in spite of the current recommendation of not using autokey,
+you are
+.B still
+using autokey
+.B and
+you are seeing this sort of DoS attack
+disabling this flag will delay
+tearing down the association until the reachability counter
+becomes zero.
+You can check your
+@code{peerstats}
+file for evidence of any of these attacks.
+The
+default for this flag is
+@code{enable}.
+@item @code{unpeer_crypto_nak_early}
+By default, if
+@code{ntpd(1ntpdmdoc)}
+receives a crypto-NAK packet that
+passes the duplicate packet and origin timestamp checks
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery if a server key has changed,
+a properly forged and appropriately delivered crypto-NAK packet
+can be used in a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+@code{peerstats}
+file for evidence of any of these attacks.
+The
+default for this flag is
+@code{enable}.
+@item @code{unpeer_digest_early}
+By default, if
+@code{ntpd(1ntpdmdoc)}
+receives what should be an authenticated packet
+that passes other packet sanity checks but
+contains an invalid digest
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery,
+if this type of packet is carefully forged and sent
+during an appropriate window it can be used for a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+@code{peerstats}
+file for evidence of any of these attacks.
+The
+default for this flag is
+@code{enable}.
 @end table
 @item @code{includefile} @kbd{includefile}
 This command allows additional configuration commands
index 467351b65e3a45ef90e260cd5aa05b808eeefccd..99c72201e8b7206953ed442b34d288da9149d14f 100644 (file)
@@ -1 +1 @@
- *      Generated 2015-06-25 03:57:00 UTC        diff_ignore_line
+ *      Generated 2016-01-16 08:33:03 UTC        diff_ignore_line
index 42e94973f81eecd1da724ce0d1852385d131f907..2e7f62129f6de69c35f227b95d26bc7a8e3b4ce4 100644 (file)
@@ -202,6 +202,9 @@ struct key_tok ntp_keywords[] = {
 { "ntp",               T_Ntp,                  FOLLBY_TOKEN },
 { "mode7",             T_Mode7,                FOLLBY_TOKEN },
 { "stats",             T_Stats,                FOLLBY_TOKEN },
+{ "unpeer_crypto_early",       T_UEcrypto,     FOLLBY_TOKEN },
+{ "unpeer_crypto_nak_early",   T_UEcryptonak,  FOLLBY_TOKEN },
+{ "unpeer_digest_early",       T_UEdigest,     FOLLBY_TOKEN },
 /* rlimit_option */
 { "memlock",           T_Memlock,              FOLLBY_TOKEN },
 { "stacksize",         T_Stacksize,            FOLLBY_TOKEN },
index 6e6aa326bd9e1b2bc1f4f0a5bbbd46a42696407f..4c3facd1a1a5e816aa9f6409ffe17b932e95a511 100644 (file)
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntp.conf 5man "07 Jan 2016" "4.2.8p5" "File Formats"
+.TH ntp.conf 5man "17 Jan 2016" "4.2.8p5" "File Formats"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-8qayqp/ag-Vraqpp)
+.\" EDIT THIS FILE WITH CAUTION (in-mem file)
 .\"
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:35 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed January 17, 2016 at 02:38:34 AM by AutoGen 5.18.4
 .\" From the definitions ntp.conf.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
@@ -2573,9 +2573,9 @@ otherwise, should be avoided.
 This option specifies the Differentiated Services Control Point (DSCP) value,
 a 6-bit code.  The default value is 46, signifying Expedited Forwarding.
 .TP 7
-.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
+.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
 .TP 7
-.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
+.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
 Provides a way to enable or disable various server options.
 Flags not mentioned are unaffected.
 Note that all of these flags
@@ -2655,6 +2655,70 @@ See the
 section for further information.
 The default for this flag is
 \f\*[B-Font]disable\f[].
+.TP 7
+.NOP \f\*[B-Font]unpeer_crypto_early\f[]
+By default, if
+\fCntpd\f[]\fR(1ntpdmdoc)\f[]
+receives an autokey packet that fails TEST9,
+a crypto failure,
+the association is immediately cleared.
+This is almost certainly a feature,
+but if, in spite of the current recommendation of not using autokey,
+you are
+.B still
+using autokey
+.B and
+you are seeing this sort of DoS attack
+disabling this flag will delay
+tearing down the association until the reachability counter
+becomes zero.
+You can check your
+\f\*[B-Font]peerstats\f[]
+file for evidence of any of these attacks.
+The
+default for this flag is
+\f\*[B-Font]enable\f[].
+.TP 7
+.NOP \f\*[B-Font]unpeer_crypto_nak_early\f[]
+By default, if
+\fCntpd\f[]\fR(1ntpdmdoc)\f[]
+receives a crypto-NAK packet that
+passes the duplicate packet and origin timestamp checks
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery if a server key has changed,
+a properly forged and appropriately delivered crypto-NAK packet
+can be used in a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+\f\*[B-Font]peerstats\f[]
+file for evidence of any of these attacks.
+The
+default for this flag is
+\f\*[B-Font]enable\f[].
+.TP 7
+.NOP \f\*[B-Font]unpeer_digest_early\f[]
+By default, if
+\fCntpd\f[]\fR(1ntpdmdoc)\f[]
+receives what should be an authenticated packet
+that passes other packet sanity checks but
+contains an invalid digest
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery,
+if this type of packet is carefully forged and sent
+during an appropriate window it can be used for a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+\f\*[B-Font]peerstats\f[]
+file for evidence of any of these attacks.
+The
+default for this flag is
+\f\*[B-Font]enable\f[].
 .RE
 .TP 7
 .NOP \f\*[B-Font]includefile\f[] \f\*[I-Font]includefile\f[]
@@ -3027,7 +3091,7 @@ RFC5905
 .SH "AUTHORS"
 The University of Delaware and Network Time Foundation
 .SH "COPYRIGHT"
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
 This program is released under the terms of the NTP license, <http://ntp.org/license>.
 .SH BUGS
 The syntax checking is not picky; some combinations of
index 800e995e0f61096920d2c8ed20ffb4ac543352e7..f0223d790a801e99ff1e0135f98022eba8a2e3c3 100644 (file)
@@ -1,9 +1,9 @@
-.Dd January 7 2016
+.Dd January 17 2016
 .Dt NTP_CONF 5mdoc File Formats
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntp.mdoc)
 .\"
-.\"  It has been AutoGen-ed  January  7, 2016 at 11:30:57 PM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  January 17, 2016 at 02:38:21 AM by AutoGen 5.18.4
 .\"  From the definitions    ntp.conf.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
@@ -2393,16 +2393,18 @@ a 6\-bit code.  The default value is 46, signifying Expedited Forwarding.
 .Oo
 .Cm auth | Cm bclient |
 .Cm calibrate | Cm kernel |
-.Cm mode7 | monitor |
-.Cm ntp | Cm stats
+.Cm mode7 | Cm monitor |
+.Cm ntp | Cm stats |
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
 .Oc
 .Xc
 .It Xo Ic disable
 .Oo
 .Cm auth | Cm bclient |
 .Cm calibrate | Cm kernel |
-.Cm mode7 | monitor |
-.Cm ntp | Cm stats
+.Cm mode7 | Cm monitor |
+.Cm ntp | Cm stats |
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
 .Oc
 .Xc
 Provides a way to enable or disable various server options.
@@ -2476,6 +2478,67 @@ See the
 section for further information.
 The default for this flag is
 .Ic disable .
+.It Cm unpeer_crypto_early
+By default, if
+.Xr ntpd 1ntpdmdoc
+receives an autokey packet that fails TEST9,
+a crypto failure,
+the association is immediately cleared.
+This is almost certainly a feature,
+but if, in spite of the current recommendation of not using autokey,
+you are
+.B still
+using autokey
+.B and
+you are seeing this sort of DoS attack
+disabling this flag will delay
+tearing down the association until the reachability counter
+becomes zero.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
+.It Cm unpeer_crypto_nak_early
+By default, if
+.Xr ntpd 1ntpdmdoc
+receives a crypto\-NAK packet that
+passes the duplicate packet and origin timestamp checks
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery if a server key has changed,
+a properly forged and appropriately delivered crypto\-NAK packet
+can be used in a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
+.It Cm unpeer_digest_early
+By default, if
+.Xr ntpd 1ntpdmdoc
+receives what should be an authenticated packet
+that passes other packet sanity checks but
+contains an invalid digest
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery,
+if this type of packet is carefully forged and sent
+during an appropriate window it can be used for a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
 .El
 .It Ic includefile Ar includefile
 This command allows additional configuration commands
@@ -2834,7 +2897,7 @@ A snapshot of this documentation is available in HTML format in
 .Sh "AUTHORS"
 The University of Delaware and Network Time Foundation
 .Sh "COPYRIGHT"
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
 This program is released under the terms of the NTP license, <http://ntp.org/license>.
 .Sh BUGS
 The syntax checking is not picky; some combinations of
@@ -2854,3 +2917,4 @@ This document was derived from FreeBSD.
 .Pp
 This manual page was \fIAutoGen\fP\-erated from the \fBntp.conf\fP
 option definitions.
+
index 43835bc7632ecb2ac3def88c3375aff065430326..25d9fd09f408573ca9856f0dab716d991565c3cb 100644 (file)
@@ -2395,16 +2395,18 @@ a 6-bit code.  The default value is 46, signifying Expedited Forwarding.
 .Oo
 .Cm auth | Cm bclient |
 .Cm calibrate | Cm kernel |
-.Cm mode7 | monitor |
-.Cm ntp | Cm stats
+.Cm mode7 | Cm monitor |
+.Cm ntp | Cm stats |
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
 .Oc
 .Xc
 .It Xo Ic disable
 .Oo
 .Cm auth | Cm bclient |
 .Cm calibrate | Cm kernel |
-.Cm mode7 | monitor |
-.Cm ntp | Cm stats
+.Cm mode7 | Cm monitor |
+.Cm ntp | Cm stats |
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
 .Oc
 .Xc
 Provides a way to enable or disable various server options.
@@ -2478,6 +2480,67 @@ See the
 section for further information.
 The default for this flag is
 .Ic disable .
+.It Cm unpeer_crypto_early
+By default, if
+.Xr ntpd 1ntpdmdoc
+receives an autokey packet that fails TEST9,
+a crypto failure,
+the association is immediately cleared.
+This is almost certainly a feature,
+but if, in spite of the current recommendation of not using autokey,
+you are
+.B still
+using autokey
+.B and
+you are seeing this sort of DoS attack
+disabling this flag will delay
+tearing down the association until the reachability counter
+becomes zero.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
+.It Cm unpeer_crypto_nak_early
+By default, if
+.Xr ntpd 1ntpdmdoc
+receives a crypto-NAK packet that
+passes the duplicate packet and origin timestamp checks
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery if a server key has changed,
+a properly forged and appropriately delivered crypto-NAK packet
+can be used in a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
+.It Cm unpeer_digest_early
+By default, if
+.Xr ntpd 1ntpdmdoc
+receives what should be an authenticated packet
+that passes other packet sanity checks but
+contains an invalid digest
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery,
+if this type of packet is carefully forged and sent
+during an appropriate window it can be used for a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
 .El
 .It Ic includefile Ar includefile
 This command allows additional configuration commands
index f701b41fd2beedce7bbc0dc3388b66215b842c33..8d1ed056d243e9346bd0c6c61544c720765b1665 100644 (file)
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntp.conf 5 "07 Jan 2016" "4.2.8p5" "File Formats"
+.TH ntp.conf 5 "17 Jan 2016" "4.2.8p5" "File Formats"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-8qayqp/ag-Vraqpp)
+.\" EDIT THIS FILE WITH CAUTION (in-mem file)
 .\"
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:35 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed January 17, 2016 at 02:38:34 AM by AutoGen 5.18.4
 .\" From the definitions ntp.conf.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
@@ -2573,9 +2573,9 @@ otherwise, should be avoided.
 This option specifies the Differentiated Services Control Point (DSCP) value,
 a 6-bit code.  The default value is 46, signifying Expedited Forwarding.
 .TP 7
-.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
+.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
 .TP 7
-.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
+.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
 Provides a way to enable or disable various server options.
 Flags not mentioned are unaffected.
 Note that all of these flags
@@ -2655,6 +2655,70 @@ See the
 section for further information.
 The default for this flag is
 \f\*[B-Font]disable\f[].
+.TP 7
+.NOP \f\*[B-Font]unpeer_crypto_early\f[]
+By default, if
+\fCntpd\f[]\fR(@NTPD_MS@)\f[]
+receives an autokey packet that fails TEST9,
+a crypto failure,
+the association is immediately cleared.
+This is almost certainly a feature,
+but if, in spite of the current recommendation of not using autokey,
+you are
+.B still
+using autokey
+.B and
+you are seeing this sort of DoS attack
+disabling this flag will delay
+tearing down the association until the reachability counter
+becomes zero.
+You can check your
+\f\*[B-Font]peerstats\f[]
+file for evidence of any of these attacks.
+The
+default for this flag is
+\f\*[B-Font]enable\f[].
+.TP 7
+.NOP \f\*[B-Font]unpeer_crypto_nak_early\f[]
+By default, if
+\fCntpd\f[]\fR(@NTPD_MS@)\f[]
+receives a crypto-NAK packet that
+passes the duplicate packet and origin timestamp checks
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery if a server key has changed,
+a properly forged and appropriately delivered crypto-NAK packet
+can be used in a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+\f\*[B-Font]peerstats\f[]
+file for evidence of any of these attacks.
+The
+default for this flag is
+\f\*[B-Font]enable\f[].
+.TP 7
+.NOP \f\*[B-Font]unpeer_digest_early\f[]
+By default, if
+\fCntpd\f[]\fR(@NTPD_MS@)\f[]
+receives what should be an authenticated packet
+that passes other packet sanity checks but
+contains an invalid digest
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery,
+if this type of packet is carefully forged and sent
+during an appropriate window it can be used for a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+\f\*[B-Font]peerstats\f[]
+file for evidence of any of these attacks.
+The
+default for this flag is
+\f\*[B-Font]enable\f[].
 .RE
 .TP 7
 .NOP \f\*[B-Font]includefile\f[] \f\*[I-Font]includefile\f[]
@@ -3027,7 +3091,7 @@ RFC5905
 .SH "AUTHORS"
 The University of Delaware and Network Time Foundation
 .SH "COPYRIGHT"
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
 This program is released under the terms of the NTP license, <http://ntp.org/license>.
 .SH BUGS
 The syntax checking is not picky; some combinations of
index 7ad4cc1b3a12f6e0d909fd28e6aa2f4fb9643910..d04b4697c145358df09d6821e8643302826d8ddb 100644 (file)
@@ -1,9 +1,9 @@
-.Dd January 7 2016
+.Dd January 17 2016
 .Dt NTP_CONF 5 File Formats
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntp.mdoc)
 .\"
-.\"  It has been AutoGen-ed  January  7, 2016 at 11:30:57 PM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  January 17, 2016 at 02:38:21 AM by AutoGen 5.18.4
 .\"  From the definitions    ntp.conf.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
@@ -2393,16 +2393,18 @@ a 6\-bit code.  The default value is 46, signifying Expedited Forwarding.
 .Oo
 .Cm auth | Cm bclient |
 .Cm calibrate | Cm kernel |
-.Cm mode7 | monitor |
-.Cm ntp | Cm stats
+.Cm mode7 | Cm monitor |
+.Cm ntp | Cm stats |
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
 .Oc
 .Xc
 .It Xo Ic disable
 .Oo
 .Cm auth | Cm bclient |
 .Cm calibrate | Cm kernel |
-.Cm mode7 | monitor |
-.Cm ntp | Cm stats
+.Cm mode7 | Cm monitor |
+.Cm ntp | Cm stats |
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
 .Oc
 .Xc
 Provides a way to enable or disable various server options.
@@ -2476,6 +2478,67 @@ See the
 section for further information.
 The default for this flag is
 .Ic disable .
+.It Cm unpeer_crypto_early
+By default, if
+.Xr ntpd @NTPD_MS@
+receives an autokey packet that fails TEST9,
+a crypto failure,
+the association is immediately cleared.
+This is almost certainly a feature,
+but if, in spite of the current recommendation of not using autokey,
+you are
+.B still
+using autokey
+.B and
+you are seeing this sort of DoS attack
+disabling this flag will delay
+tearing down the association until the reachability counter
+becomes zero.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
+.It Cm unpeer_crypto_nak_early
+By default, if
+.Xr ntpd @NTPD_MS@
+receives a crypto\-NAK packet that
+passes the duplicate packet and origin timestamp checks
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery if a server key has changed,
+a properly forged and appropriately delivered crypto\-NAK packet
+can be used in a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
+.It Cm unpeer_digest_early
+By default, if
+.Xr ntpd @NTPD_MS@
+receives what should be an authenticated packet
+that passes other packet sanity checks but
+contains an invalid digest
+the association is immediately cleared.
+While this is generally a feature
+as it allows for quick recovery,
+if this type of packet is carefully forged and sent
+during an appropriate window it can be used for a DoS attack.
+If you have active noticable problems with this type of DoS attack
+then you should consider
+disabling this option.
+You can check your
+.Cm peerstats
+file for evidence of any of these attacks.
+The
+default for this flag is
+.Ic enable .
 .El
 .It Ic includefile Ar includefile
 This command allows additional configuration commands
@@ -2834,7 +2897,7 @@ A snapshot of this documentation is available in HTML format in
 .Sh "AUTHORS"
 The University of Delaware and Network Time Foundation
 .Sh "COPYRIGHT"
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
 This program is released under the terms of the NTP license, <http://ntp.org/license>.
 .Sh BUGS
 The syntax checking is not picky; some combinations of
@@ -2854,3 +2917,4 @@ This document was derived from FreeBSD.
 .Pp
 This manual page was \fIAutoGen\fP\-erated from the \fBntp.conf\fP
 option definitions.
+
index 1c754bd1613d8d5a126362dc8df70f07e597c159..92d485e09cfe96a7368fb612390e00f56e255b81 100644 (file)
@@ -2981,6 +2981,18 @@ apply_enable_disable(
                        proto_config(PROTO_FILEGEN, enable, 0., NULL);
                        break;
 
+               case T_UEcrypto:
+                       proto_config(PROTO_UECRYPTO, enable, 0., NULL);
+                       break;
+
+               case T_UEcryptonak:
+                       proto_config(PROTO_UECRYPTONAK, enable, 0., NULL);
+                       break;
+
+               case T_UEdigest:
+                       proto_config(PROTO_UEDIGEST, enable, 0., NULL);
+                       break;
+
 #ifdef BC_LIST_FRAMEWORK_NOT_YET_USED
                case T_Bc_bugXXXX:
                        pentry = bc_list;
index 0a593f69dd21af1f47083c7d7aa52e39496a5ccf..c726c60da4e2633351e77f95db2221ceb96669d9 100644 (file)
@@ -2,7 +2,7 @@
  * ntp_keyword.h
  * 
  * NOTE: edit this file with caution, it is generated by keyword-gen.c
- *      Generated 2015-06-25 03:57:00 UTC        diff_ignore_line
+ *      Generated 2016-01-16 08:33:03 UTC        diff_ignore_line
  *
  */
 #include "ntp_scanner.h"
@@ -10,7 +10,7 @@
 
 #define LOWEST_KEYWORD_ID 258
 
-const char * const keyword_text[191] = {
+const char * const keyword_text[194] = {
        /* 0       258             T_Abbrev */  "abbrev",
        /* 1       259                T_Age */  "age",
        /* 2       260                T_All */  "all",
@@ -182,31 +182,34 @@ const char * const keyword_text[191] = {
        /* 168     426                T_Ttl */  "ttl",
        /* 169     427               T_Type */  "type",
        /* 170     428              T_U_int */  NULL,
-       /* 171     429           T_Unconfig */  "unconfig",
-       /* 172     430             T_Unpeer */  "unpeer",
-       /* 173     431            T_Version */  "version",
-       /* 174     432    T_WanderThreshold */  NULL,
-       /* 175     433               T_Week */  "week",
-       /* 176     434           T_Wildcard */  "wildcard",
-       /* 177     435             T_Xleave */  "xleave",
-       /* 178     436               T_Year */  "year",
-       /* 179     437               T_Flag */  NULL,
-       /* 180     438                T_EOC */  NULL,
-       /* 181     439           T_Simulate */  "simulate",
-       /* 182     440         T_Beep_Delay */  "beep_delay",
-       /* 183     441       T_Sim_Duration */  "simulation_duration",
-       /* 184     442      T_Server_Offset */  "server_offset",
-       /* 185     443           T_Duration */  "duration",
-       /* 186     444        T_Freq_Offset */  "freq_offset",
-       /* 187     445             T_Wander */  "wander",
-       /* 188     446             T_Jitter */  "jitter",
-       /* 189     447         T_Prop_Delay */  "prop_delay",
-       /* 190     448         T_Proc_Delay */  "proc_delay"
+       /* 171     429           T_UEcrypto */  "unpeer_crypto_early",
+       /* 172     430        T_UEcryptonak */  "unpeer_crypto_nak_early",
+       /* 173     431           T_UEdigest */  "unpeer_digest_early",
+       /* 174     432           T_Unconfig */  "unconfig",
+       /* 175     433             T_Unpeer */  "unpeer",
+       /* 176     434            T_Version */  "version",
+       /* 177     435    T_WanderThreshold */  NULL,
+       /* 178     436               T_Week */  "week",
+       /* 179     437           T_Wildcard */  "wildcard",
+       /* 180     438             T_Xleave */  "xleave",
+       /* 181     439               T_Year */  "year",
+       /* 182     440               T_Flag */  NULL,
+       /* 183     441                T_EOC */  NULL,
+       /* 184     442           T_Simulate */  "simulate",
+       /* 185     443         T_Beep_Delay */  "beep_delay",
+       /* 186     444       T_Sim_Duration */  "simulation_duration",
+       /* 187     445      T_Server_Offset */  "server_offset",
+       /* 188     446           T_Duration */  "duration",
+       /* 189     447        T_Freq_Offset */  "freq_offset",
+       /* 190     448             T_Wander */  "wander",
+       /* 191     449             T_Jitter */  "jitter",
+       /* 192     450         T_Prop_Delay */  "prop_delay",
+       /* 193     451         T_Proc_Delay */  "proc_delay"
 };
 
-#define SCANNER_INIT_S 853
+#define SCANNER_INIT_S 887
 
-const scan_state sst[856] = {
+const scan_state sst[890] = {
 /*SS_T( ch,    f-by, match, other ),                            */
   0,                                 /*     0                   */
   S_ST( '-',   3,      323,     0 ), /*     1                   */
@@ -252,7 +255,7 @@ const scan_state sst[856] = {
   S_ST( 'd',   3,       42,     0 ), /*    41 beep_             */
   S_ST( 'e',   3,       43,     0 ), /*    42 beep_d            */
   S_ST( 'l',   3,       44,     0 ), /*    43 beep_de           */
-  S_ST( 'a',   3,      440,     0 ), /*    44 beep_del          */
+  S_ST( 'a',   3,      443,     0 ), /*    44 beep_del          */
   S_ST( 'r',   3,       46,    34 ), /*    45 b                 */
   S_ST( 'o',   3,       47,     0 ), /*    46 br                */
   S_ST( 'a',   3,       48,     0 ), /*    47 bro               */
@@ -352,7 +355,7 @@ const scan_state sst[856] = {
   S_ST( 'a',   3,      142,     0 ), /*   141 dur               */
   S_ST( 't',   3,      143,     0 ), /*   142 dura              */
   S_ST( 'i',   3,      144,     0 ), /*   143 durat             */
-  S_ST( 'o',   3,      443,     0 ), /*   144 durati            */
+  S_ST( 'o',   3,      446,     0 ), /*   144 durati            */
   S_ST( 'e',   3,      146,   105 ), /*   145                   */
   S_ST( 'n',   3,      293,     0 ), /*   146 e                 */
   S_ST( 'a',   3,      148,     0 ), /*   147 en                */
@@ -378,7 +381,7 @@ const scan_state sst[856] = {
   S_ST( 'f',   3,      168,     0 ), /*   167 freq_o            */
   S_ST( 'f',   3,      169,     0 ), /*   168 freq_of           */
   S_ST( 's',   3,      170,     0 ), /*   169 freq_off          */
-  S_ST( 'e',   3,      444,     0 ), /*   170 freq_offs         */
+  S_ST( 'e',   3,      447,     0 ), /*   170 freq_offs         */
   S_ST( 'u',   3,      172,   163 ), /*   171 f                 */
   S_ST( 'd',   3,      173,     0 ), /*   172 fu                */
   S_ST( 'g',   3,      305,     0 ), /*   173 fud               */
@@ -438,7 +441,7 @@ const scan_state sst[856] = {
   S_ST( 'i',   3,      228,     0 ), /*   227 j                 */
   S_ST( 't',   3,      229,     0 ), /*   228 ji                */
   S_ST( 't',   3,      230,     0 ), /*   229 jit               */
-  S_ST( 'e',   3,      446,     0 ), /*   230 jitt              */
+  S_ST( 'e',   3,      449,     0 ), /*   230 jitt              */
   S_ST( 'k',   3,      238,   226 ), /*   231                   */
   S_ST( 'e',   3,      325,     0 ), /*   232 k                 */
   S_ST( 'r',   3,      234,     0 ), /*   233 ke                */
@@ -447,7 +450,7 @@ const scan_state sst[856] = {
   S_ST( 'd',   3,      237,     0 ), /*   236 keys              */
   S_ST( 'i',   3,      327,     0 ), /*   237 keysd             */
   S_ST( 'o',   3,      328,   232 ), /*   238 k                 */
-  S_ST( 'l',   3,      449,   231 ), /*   239                   */
+  S_ST( 'l',   3,      452,   231 ), /*   239                   */
   S_ST( 'e',   3,      241,     0 ), /*   240 l                 */
   S_ST( 'a',   3,      242,     0 ), /*   241 le                */
   S_ST( 'p',   3,      246,     0 ), /*   242 lea               */
@@ -495,7 +498,7 @@ const scan_state sst[856] = {
   S_ST( 'e',   0,        0,     0 ), /*   284 T_Disable         */
   S_ST( 'd',   0,        0,     0 ), /*   285 T_Discard         */
   S_ST( 'n',   0,        0,     0 ), /*   286 T_Dispersion      */
-  S_ST( 'i',   3,      432,   240 ), /*   287 l                 */
+  S_ST( 'i',   3,      435,   240 ), /*   287 l                 */
   S_ST( 'e',   1,        0,     0 ), /*   288 T_Driftfile       */
   S_ST( 'p',   0,        0,     0 ), /*   289 T_Drop            */
   S_ST( 'p',   0,        0,     0 ), /*   290 T_Dscp            */
@@ -557,7 +560,7 @@ const scan_state sst[856] = {
   S_ST( 'm',   0,        0,     0 ), /*   346 T_Maxmem          */
   S_ST( 'l',   0,        0,     0 ), /*   347 T_Maxpoll         */
   S_ST( 's',   0,        0,     0 ), /*   348 T_Mdnstries       */
-  S_ST( 'm',   0,      518,     0 ), /*   349 T_Mem             */
+  S_ST( 'm',   0,      521,     0 ), /*   349 T_Mem             */
   S_ST( 'k',   0,        0,     0 ), /*   350 T_Memlock         */
   S_ST( 'k',   0,        0,     0 ), /*   351 T_Minclock        */
   S_ST( 'h',   0,        0,     0 ), /*   352 T_Mindepth        */
@@ -583,23 +586,23 @@ const scan_state sst[856] = {
   S_ST( 'e',   0,        0,     0 ), /*   372 T_Noserve         */
   S_ST( 'p',   0,        0,     0 ), /*   373 T_Notrap          */
   S_ST( 't',   0,        0,     0 ), /*   374 T_Notrust         */
-  S_ST( 'p',   0,      614,     0 ), /*   375 T_Ntp             */
+  S_ST( 'p',   0,      617,     0 ), /*   375 T_Ntp             */
   S_ST( 't',   0,        0,     0 ), /*   376 T_Ntpport         */
   S_ST( 't',   1,        0,     0 ), /*   377 T_NtpSignDsocket  */
-  S_ST( 'n',   0,      629,     0 ), /*   378 T_Orphan          */
+  S_ST( 'n',   0,      632,     0 ), /*   378 T_Orphan          */
   S_ST( 't',   0,        0,     0 ), /*   379 T_Orphanwait      */
   S_ST( 'c',   0,        0,     0 ), /*   380 T_Panic           */
-  S_ST( 'r',   1,      638,     0 ), /*   381 T_Peer            */
+  S_ST( 'r',   1,      641,     0 ), /*   381 T_Peer            */
   S_ST( 's',   0,        0,     0 ), /*   382 T_Peerstats       */
   S_ST( 'e',   2,        0,     0 ), /*   383 T_Phone           */
-  S_ST( 'd',   0,      646,     0 ), /*   384 T_Pid             */
+  S_ST( 'd',   0,      649,     0 ), /*   384 T_Pid             */
   S_ST( 'e',   1,        0,     0 ), /*   385 T_Pidfile         */
   S_ST( 'l',   1,        0,     0 ), /*   386 T_Pool            */
   S_ST( 't',   0,        0,     0 ), /*   387 T_Port            */
   S_ST( 't',   0,        0,     0 ), /*   388 T_Preempt         */
   S_ST( 'r',   0,        0,     0 ), /*   389 T_Prefer          */
   S_ST( 's',   0,        0,     0 ), /*   390 T_Protostats      */
-  S_ST( 'w',   1,        0,   652 ), /*   391 T_Pw              */
+  S_ST( 'w',   1,        0,   655 ), /*   391 T_Pw              */
   S_ST( 'e',   1,        0,     0 ), /*   392 T_Randfile        */
   S_ST( 's',   0,        0,     0 ), /*   393 T_Rawstats        */
   S_ST( 'd',   1,        0,     0 ), /*   394 T_Refid           */
@@ -609,20 +612,20 @@ const scan_state sst[856] = {
   S_ST( 'e',   0,        0,     0 ), /*   398 T_Revoke          */
   S_ST( 't',   0,        0,     0 ), /*   399 T_Rlimit          */
   S_ST( 'r',   1,        0,     0 ), /*   400 T_Saveconfigdir   */
-  S_ST( 'r',   1,      729,     0 ), /*   401 T_Server          */
+  S_ST( 'r',   1,      732,     0 ), /*   401 T_Server          */
   S_ST( 'r',   1,        0,     0 ), /*   402 T_Setvar          */
   S_ST( 'e',   0,        0,     0 ), /*   403 T_Source          */
   S_ST( 'e',   0,        0,     0 ), /*   404 T_Stacksize       */
   S_ST( 's',   0,        0,     0 ), /*   405 T_Statistics      */
-  S_ST( 's',   0,      772,   767 ), /*   406 T_Stats           */
+  S_ST( 's',   0,      775,   770 ), /*   406 T_Stats           */
   S_ST( 'r',   1,        0,     0 ), /*   407 T_Statsdir        */
-  S_ST( 'p',   0,      780,     0 ), /*   408 T_Step            */
+  S_ST( 'p',   0,      783,     0 ), /*   408 T_Step            */
   S_ST( 'k',   0,        0,     0 ), /*   409 T_Stepback        */
   S_ST( 'd',   0,        0,     0 ), /*   410 T_Stepfwd         */
   S_ST( 't',   0,        0,     0 ), /*   411 T_Stepout         */
   S_ST( 'm',   0,        0,     0 ), /*   412 T_Stratum         */
   S_ST( 'e',   3,      332,     0 ), /*   413 limit             */
-  S_ST( 's',   0,      787,     0 ), /*   414 T_Sys             */
+  S_ST( 's',   0,      790,     0 ), /*   414 T_Sys             */
   S_ST( 's',   0,        0,     0 ), /*   415 T_Sysstats        */
   S_ST( 'k',   0,        0,     0 ), /*   416 T_Tick            */
   S_ST( '1',   0,        0,     0 ), /*   417 T_Time1           */
@@ -637,432 +640,466 @@ const scan_state sst[856] = {
   S_ST( 'l',   0,        0,     0 ), /*   426 T_Ttl             */
   S_ST( 'e',   0,        0,     0 ), /*   427 T_Type            */
   S_ST( 'n',   3,      333,   294 ), /*   428 li                */
-  S_ST( 'g',   1,        0,     0 ), /*   429 T_Unconfig        */
-  S_ST( 'r',   1,        0,     0 ), /*   430 T_Unpeer          */
-  S_ST( 'n',   0,        0,     0 ), /*   431 T_Version         */
-  S_ST( 's',   3,      437,   428 ), /*   432 li                */
-  S_ST( 'k',   0,        0,     0 ), /*   433 T_Week            */
-  S_ST( 'd',   0,        0,     0 ), /*   434 T_Wildcard        */
-  S_ST( 'e',   0,        0,     0 ), /*   435 T_Xleave          */
-  S_ST( 'r',   0,        0,     0 ), /*   436 T_Year            */
-  S_ST( 't',   3,      438,     0 ), /*   437 lis               */
-  S_ST( 'e',   3,      334,     0 ), /*   438 list              */
-  S_ST( 'e',   0,        0,     0 ), /*   439 T_Simulate        */
-  S_ST( 'y',   0,        0,     0 ), /*   440 T_Beep_Delay      */
-  S_ST( 'n',   0,        0,     0 ), /*   441 T_Sim_Duration    */
-  S_ST( 't',   0,        0,     0 ), /*   442 T_Server_Offset   */
-  S_ST( 'n',   0,        0,     0 ), /*   443 T_Duration        */
-  S_ST( 't',   0,        0,     0 ), /*   444 T_Freq_Offset     */
-  S_ST( 'r',   0,        0,     0 ), /*   445 T_Wander          */
-  S_ST( 'r',   0,        0,     0 ), /*   446 T_Jitter          */
-  S_ST( 'y',   0,        0,     0 ), /*   447 T_Prop_Delay      */
-  S_ST( 'y',   0,        0,     0 ), /*   448 T_Proc_Delay      */
-  S_ST( 'o',   3,      465,   287 ), /*   449 l                 */
-  S_ST( 'g',   3,      456,     0 ), /*   450 lo                */
-  S_ST( 'c',   3,      452,     0 ), /*   451 log               */
-  S_ST( 'o',   3,      453,     0 ), /*   452 logc              */
-  S_ST( 'n',   3,      454,     0 ), /*   453 logco             */
-  S_ST( 'f',   3,      455,     0 ), /*   454 logcon            */
-  S_ST( 'i',   3,      335,     0 ), /*   455 logconf           */
-  S_ST( 'f',   3,      457,   451 ), /*   456 log               */
-  S_ST( 'i',   3,      458,     0 ), /*   457 logf              */
-  S_ST( 'l',   3,      336,     0 ), /*   458 logfi             */
-  S_ST( 'o',   3,      460,   450 ), /*   459 lo                */
-  S_ST( 'p',   3,      461,     0 ), /*   460 loo               */
-  S_ST( 's',   3,      462,     0 ), /*   461 loop              */
-  S_ST( 't',   3,      463,     0 ), /*   462 loops             */
-  S_ST( 'a',   3,      464,     0 ), /*   463 loopst            */
-  S_ST( 't',   3,      337,     0 ), /*   464 loopsta           */
-  S_ST( 'w',   3,      466,   459 ), /*   465 lo                */
-  S_ST( 'p',   3,      467,     0 ), /*   466 low               */
-  S_ST( 'r',   3,      468,     0 ), /*   467 lowp              */
-  S_ST( 'i',   3,      469,     0 ), /*   468 lowpr             */
-  S_ST( 'o',   3,      470,     0 ), /*   469 lowpri            */
-  S_ST( 't',   3,      471,     0 ), /*   470 lowprio           */
-  S_ST( 'r',   3,      472,     0 ), /*   471 lowpriot          */
-  S_ST( 'a',   3,      338,     0 ), /*   472 lowpriotr         */
-  S_ST( 'm',   3,      554,   239 ), /*   473                   */
-  S_ST( 'a',   3,      492,     0 ), /*   474 m                 */
-  S_ST( 'n',   3,      476,     0 ), /*   475 ma                */
-  S_ST( 'y',   3,      477,     0 ), /*   476 man               */
-  S_ST( 'c',   3,      478,     0 ), /*   477 many              */
-  S_ST( 'a',   3,      479,     0 ), /*   478 manyc             */
-  S_ST( 's',   3,      480,     0 ), /*   479 manyca            */
-  S_ST( 't',   3,      486,     0 ), /*   480 manycas           */
-  S_ST( 'c',   3,      482,     0 ), /*   481 manycast          */
-  S_ST( 'l',   3,      483,     0 ), /*   482 manycastc         */
-  S_ST( 'i',   3,      484,     0 ), /*   483 manycastcl        */
-  S_ST( 'e',   3,      485,     0 ), /*   484 manycastcli       */
-  S_ST( 'n',   3,      339,     0 ), /*   485 manycastclie      */
-  S_ST( 's',   3,      487,   481 ), /*   486 manycast          */
-  S_ST( 'e',   3,      488,     0 ), /*   487 manycasts         */
-  S_ST( 'r',   3,      489,     0 ), /*   488 manycastse        */
-  S_ST( 'v',   3,      490,     0 ), /*   489 manycastser       */
-  S_ST( 'e',   3,      340,     0 ), /*   490 manycastserv      */
-  S_ST( 's',   3,      341,   475 ), /*   491 ma                */
-  S_ST( 'x',   3,      507,   491 ), /*   492 ma                */
-  S_ST( 'a',   3,      494,     0 ), /*   493 max               */
-  S_ST( 'g',   3,      342,     0 ), /*   494 maxa              */
-  S_ST( 'c',   3,      496,   493 ), /*   495 max               */
-  S_ST( 'l',   3,      497,     0 ), /*   496 maxc              */
-  S_ST( 'o',   3,      498,     0 ), /*   497 maxcl             */
-  S_ST( 'c',   3,      343,     0 ), /*   498 maxclo            */
-  S_ST( 'd',   3,      503,   495 ), /*   499 max               */
-  S_ST( 'e',   3,      501,     0 ), /*   500 maxd              */
-  S_ST( 'p',   3,      502,     0 ), /*   501 maxde             */
-  S_ST( 't',   3,      344,     0 ), /*   502 maxdep            */
-  S_ST( 'i',   3,      504,   500 ), /*   503 maxd              */
-  S_ST( 's',   3,      345,     0 ), /*   504 maxdi             */
-  S_ST( 'm',   3,      506,   499 ), /*   505 max               */
-  S_ST( 'e',   3,      346,     0 ), /*   506 maxm              */
-  S_ST( 'p',   3,      508,   505 ), /*   507 max               */
-  S_ST( 'o',   3,      509,     0 ), /*   508 maxp              */
-  S_ST( 'l',   3,      347,     0 ), /*   509 maxpo             */
-  S_ST( 'd',   3,      511,   474 ), /*   510 m                 */
-  S_ST( 'n',   3,      512,     0 ), /*   511 md                */
-  S_ST( 's',   3,      513,     0 ), /*   512 mdn               */
-  S_ST( 't',   3,      514,     0 ), /*   513 mdns              */
-  S_ST( 'r',   3,      515,     0 ), /*   514 mdnst             */
-  S_ST( 'i',   3,      516,     0 ), /*   515 mdnstr            */
-  S_ST( 'e',   3,      348,     0 ), /*   516 mdnstri           */
-  S_ST( 'e',   3,      349,   510 ), /*   517 m                 */
-  S_ST( 'l',   3,      519,     0 ), /*   518 mem               */
-  S_ST( 'o',   3,      520,     0 ), /*   519 meml              */
-  S_ST( 'c',   3,      350,     0 ), /*   520 memlo             */
-  S_ST( 'i',   3,      522,   517 ), /*   521 m                 */
-  S_ST( 'n',   3,      539,     0 ), /*   522 mi                */
-  S_ST( 'c',   3,      524,     0 ), /*   523 min               */
-  S_ST( 'l',   3,      525,     0 ), /*   524 minc              */
-  S_ST( 'o',   3,      526,     0 ), /*   525 mincl             */
-  S_ST( 'c',   3,      351,     0 ), /*   526 minclo            */
-  S_ST( 'd',   3,      531,   523 ), /*   527 min               */
-  S_ST( 'e',   3,      529,     0 ), /*   528 mind              */
-  S_ST( 'p',   3,      530,     0 ), /*   529 minde             */
-  S_ST( 't',   3,      352,     0 ), /*   530 mindep            */
-  S_ST( 'i',   3,      532,   528 ), /*   531 mind              */
-  S_ST( 's',   3,      353,     0 ), /*   532 mindi             */
-  S_ST( 'i',   3,      534,   527 ), /*   533 min               */
-  S_ST( 'm',   3,      535,     0 ), /*   534 mini              */
-  S_ST( 'u',   3,      354,     0 ), /*   535 minim             */
-  S_ST( 'p',   3,      537,   533 ), /*   536 min               */
-  S_ST( 'o',   3,      538,     0 ), /*   537 minp              */
-  S_ST( 'l',   3,      355,     0 ), /*   538 minpo             */
-  S_ST( 's',   3,      540,   536 ), /*   539 min               */
-  S_ST( 'a',   3,      541,     0 ), /*   540 mins              */
-  S_ST( 'n',   3,      356,     0 ), /*   541 minsa             */
-  S_ST( 'o',   3,      544,   521 ), /*   542 m                 */
-  S_ST( 'd',   3,      357,     0 ), /*   543 mo                */
-  S_ST( 'n',   3,      548,   543 ), /*   544 mo                */
-  S_ST( 'i',   3,      546,     0 ), /*   545 mon               */
-  S_ST( 't',   3,      547,     0 ), /*   546 moni              */
-  S_ST( 'o',   3,      359,     0 ), /*   547 monit             */
-  S_ST( 't',   3,      360,   545 ), /*   548 mon               */
-  S_ST( 'r',   3,      361,   542 ), /*   549 m                 */
-  S_ST( 's',   3,      551,   549 ), /*   550 m                 */
-  S_ST( 's',   3,      552,     0 ), /*   551 ms                */
-  S_ST( 'n',   3,      553,     0 ), /*   552 mss               */
-  S_ST( 't',   3,      329,     0 ), /*   553 mssn              */
-  S_ST( 'u',   3,      555,   550 ), /*   554 m                 */
-  S_ST( 'l',   3,      556,     0 ), /*   555 mu                */
-  S_ST( 't',   3,      557,     0 ), /*   556 mul               */
-  S_ST( 'i',   3,      558,     0 ), /*   557 mult              */
-  S_ST( 'c',   3,      559,     0 ), /*   558 multi             */
-  S_ST( 'a',   3,      560,     0 ), /*   559 multic            */
-  S_ST( 's',   3,      561,     0 ), /*   560 multica           */
-  S_ST( 't',   3,      562,     0 ), /*   561 multicas          */
-  S_ST( 'c',   3,      563,     0 ), /*   562 multicast         */
-  S_ST( 'l',   3,      564,     0 ), /*   563 multicastc        */
-  S_ST( 'i',   3,      565,     0 ), /*   564 multicastcl       */
-  S_ST( 'e',   3,      566,     0 ), /*   565 multicastcli      */
-  S_ST( 'n',   3,      362,     0 ), /*   566 multicastclie     */
-  S_ST( 'n',   3,      610,   473 ), /*   567                   */
-  S_ST( 'i',   3,      363,     0 ), /*   568 n                 */
-  S_ST( 'o',   3,      605,   568 ), /*   569 n                 */
-  S_ST( 'l',   3,      571,     0 ), /*   570 no                */
-  S_ST( 'i',   3,      572,     0 ), /*   571 nol               */
-  S_ST( 'n',   3,      364,     0 ), /*   572 noli              */
-  S_ST( 'm',   3,      578,   570 ), /*   573 no                */
-  S_ST( 'o',   3,      575,     0 ), /*   574 nom               */
-  S_ST( 'd',   3,      576,     0 ), /*   575 nomo              */
-  S_ST( 'i',   3,      577,     0 ), /*   576 nomod             */
-  S_ST( 'f',   3,      365,     0 ), /*   577 nomodi            */
-  S_ST( 'r',   3,      579,   574 ), /*   578 nom               */
-  S_ST( 'u',   3,      580,     0 ), /*   579 nomr              */
-  S_ST( 'l',   3,      581,     0 ), /*   580 nomru             */
-  S_ST( 'i',   3,      582,     0 ), /*   581 nomrul            */
-  S_ST( 's',   3,      366,     0 ), /*   582 nomruli           */
-  S_ST( 'n',   3,      584,   573 ), /*   583 no                */
-  S_ST( 'v',   3,      585,   367 ), /*   584 non               */
-  S_ST( 'o',   3,      586,     0 ), /*   585 nonv              */
-  S_ST( 'l',   3,      587,     0 ), /*   586 nonvo             */
-  S_ST( 'a',   3,      588,     0 ), /*   587 nonvol            */
-  S_ST( 't',   3,      589,     0 ), /*   588 nonvola           */
-  S_ST( 'i',   3,      590,     0 ), /*   589 nonvolat          */
-  S_ST( 'l',   3,      368,     0 ), /*   590 nonvolati         */
-  S_ST( 'p',   3,      592,   583 ), /*   591 no                */
-  S_ST( 'e',   3,      593,     0 ), /*   592 nop               */
-  S_ST( 'e',   3,      369,     0 ), /*   593 nope              */
-  S_ST( 'q',   3,      595,   591 ), /*   594 no                */
-  S_ST( 'u',   3,      596,     0 ), /*   595 noq               */
-  S_ST( 'e',   3,      597,     0 ), /*   596 noqu              */
-  S_ST( 'r',   3,      370,     0 ), /*   597 noque             */
-  S_ST( 's',   3,      599,   594 ), /*   598 no                */
-  S_ST( 'e',   3,      603,     0 ), /*   599 nos               */
-  S_ST( 'l',   3,      601,     0 ), /*   600 nose              */
-  S_ST( 'e',   3,      602,     0 ), /*   601 nosel             */
-  S_ST( 'c',   3,      371,     0 ), /*   602 nosele            */
-  S_ST( 'r',   3,      604,   600 ), /*   603 nose              */
-  S_ST( 'v',   3,      372,     0 ), /*   604 noser             */
-  S_ST( 't',   3,      606,   598 ), /*   605 no                */
-  S_ST( 'r',   3,      608,     0 ), /*   606 not               */
-  S_ST( 'a',   3,      373,     0 ), /*   607 notr              */
-  S_ST( 'u',   3,      609,   607 ), /*   608 notr              */
-  S_ST( 's',   3,      374,     0 ), /*   609 notru             */
-  S_ST( 't',   3,      375,   569 ), /*   610 n                 */
-  S_ST( 'p',   3,      612,     0 ), /*   611 ntp               */
-  S_ST( 'o',   3,      613,     0 ), /*   612 ntpp              */
-  S_ST( 'r',   3,      376,     0 ), /*   613 ntppo             */
-  S_ST( 's',   3,      615,   611 ), /*   614 ntp               */
-  S_ST( 'i',   3,      616,     0 ), /*   615 ntps              */
-  S_ST( 'g',   3,      617,     0 ), /*   616 ntpsi             */
-  S_ST( 'n',   3,      618,     0 ), /*   617 ntpsig            */
-  S_ST( 'd',   3,      619,     0 ), /*   618 ntpsign           */
-  S_ST( 's',   3,      620,     0 ), /*   619 ntpsignd          */
-  S_ST( 'o',   3,      621,     0 ), /*   620 ntpsignds         */
-  S_ST( 'c',   3,      622,     0 ), /*   621 ntpsigndso        */
-  S_ST( 'k',   3,      623,     0 ), /*   622 ntpsigndsoc       */
-  S_ST( 'e',   3,      377,     0 ), /*   623 ntpsigndsock      */
-  S_ST( 'o',   3,      625,   567 ), /*   624                   */
-  S_ST( 'r',   3,      626,     0 ), /*   625 o                 */
-  S_ST( 'p',   3,      627,     0 ), /*   626 or                */
-  S_ST( 'h',   3,      628,     0 ), /*   627 orp               */
-  S_ST( 'a',   3,      378,     0 ), /*   628 orph              */
-  S_ST( 'w',   3,      630,     0 ), /*   629 orphan            */
-  S_ST( 'a',   3,      631,     0 ), /*   630 orphanw           */
-  S_ST( 'i',   3,      379,     0 ), /*   631 orphanwa          */
-  S_ST( 'p',   3,      391,   624 ), /*   632                   */
-  S_ST( 'a',   3,      634,     0 ), /*   633 p                 */
-  S_ST( 'n',   3,      635,     0 ), /*   634 pa                */
-  S_ST( 'i',   3,      380,     0 ), /*   635 pan               */
-  S_ST( 'e',   3,      637,   633 ), /*   636 p                 */
-  S_ST( 'e',   3,      381,     0 ), /*   637 pe                */
-  S_ST( 's',   3,      639,     0 ), /*   638 peer              */
-  S_ST( 't',   3,      640,     0 ), /*   639 peers             */
-  S_ST( 'a',   3,      641,     0 ), /*   640 peerst            */
-  S_ST( 't',   3,      382,     0 ), /*   641 peersta           */
-  S_ST( 'h',   3,      643,   636 ), /*   642 p                 */
-  S_ST( 'o',   3,      644,     0 ), /*   643 ph                */
-  S_ST( 'n',   3,      383,     0 ), /*   644 pho               */
-  S_ST( 'i',   3,      384,   642 ), /*   645 p                 */
-  S_ST( 'f',   3,      647,     0 ), /*   646 pid               */
-  S_ST( 'i',   3,      648,     0 ), /*   647 pidf              */
-  S_ST( 'l',   3,      385,     0 ), /*   648 pidfi             */
-  S_ST( 'o',   3,      651,   645 ), /*   649 p                 */
-  S_ST( 'o',   3,      386,     0 ), /*   650 po                */
-  S_ST( 'r',   3,      387,   650 ), /*   651 po                */
-  S_ST( 'r',   3,      659,   649 ), /*   652 p                 */
-  S_ST( 'e',   3,      657,     0 ), /*   653 pr                */
-  S_ST( 'e',   3,      655,     0 ), /*   654 pre               */
-  S_ST( 'm',   3,      656,     0 ), /*   655 pree              */
-  S_ST( 'p',   3,      388,     0 ), /*   656 preem             */
-  S_ST( 'f',   3,      658,   654 ), /*   657 pre               */
-  S_ST( 'e',   3,      389,     0 ), /*   658 pref              */
-  S_ST( 'o',   3,      672,   653 ), /*   659 pr                */
-  S_ST( 'c',   3,      661,     0 ), /*   660 pro               */
-  S_ST( '_',   3,      662,     0 ), /*   661 proc              */
-  S_ST( 'd',   3,      663,     0 ), /*   662 proc_             */
-  S_ST( 'e',   3,      664,     0 ), /*   663 proc_d            */
-  S_ST( 'l',   3,      665,     0 ), /*   664 proc_de           */
-  S_ST( 'a',   3,      448,     0 ), /*   665 proc_del          */
-  S_ST( 'p',   3,      667,   660 ), /*   666 pro               */
-  S_ST( '_',   3,      668,     0 ), /*   667 prop              */
-  S_ST( 'd',   3,      669,     0 ), /*   668 prop_             */
-  S_ST( 'e',   3,      670,     0 ), /*   669 prop_d            */
-  S_ST( 'l',   3,      671,     0 ), /*   670 prop_de           */
-  S_ST( 'a',   3,      447,     0 ), /*   671 prop_del          */
-  S_ST( 't',   3,      673,   666 ), /*   672 pro               */
-  S_ST( 'o',   3,      674,     0 ), /*   673 prot              */
-  S_ST( 's',   3,      675,     0 ), /*   674 proto             */
-  S_ST( 't',   3,      676,     0 ), /*   675 protos            */
-  S_ST( 'a',   3,      677,     0 ), /*   676 protost           */
-  S_ST( 't',   3,      390,     0 ), /*   677 protosta          */
-  S_ST( 'r',   3,      709,   632 ), /*   678                   */
-  S_ST( 'a',   3,      685,     0 ), /*   679 r                 */
-  S_ST( 'n',   3,      681,     0 ), /*   680 ra                */
-  S_ST( 'd',   3,      682,     0 ), /*   681 ran               */
-  S_ST( 'f',   3,      683,     0 ), /*   682 rand              */
-  S_ST( 'i',   3,      684,     0 ), /*   683 randf             */
-  S_ST( 'l',   3,      392,     0 ), /*   684 randfi            */
-  S_ST( 'w',   3,      686,   680 ), /*   685 ra                */
-  S_ST( 's',   3,      687,     0 ), /*   686 raw               */
-  S_ST( 't',   3,      688,     0 ), /*   687 raws              */
-  S_ST( 'a',   3,      689,     0 ), /*   688 rawst             */
-  S_ST( 't',   3,      393,     0 ), /*   689 rawsta            */
-  S_ST( 'e',   3,      706,   679 ), /*   690 r                 */
-  S_ST( 'f',   3,      692,     0 ), /*   691 re                */
-  S_ST( 'i',   3,      394,     0 ), /*   692 ref               */
-  S_ST( 'q',   3,      694,   691 ), /*   693 re                */
-  S_ST( 'u',   3,      695,     0 ), /*   694 req               */
-  S_ST( 'e',   3,      696,     0 ), /*   695 requ              */
-  S_ST( 's',   3,      697,     0 ), /*   696 reque             */
-  S_ST( 't',   3,      698,     0 ), /*   697 reques            */
-  S_ST( 'k',   3,      699,     0 ), /*   698 request           */
-  S_ST( 'e',   3,      395,     0 ), /*   699 requestk          */
-  S_ST( 's',   3,      702,   693 ), /*   700 re                */
-  S_ST( 'e',   3,      396,     0 ), /*   701 res               */
-  S_ST( 't',   3,      703,   701 ), /*   702 res               */
-  S_ST( 'r',   3,      704,     0 ), /*   703 rest              */
-  S_ST( 'i',   3,      705,     0 ), /*   704 restr             */
-  S_ST( 'c',   3,      397,     0 ), /*   705 restri            */
-  S_ST( 'v',   3,      707,   700 ), /*   706 re                */
-  S_ST( 'o',   3,      708,     0 ), /*   707 rev               */
-  S_ST( 'k',   3,      398,     0 ), /*   708 revo              */
-  S_ST( 'l',   3,      710,   690 ), /*   709 r                 */
-  S_ST( 'i',   3,      711,     0 ), /*   710 rl                */
-  S_ST( 'm',   3,      712,     0 ), /*   711 rli               */
-  S_ST( 'i',   3,      399,     0 ), /*   712 rlim              */
-  S_ST( 's',   3,      786,   678 ), /*   713                   */
-  S_ST( 'a',   3,      715,     0 ), /*   714 s                 */
-  S_ST( 'v',   3,      716,     0 ), /*   715 sa                */
-  S_ST( 'e',   3,      717,     0 ), /*   716 sav               */
-  S_ST( 'c',   3,      718,     0 ), /*   717 save              */
-  S_ST( 'o',   3,      719,     0 ), /*   718 savec             */
-  S_ST( 'n',   3,      720,     0 ), /*   719 saveco            */
-  S_ST( 'f',   3,      721,     0 ), /*   720 savecon           */
-  S_ST( 'i',   3,      722,     0 ), /*   721 saveconf          */
-  S_ST( 'g',   3,      723,     0 ), /*   722 saveconfi         */
-  S_ST( 'd',   3,      724,     0 ), /*   723 saveconfig        */
-  S_ST( 'i',   3,      400,     0 ), /*   724 saveconfigd       */
-  S_ST( 'e',   3,      735,   714 ), /*   725 s                 */
-  S_ST( 'r',   3,      727,     0 ), /*   726 se                */
-  S_ST( 'v',   3,      728,     0 ), /*   727 ser               */
-  S_ST( 'e',   3,      401,     0 ), /*   728 serv              */
-  S_ST( '_',   3,      730,     0 ), /*   729 server            */
-  S_ST( 'o',   3,      731,     0 ), /*   730 server_           */
-  S_ST( 'f',   3,      732,     0 ), /*   731 server_o          */
-  S_ST( 'f',   3,      733,     0 ), /*   732 server_of         */
-  S_ST( 's',   3,      734,     0 ), /*   733 server_off        */
-  S_ST( 'e',   3,      442,     0 ), /*   734 server_offs       */
-  S_ST( 't',   3,      736,   726 ), /*   735 se                */
-  S_ST( 'v',   3,      737,     0 ), /*   736 set               */
-  S_ST( 'a',   3,      402,     0 ), /*   737 setv              */
-  S_ST( 'i',   3,      739,   725 ), /*   738 s                 */
-  S_ST( 'm',   3,      740,     0 ), /*   739 si                */
-  S_ST( 'u',   3,      741,     0 ), /*   740 sim               */
-  S_ST( 'l',   3,      742,     0 ), /*   741 simu              */
-  S_ST( 'a',   3,      743,     0 ), /*   742 simul             */
-  S_ST( 't',   3,      744,     0 ), /*   743 simula            */
-  S_ST( 'i',   3,      745,   439 ), /*   744 simulat           */
-  S_ST( 'o',   3,      746,     0 ), /*   745 simulati          */
-  S_ST( 'n',   3,      747,     0 ), /*   746 simulatio         */
-  S_ST( '_',   3,      748,     0 ), /*   747 simulation        */
-  S_ST( 'd',   3,      749,     0 ), /*   748 simulation_       */
-  S_ST( 'u',   3,      750,     0 ), /*   749 simulation_d      */
-  S_ST( 'r',   3,      751,     0 ), /*   750 simulation_du     */
-  S_ST( 'a',   3,      752,     0 ), /*   751 simulation_dur    */
-  S_ST( 't',   3,      753,     0 ), /*   752 simulation_dura   */
-  S_ST( 'i',   3,      754,     0 ), /*   753 simulation_durat  */
-  S_ST( 'o',   3,      441,     0 ), /*   754 simulation_durati */
-  S_ST( 'o',   3,      756,   738 ), /*   755 s                 */
-  S_ST( 'u',   3,      757,     0 ), /*   756 so                */
-  S_ST( 'r',   3,      758,     0 ), /*   757 sou               */
-  S_ST( 'c',   3,      403,     0 ), /*   758 sour              */
-  S_ST( 't',   3,      782,   755 ), /*   759 s                 */
-  S_ST( 'a',   3,      766,     0 ), /*   760 st                */
-  S_ST( 'c',   3,      762,     0 ), /*   761 sta               */
-  S_ST( 'k',   3,      763,     0 ), /*   762 stac              */
-  S_ST( 's',   3,      764,     0 ), /*   763 stack             */
-  S_ST( 'i',   3,      765,     0 ), /*   764 stacks            */
-  S_ST( 'z',   3,      404,     0 ), /*   765 stacksi           */
-  S_ST( 't',   3,      406,   761 ), /*   766 sta               */
-  S_ST( 'i',   3,      768,     0 ), /*   767 stat              */
-  S_ST( 's',   3,      769,     0 ), /*   768 stati             */
-  S_ST( 't',   3,      770,     0 ), /*   769 statis            */
-  S_ST( 'i',   3,      771,     0 ), /*   770 statist           */
-  S_ST( 'c',   3,      405,     0 ), /*   771 statisti          */
-  S_ST( 'd',   3,      773,     0 ), /*   772 stats             */
-  S_ST( 'i',   3,      407,     0 ), /*   773 statsd            */
-  S_ST( 'e',   3,      408,   760 ), /*   774 st                */
-  S_ST( 'b',   3,      776,     0 ), /*   775 step              */
-  S_ST( 'a',   3,      777,     0 ), /*   776 stepb             */
-  S_ST( 'c',   3,      409,     0 ), /*   777 stepba            */
-  S_ST( 'f',   3,      779,   775 ), /*   778 step              */
-  S_ST( 'w',   3,      410,     0 ), /*   779 stepf             */
-  S_ST( 'o',   3,      781,   778 ), /*   780 step              */
-  S_ST( 'u',   3,      411,     0 ), /*   781 stepo             */
-  S_ST( 'r',   3,      783,   774 ), /*   782 st                */
-  S_ST( 'a',   3,      784,     0 ), /*   783 str               */
-  S_ST( 't',   3,      785,     0 ), /*   784 stra              */
-  S_ST( 'u',   3,      412,     0 ), /*   785 strat             */
-  S_ST( 'y',   3,      414,   759 ), /*   786 s                 */
-  S_ST( 's',   3,      788,     0 ), /*   787 sys               */
-  S_ST( 't',   3,      789,     0 ), /*   788 syss              */
-  S_ST( 'a',   3,      790,     0 ), /*   789 sysst             */
-  S_ST( 't',   3,      415,     0 ), /*   790 syssta            */
-  S_ST( 't',   3,      817,   713 ), /*   791                   */
-  S_ST( 'i',   3,      803,     0 ), /*   792 t                 */
-  S_ST( 'c',   3,      416,     0 ), /*   793 ti                */
-  S_ST( 'm',   3,      796,   793 ), /*   794 ti                */
-  S_ST( 'e',   3,      419,     0 ), /*   795 tim               */
-  S_ST( 'i',   3,      797,   795 ), /*   796 tim               */
-  S_ST( 'n',   3,      798,     0 ), /*   797 timi              */
-  S_ST( 'g',   3,      799,     0 ), /*   798 timin             */
-  S_ST( 's',   3,      800,     0 ), /*   799 timing            */
-  S_ST( 't',   3,      801,     0 ), /*   800 timings           */
-  S_ST( 'a',   3,      802,     0 ), /*   801 timingst          */
-  S_ST( 't',   3,      420,     0 ), /*   802 timingsta         */
-  S_ST( 'n',   3,      804,   794 ), /*   803 ti                */
-  S_ST( 'k',   3,      805,     0 ), /*   804 tin               */
-  S_ST( 'e',   3,      421,     0 ), /*   805 tink              */
-  S_ST( 'o',   3,      422,   792 ), /*   806 t                 */
-  S_ST( 'r',   3,      809,   806 ), /*   807 t                 */
-  S_ST( 'a',   3,      423,     0 ), /*   808 tr                */
-  S_ST( 'u',   3,      810,   808 ), /*   809 tr                */
-  S_ST( 's',   3,      811,   424 ), /*   810 tru               */
-  S_ST( 't',   3,      812,     0 ), /*   811 trus              */
-  S_ST( 'e',   3,      813,     0 ), /*   812 trust             */
-  S_ST( 'd',   3,      814,     0 ), /*   813 truste            */
-  S_ST( 'k',   3,      815,     0 ), /*   814 trusted           */
-  S_ST( 'e',   3,      425,     0 ), /*   815 trustedk          */
-  S_ST( 't',   3,      426,   807 ), /*   816 t                 */
-  S_ST( 'y',   3,      818,   816 ), /*   817 t                 */
-  S_ST( 'p',   3,      427,     0 ), /*   818 ty                */
-  S_ST( 'u',   3,      820,   791 ), /*   819                   */
-  S_ST( 'n',   3,      826,     0 ), /*   820 u                 */
-  S_ST( 'c',   3,      822,     0 ), /*   821 un                */
-  S_ST( 'o',   3,      823,     0 ), /*   822 unc               */
-  S_ST( 'n',   3,      824,     0 ), /*   823 unco              */
-  S_ST( 'f',   3,      825,     0 ), /*   824 uncon             */
-  S_ST( 'i',   3,      429,     0 ), /*   825 unconf            */
-  S_ST( 'p',   3,      827,   821 ), /*   826 un                */
-  S_ST( 'e',   3,      828,     0 ), /*   827 unp               */
-  S_ST( 'e',   3,      430,     0 ), /*   828 unpe              */
-  S_ST( 'v',   3,      830,   819 ), /*   829                   */
-  S_ST( 'e',   3,      831,     0 ), /*   830 v                 */
-  S_ST( 'r',   3,      832,     0 ), /*   831 ve                */
-  S_ST( 's',   3,      833,     0 ), /*   832 ver               */
-  S_ST( 'i',   3,      834,     0 ), /*   833 vers              */
-  S_ST( 'o',   3,      431,     0 ), /*   834 versi             */
-  S_ST( 'w',   3,      842,   829 ), /*   835                   */
-  S_ST( 'a',   3,      837,     0 ), /*   836 w                 */
-  S_ST( 'n',   3,      838,     0 ), /*   837 wa                */
-  S_ST( 'd',   3,      839,     0 ), /*   838 wan               */
-  S_ST( 'e',   3,      445,     0 ), /*   839 wand              */
-  S_ST( 'e',   3,      841,   836 ), /*   840 w                 */
-  S_ST( 'e',   3,      433,     0 ), /*   841 we                */
-  S_ST( 'i',   3,      843,   840 ), /*   842 w                 */
-  S_ST( 'l',   3,      844,     0 ), /*   843 wi                */
-  S_ST( 'd',   3,      845,     0 ), /*   844 wil               */
-  S_ST( 'c',   3,      846,     0 ), /*   845 wild              */
-  S_ST( 'a',   3,      847,     0 ), /*   846 wildc             */
-  S_ST( 'r',   3,      434,     0 ), /*   847 wildca            */
-  S_ST( 'x',   3,      849,   835 ), /*   848                   */
-  S_ST( 'l',   3,      850,     0 ), /*   849 x                 */
-  S_ST( 'e',   3,      851,     0 ), /*   850 xl                */
-  S_ST( 'a',   3,      852,     0 ), /*   851 xle               */
-  S_ST( 'v',   3,      435,     0 ), /*   852 xlea              */
-  S_ST( 'y',   3,      854,   848 ), /*   853 [initial state]   */
-  S_ST( 'e',   3,      855,     0 ), /*   854 y                 */
-  S_ST( 'a',   3,      436,     0 )  /*   855 ye                */
+  S_ST( 'y',   0,        0,     0 ), /*   429 T_UEcrypto        */
+  S_ST( 'y',   0,        0,     0 ), /*   430 T_UEcryptonak     */
+  S_ST( 'y',   0,        0,     0 ), /*   431 T_UEdigest        */
+  S_ST( 'g',   1,        0,     0 ), /*   432 T_Unconfig        */
+  S_ST( 'r',   1,      832,     0 ), /*   433 T_Unpeer          */
+  S_ST( 'n',   0,        0,     0 ), /*   434 T_Version         */
+  S_ST( 's',   3,      440,   428 ), /*   435 li                */
+  S_ST( 'k',   0,        0,     0 ), /*   436 T_Week            */
+  S_ST( 'd',   0,        0,     0 ), /*   437 T_Wildcard        */
+  S_ST( 'e',   0,        0,     0 ), /*   438 T_Xleave          */
+  S_ST( 'r',   0,        0,     0 ), /*   439 T_Year            */
+  S_ST( 't',   3,      441,     0 ), /*   440 lis               */
+  S_ST( 'e',   3,      334,     0 ), /*   441 list              */
+  S_ST( 'e',   0,        0,     0 ), /*   442 T_Simulate        */
+  S_ST( 'y',   0,        0,     0 ), /*   443 T_Beep_Delay      */
+  S_ST( 'n',   0,        0,     0 ), /*   444 T_Sim_Duration    */
+  S_ST( 't',   0,        0,     0 ), /*   445 T_Server_Offset   */
+  S_ST( 'n',   0,        0,     0 ), /*   446 T_Duration        */
+  S_ST( 't',   0,        0,     0 ), /*   447 T_Freq_Offset     */
+  S_ST( 'r',   0,        0,     0 ), /*   448 T_Wander          */
+  S_ST( 'r',   0,        0,     0 ), /*   449 T_Jitter          */
+  S_ST( 'y',   0,        0,     0 ), /*   450 T_Prop_Delay      */
+  S_ST( 'y',   0,        0,     0 ), /*   451 T_Proc_Delay      */
+  S_ST( 'o',   3,      468,   287 ), /*   452 l                 */
+  S_ST( 'g',   3,      459,     0 ), /*   453 lo                */
+  S_ST( 'c',   3,      455,     0 ), /*   454 log               */
+  S_ST( 'o',   3,      456,     0 ), /*   455 logc              */
+  S_ST( 'n',   3,      457,     0 ), /*   456 logco             */
+  S_ST( 'f',   3,      458,     0 ), /*   457 logcon            */
+  S_ST( 'i',   3,      335,     0 ), /*   458 logconf           */
+  S_ST( 'f',   3,      460,   454 ), /*   459 log               */
+  S_ST( 'i',   3,      461,     0 ), /*   460 logf              */
+  S_ST( 'l',   3,      336,     0 ), /*   461 logfi             */
+  S_ST( 'o',   3,      463,   453 ), /*   462 lo                */
+  S_ST( 'p',   3,      464,     0 ), /*   463 loo               */
+  S_ST( 's',   3,      465,     0 ), /*   464 loop              */
+  S_ST( 't',   3,      466,     0 ), /*   465 loops             */
+  S_ST( 'a',   3,      467,     0 ), /*   466 loopst            */
+  S_ST( 't',   3,      337,     0 ), /*   467 loopsta           */
+  S_ST( 'w',   3,      469,   462 ), /*   468 lo                */
+  S_ST( 'p',   3,      470,     0 ), /*   469 low               */
+  S_ST( 'r',   3,      471,     0 ), /*   470 lowp              */
+  S_ST( 'i',   3,      472,     0 ), /*   471 lowpr             */
+  S_ST( 'o',   3,      473,     0 ), /*   472 lowpri            */
+  S_ST( 't',   3,      474,     0 ), /*   473 lowprio           */
+  S_ST( 'r',   3,      475,     0 ), /*   474 lowpriot          */
+  S_ST( 'a',   3,      338,     0 ), /*   475 lowpriotr         */
+  S_ST( 'm',   3,      557,   239 ), /*   476                   */
+  S_ST( 'a',   3,      495,     0 ), /*   477 m                 */
+  S_ST( 'n',   3,      479,     0 ), /*   478 ma                */
+  S_ST( 'y',   3,      480,     0 ), /*   479 man               */
+  S_ST( 'c',   3,      481,     0 ), /*   480 many              */
+  S_ST( 'a',   3,      482,     0 ), /*   481 manyc             */
+  S_ST( 's',   3,      483,     0 ), /*   482 manyca            */
+  S_ST( 't',   3,      489,     0 ), /*   483 manycas           */
+  S_ST( 'c',   3,      485,     0 ), /*   484 manycast          */
+  S_ST( 'l',   3,      486,     0 ), /*   485 manycastc         */
+  S_ST( 'i',   3,      487,     0 ), /*   486 manycastcl        */
+  S_ST( 'e',   3,      488,     0 ), /*   487 manycastcli       */
+  S_ST( 'n',   3,      339,     0 ), /*   488 manycastclie      */
+  S_ST( 's',   3,      490,   484 ), /*   489 manycast          */
+  S_ST( 'e',   3,      491,     0 ), /*   490 manycasts         */
+  S_ST( 'r',   3,      492,     0 ), /*   491 manycastse        */
+  S_ST( 'v',   3,      493,     0 ), /*   492 manycastser       */
+  S_ST( 'e',   3,      340,     0 ), /*   493 manycastserv      */
+  S_ST( 's',   3,      341,   478 ), /*   494 ma                */
+  S_ST( 'x',   3,      510,   494 ), /*   495 ma                */
+  S_ST( 'a',   3,      497,     0 ), /*   496 max               */
+  S_ST( 'g',   3,      342,     0 ), /*   497 maxa              */
+  S_ST( 'c',   3,      499,   496 ), /*   498 max               */
+  S_ST( 'l',   3,      500,     0 ), /*   499 maxc              */
+  S_ST( 'o',   3,      501,     0 ), /*   500 maxcl             */
+  S_ST( 'c',   3,      343,     0 ), /*   501 maxclo            */
+  S_ST( 'd',   3,      506,   498 ), /*   502 max               */
+  S_ST( 'e',   3,      504,     0 ), /*   503 maxd              */
+  S_ST( 'p',   3,      505,     0 ), /*   504 maxde             */
+  S_ST( 't',   3,      344,     0 ), /*   505 maxdep            */
+  S_ST( 'i',   3,      507,   503 ), /*   506 maxd              */
+  S_ST( 's',   3,      345,     0 ), /*   507 maxdi             */
+  S_ST( 'm',   3,      509,   502 ), /*   508 max               */
+  S_ST( 'e',   3,      346,     0 ), /*   509 maxm              */
+  S_ST( 'p',   3,      511,   508 ), /*   510 max               */
+  S_ST( 'o',   3,      512,     0 ), /*   511 maxp              */
+  S_ST( 'l',   3,      347,     0 ), /*   512 maxpo             */
+  S_ST( 'd',   3,      514,   477 ), /*   513 m                 */
+  S_ST( 'n',   3,      515,     0 ), /*   514 md                */
+  S_ST( 's',   3,      516,     0 ), /*   515 mdn               */
+  S_ST( 't',   3,      517,     0 ), /*   516 mdns              */
+  S_ST( 'r',   3,      518,     0 ), /*   517 mdnst             */
+  S_ST( 'i',   3,      519,     0 ), /*   518 mdnstr            */
+  S_ST( 'e',   3,      348,     0 ), /*   519 mdnstri           */
+  S_ST( 'e',   3,      349,   513 ), /*   520 m                 */
+  S_ST( 'l',   3,      522,     0 ), /*   521 mem               */
+  S_ST( 'o',   3,      523,     0 ), /*   522 meml              */
+  S_ST( 'c',   3,      350,     0 ), /*   523 memlo             */
+  S_ST( 'i',   3,      525,   520 ), /*   524 m                 */
+  S_ST( 'n',   3,      542,     0 ), /*   525 mi                */
+  S_ST( 'c',   3,      527,     0 ), /*   526 min               */
+  S_ST( 'l',   3,      528,     0 ), /*   527 minc              */
+  S_ST( 'o',   3,      529,     0 ), /*   528 mincl             */
+  S_ST( 'c',   3,      351,     0 ), /*   529 minclo            */
+  S_ST( 'd',   3,      534,   526 ), /*   530 min               */
+  S_ST( 'e',   3,      532,     0 ), /*   531 mind              */
+  S_ST( 'p',   3,      533,     0 ), /*   532 minde             */
+  S_ST( 't',   3,      352,     0 ), /*   533 mindep            */
+  S_ST( 'i',   3,      535,   531 ), /*   534 mind              */
+  S_ST( 's',   3,      353,     0 ), /*   535 mindi             */
+  S_ST( 'i',   3,      537,   530 ), /*   536 min               */
+  S_ST( 'm',   3,      538,     0 ), /*   537 mini              */
+  S_ST( 'u',   3,      354,     0 ), /*   538 minim             */
+  S_ST( 'p',   3,      540,   536 ), /*   539 min               */
+  S_ST( 'o',   3,      541,     0 ), /*   540 minp              */
+  S_ST( 'l',   3,      355,     0 ), /*   541 minpo             */
+  S_ST( 's',   3,      543,   539 ), /*   542 min               */
+  S_ST( 'a',   3,      544,     0 ), /*   543 mins              */
+  S_ST( 'n',   3,      356,     0 ), /*   544 minsa             */
+  S_ST( 'o',   3,      547,   524 ), /*   545 m                 */
+  S_ST( 'd',   3,      357,     0 ), /*   546 mo                */
+  S_ST( 'n',   3,      551,   546 ), /*   547 mo                */
+  S_ST( 'i',   3,      549,     0 ), /*   548 mon               */
+  S_ST( 't',   3,      550,     0 ), /*   549 moni              */
+  S_ST( 'o',   3,      359,     0 ), /*   550 monit             */
+  S_ST( 't',   3,      360,   548 ), /*   551 mon               */
+  S_ST( 'r',   3,      361,   545 ), /*   552 m                 */
+  S_ST( 's',   3,      554,   552 ), /*   553 m                 */
+  S_ST( 's',   3,      555,     0 ), /*   554 ms                */
+  S_ST( 'n',   3,      556,     0 ), /*   555 mss               */
+  S_ST( 't',   3,      329,     0 ), /*   556 mssn              */
+  S_ST( 'u',   3,      558,   553 ), /*   557 m                 */
+  S_ST( 'l',   3,      559,     0 ), /*   558 mu                */
+  S_ST( 't',   3,      560,     0 ), /*   559 mul               */
+  S_ST( 'i',   3,      561,     0 ), /*   560 mult              */
+  S_ST( 'c',   3,      562,     0 ), /*   561 multi             */
+  S_ST( 'a',   3,      563,     0 ), /*   562 multic            */
+  S_ST( 's',   3,      564,     0 ), /*   563 multica           */
+  S_ST( 't',   3,      565,     0 ), /*   564 multicas          */
+  S_ST( 'c',   3,      566,     0 ), /*   565 multicast         */
+  S_ST( 'l',   3,      567,     0 ), /*   566 multicastc        */
+  S_ST( 'i',   3,      568,     0 ), /*   567 multicastcl       */
+  S_ST( 'e',   3,      569,     0 ), /*   568 multicastcli      */
+  S_ST( 'n',   3,      362,     0 ), /*   569 multicastclie     */
+  S_ST( 'n',   3,      613,   476 ), /*   570                   */
+  S_ST( 'i',   3,      363,     0 ), /*   571 n                 */
+  S_ST( 'o',   3,      608,   571 ), /*   572 n                 */
+  S_ST( 'l',   3,      574,     0 ), /*   573 no                */
+  S_ST( 'i',   3,      575,     0 ), /*   574 nol               */
+  S_ST( 'n',   3,      364,     0 ), /*   575 noli              */
+  S_ST( 'm',   3,      581,   573 ), /*   576 no                */
+  S_ST( 'o',   3,      578,     0 ), /*   577 nom               */
+  S_ST( 'd',   3,      579,     0 ), /*   578 nomo              */
+  S_ST( 'i',   3,      580,     0 ), /*   579 nomod             */
+  S_ST( 'f',   3,      365,     0 ), /*   580 nomodi            */
+  S_ST( 'r',   3,      582,   577 ), /*   581 nom               */
+  S_ST( 'u',   3,      583,     0 ), /*   582 nomr              */
+  S_ST( 'l',   3,      584,     0 ), /*   583 nomru             */
+  S_ST( 'i',   3,      585,     0 ), /*   584 nomrul            */
+  S_ST( 's',   3,      366,     0 ), /*   585 nomruli           */
+  S_ST( 'n',   3,      587,   576 ), /*   586 no                */
+  S_ST( 'v',   3,      588,   367 ), /*   587 non               */
+  S_ST( 'o',   3,      589,     0 ), /*   588 nonv              */
+  S_ST( 'l',   3,      590,     0 ), /*   589 nonvo             */
+  S_ST( 'a',   3,      591,     0 ), /*   590 nonvol            */
+  S_ST( 't',   3,      592,     0 ), /*   591 nonvola           */
+  S_ST( 'i',   3,      593,     0 ), /*   592 nonvolat          */
+  S_ST( 'l',   3,      368,     0 ), /*   593 nonvolati         */
+  S_ST( 'p',   3,      595,   586 ), /*   594 no                */
+  S_ST( 'e',   3,      596,     0 ), /*   595 nop               */
+  S_ST( 'e',   3,      369,     0 ), /*   596 nope              */
+  S_ST( 'q',   3,      598,   594 ), /*   597 no                */
+  S_ST( 'u',   3,      599,     0 ), /*   598 noq               */
+  S_ST( 'e',   3,      600,     0 ), /*   599 noqu              */
+  S_ST( 'r',   3,      370,     0 ), /*   600 noque             */
+  S_ST( 's',   3,      602,   597 ), /*   601 no                */
+  S_ST( 'e',   3,      606,     0 ), /*   602 nos               */
+  S_ST( 'l',   3,      604,     0 ), /*   603 nose              */
+  S_ST( 'e',   3,      605,     0 ), /*   604 nosel             */
+  S_ST( 'c',   3,      371,     0 ), /*   605 nosele            */
+  S_ST( 'r',   3,      607,   603 ), /*   606 nose              */
+  S_ST( 'v',   3,      372,     0 ), /*   607 noser             */
+  S_ST( 't',   3,      609,   601 ), /*   608 no                */
+  S_ST( 'r',   3,      611,     0 ), /*   609 not               */
+  S_ST( 'a',   3,      373,     0 ), /*   610 notr              */
+  S_ST( 'u',   3,      612,   610 ), /*   611 notr              */
+  S_ST( 's',   3,      374,     0 ), /*   612 notru             */
+  S_ST( 't',   3,      375,   572 ), /*   613 n                 */
+  S_ST( 'p',   3,      615,     0 ), /*   614 ntp               */
+  S_ST( 'o',   3,      616,     0 ), /*   615 ntpp              */
+  S_ST( 'r',   3,      376,     0 ), /*   616 ntppo             */
+  S_ST( 's',   3,      618,   614 ), /*   617 ntp               */
+  S_ST( 'i',   3,      619,     0 ), /*   618 ntps              */
+  S_ST( 'g',   3,      620,     0 ), /*   619 ntpsi             */
+  S_ST( 'n',   3,      621,     0 ), /*   620 ntpsig            */
+  S_ST( 'd',   3,      622,     0 ), /*   621 ntpsign           */
+  S_ST( 's',   3,      623,     0 ), /*   622 ntpsignd          */
+  S_ST( 'o',   3,      624,     0 ), /*   623 ntpsignds         */
+  S_ST( 'c',   3,      625,     0 ), /*   624 ntpsigndso        */
+  S_ST( 'k',   3,      626,     0 ), /*   625 ntpsigndsoc       */
+  S_ST( 'e',   3,      377,     0 ), /*   626 ntpsigndsock      */
+  S_ST( 'o',   3,      628,   570 ), /*   627                   */
+  S_ST( 'r',   3,      629,     0 ), /*   628 o                 */
+  S_ST( 'p',   3,      630,     0 ), /*   629 or                */
+  S_ST( 'h',   3,      631,     0 ), /*   630 orp               */
+  S_ST( 'a',   3,      378,     0 ), /*   631 orph              */
+  S_ST( 'w',   3,      633,     0 ), /*   632 orphan            */
+  S_ST( 'a',   3,      634,     0 ), /*   633 orphanw           */
+  S_ST( 'i',   3,      379,     0 ), /*   634 orphanwa          */
+  S_ST( 'p',   3,      391,   627 ), /*   635                   */
+  S_ST( 'a',   3,      637,     0 ), /*   636 p                 */
+  S_ST( 'n',   3,      638,     0 ), /*   637 pa                */
+  S_ST( 'i',   3,      380,     0 ), /*   638 pan               */
+  S_ST( 'e',   3,      640,   636 ), /*   639 p                 */
+  S_ST( 'e',   3,      381,     0 ), /*   640 pe                */
+  S_ST( 's',   3,      642,     0 ), /*   641 peer              */
+  S_ST( 't',   3,      643,     0 ), /*   642 peers             */
+  S_ST( 'a',   3,      644,     0 ), /*   643 peerst            */
+  S_ST( 't',   3,      382,     0 ), /*   644 peersta           */
+  S_ST( 'h',   3,      646,   639 ), /*   645 p                 */
+  S_ST( 'o',   3,      647,     0 ), /*   646 ph                */
+  S_ST( 'n',   3,      383,     0 ), /*   647 pho               */
+  S_ST( 'i',   3,      384,   645 ), /*   648 p                 */
+  S_ST( 'f',   3,      650,     0 ), /*   649 pid               */
+  S_ST( 'i',   3,      651,     0 ), /*   650 pidf              */
+  S_ST( 'l',   3,      385,     0 ), /*   651 pidfi             */
+  S_ST( 'o',   3,      654,   648 ), /*   652 p                 */
+  S_ST( 'o',   3,      386,     0 ), /*   653 po                */
+  S_ST( 'r',   3,      387,   653 ), /*   654 po                */
+  S_ST( 'r',   3,      662,   652 ), /*   655 p                 */
+  S_ST( 'e',   3,      660,     0 ), /*   656 pr                */
+  S_ST( 'e',   3,      658,     0 ), /*   657 pre               */
+  S_ST( 'm',   3,      659,     0 ), /*   658 pree              */
+  S_ST( 'p',   3,      388,     0 ), /*   659 preem             */
+  S_ST( 'f',   3,      661,   657 ), /*   660 pre               */
+  S_ST( 'e',   3,      389,     0 ), /*   661 pref              */
+  S_ST( 'o',   3,      675,   656 ), /*   662 pr                */
+  S_ST( 'c',   3,      664,     0 ), /*   663 pro               */
+  S_ST( '_',   3,      665,     0 ), /*   664 proc              */
+  S_ST( 'd',   3,      666,     0 ), /*   665 proc_             */
+  S_ST( 'e',   3,      667,     0 ), /*   666 proc_d            */
+  S_ST( 'l',   3,      668,     0 ), /*   667 proc_de           */
+  S_ST( 'a',   3,      451,     0 ), /*   668 proc_del          */
+  S_ST( 'p',   3,      670,   663 ), /*   669 pro               */
+  S_ST( '_',   3,      671,     0 ), /*   670 prop              */
+  S_ST( 'd',   3,      672,     0 ), /*   671 prop_             */
+  S_ST( 'e',   3,      673,     0 ), /*   672 prop_d            */
+  S_ST( 'l',   3,      674,     0 ), /*   673 prop_de           */
+  S_ST( 'a',   3,      450,     0 ), /*   674 prop_del          */
+  S_ST( 't',   3,      676,   669 ), /*   675 pro               */
+  S_ST( 'o',   3,      677,     0 ), /*   676 prot              */
+  S_ST( 's',   3,      678,     0 ), /*   677 proto             */
+  S_ST( 't',   3,      679,     0 ), /*   678 protos            */
+  S_ST( 'a',   3,      680,     0 ), /*   679 protost           */
+  S_ST( 't',   3,      390,     0 ), /*   680 protosta          */
+  S_ST( 'r',   3,      712,   635 ), /*   681                   */
+  S_ST( 'a',   3,      688,     0 ), /*   682 r                 */
+  S_ST( 'n',   3,      684,     0 ), /*   683 ra                */
+  S_ST( 'd',   3,      685,     0 ), /*   684 ran               */
+  S_ST( 'f',   3,      686,     0 ), /*   685 rand              */
+  S_ST( 'i',   3,      687,     0 ), /*   686 randf             */
+  S_ST( 'l',   3,      392,     0 ), /*   687 randfi            */
+  S_ST( 'w',   3,      689,   683 ), /*   688 ra                */
+  S_ST( 's',   3,      690,     0 ), /*   689 raw               */
+  S_ST( 't',   3,      691,     0 ), /*   690 raws              */
+  S_ST( 'a',   3,      692,     0 ), /*   691 rawst             */
+  S_ST( 't',   3,      393,     0 ), /*   692 rawsta            */
+  S_ST( 'e',   3,      709,   682 ), /*   693 r                 */
+  S_ST( 'f',   3,      695,     0 ), /*   694 re                */
+  S_ST( 'i',   3,      394,     0 ), /*   695 ref               */
+  S_ST( 'q',   3,      697,   694 ), /*   696 re                */
+  S_ST( 'u',   3,      698,     0 ), /*   697 req               */
+  S_ST( 'e',   3,      699,     0 ), /*   698 requ              */
+  S_ST( 's',   3,      700,     0 ), /*   699 reque             */
+  S_ST( 't',   3,      701,     0 ), /*   700 reques            */
+  S_ST( 'k',   3,      702,     0 ), /*   701 request           */
+  S_ST( 'e',   3,      395,     0 ), /*   702 requestk          */
+  S_ST( 's',   3,      705,   696 ), /*   703 re                */
+  S_ST( 'e',   3,      396,     0 ), /*   704 res               */
+  S_ST( 't',   3,      706,   704 ), /*   705 res               */
+  S_ST( 'r',   3,      707,     0 ), /*   706 rest              */
+  S_ST( 'i',   3,      708,     0 ), /*   707 restr             */
+  S_ST( 'c',   3,      397,     0 ), /*   708 restri            */
+  S_ST( 'v',   3,      710,   703 ), /*   709 re                */
+  S_ST( 'o',   3,      711,     0 ), /*   710 rev               */
+  S_ST( 'k',   3,      398,     0 ), /*   711 revo              */
+  S_ST( 'l',   3,      713,   693 ), /*   712 r                 */
+  S_ST( 'i',   3,      714,     0 ), /*   713 rl                */
+  S_ST( 'm',   3,      715,     0 ), /*   714 rli               */
+  S_ST( 'i',   3,      399,     0 ), /*   715 rlim              */
+  S_ST( 's',   3,      789,   681 ), /*   716                   */
+  S_ST( 'a',   3,      718,     0 ), /*   717 s                 */
+  S_ST( 'v',   3,      719,     0 ), /*   718 sa                */
+  S_ST( 'e',   3,      720,     0 ), /*   719 sav               */
+  S_ST( 'c',   3,      721,     0 ), /*   720 save              */
+  S_ST( 'o',   3,      722,     0 ), /*   721 savec             */
+  S_ST( 'n',   3,      723,     0 ), /*   722 saveco            */
+  S_ST( 'f',   3,      724,     0 ), /*   723 savecon           */
+  S_ST( 'i',   3,      725,     0 ), /*   724 saveconf          */
+  S_ST( 'g',   3,      726,     0 ), /*   725 saveconfi         */
+  S_ST( 'd',   3,      727,     0 ), /*   726 saveconfig        */
+  S_ST( 'i',   3,      400,     0 ), /*   727 saveconfigd       */
+  S_ST( 'e',   3,      738,   717 ), /*   728 s                 */
+  S_ST( 'r',   3,      730,     0 ), /*   729 se                */
+  S_ST( 'v',   3,      731,     0 ), /*   730 ser               */
+  S_ST( 'e',   3,      401,     0 ), /*   731 serv              */
+  S_ST( '_',   3,      733,     0 ), /*   732 server            */
+  S_ST( 'o',   3,      734,     0 ), /*   733 server_           */
+  S_ST( 'f',   3,      735,     0 ), /*   734 server_o          */
+  S_ST( 'f',   3,      736,     0 ), /*   735 server_of         */
+  S_ST( 's',   3,      737,     0 ), /*   736 server_off        */
+  S_ST( 'e',   3,      445,     0 ), /*   737 server_offs       */
+  S_ST( 't',   3,      739,   729 ), /*   738 se                */
+  S_ST( 'v',   3,      740,     0 ), /*   739 set               */
+  S_ST( 'a',   3,      402,     0 ), /*   740 setv              */
+  S_ST( 'i',   3,      742,   728 ), /*   741 s                 */
+  S_ST( 'm',   3,      743,     0 ), /*   742 si                */
+  S_ST( 'u',   3,      744,     0 ), /*   743 sim               */
+  S_ST( 'l',   3,      745,     0 ), /*   744 simu              */
+  S_ST( 'a',   3,      746,     0 ), /*   745 simul             */
+  S_ST( 't',   3,      747,     0 ), /*   746 simula            */
+  S_ST( 'i',   3,      748,   442 ), /*   747 simulat           */
+  S_ST( 'o',   3,      749,     0 ), /*   748 simulati          */
+  S_ST( 'n',   3,      750,     0 ), /*   749 simulatio         */
+  S_ST( '_',   3,      751,     0 ), /*   750 simulation        */
+  S_ST( 'd',   3,      752,     0 ), /*   751 simulation_       */
+  S_ST( 'u',   3,      753,     0 ), /*   752 simulation_d      */
+  S_ST( 'r',   3,      754,     0 ), /*   753 simulation_du     */
+  S_ST( 'a',   3,      755,     0 ), /*   754 simulation_dur    */
+  S_ST( 't',   3,      756,     0 ), /*   755 simulation_dura   */
+  S_ST( 'i',   3,      757,     0 ), /*   756 simulation_durat  */
+  S_ST( 'o',   3,      444,     0 ), /*   757 simulation_durati */
+  S_ST( 'o',   3,      759,   741 ), /*   758 s                 */
+  S_ST( 'u',   3,      760,     0 ), /*   759 so                */
+  S_ST( 'r',   3,      761,     0 ), /*   760 sou               */
+  S_ST( 'c',   3,      403,     0 ), /*   761 sour              */
+  S_ST( 't',   3,      785,   758 ), /*   762 s                 */
+  S_ST( 'a',   3,      769,     0 ), /*   763 st                */
+  S_ST( 'c',   3,      765,     0 ), /*   764 sta               */
+  S_ST( 'k',   3,      766,     0 ), /*   765 stac              */
+  S_ST( 's',   3,      767,     0 ), /*   766 stack             */
+  S_ST( 'i',   3,      768,     0 ), /*   767 stacks            */
+  S_ST( 'z',   3,      404,     0 ), /*   768 stacksi           */
+  S_ST( 't',   3,      406,   764 ), /*   769 sta               */
+  S_ST( 'i',   3,      771,     0 ), /*   770 stat              */
+  S_ST( 's',   3,      772,     0 ), /*   771 stati             */
+  S_ST( 't',   3,      773,     0 ), /*   772 statis            */
+  S_ST( 'i',   3,      774,     0 ), /*   773 statist           */
+  S_ST( 'c',   3,      405,     0 ), /*   774 statisti          */
+  S_ST( 'd',   3,      776,     0 ), /*   775 stats             */
+  S_ST( 'i',   3,      407,     0 ), /*   776 statsd            */
+  S_ST( 'e',   3,      408,   763 ), /*   777 st                */
+  S_ST( 'b',   3,      779,     0 ), /*   778 step              */
+  S_ST( 'a',   3,      780,     0 ), /*   779 stepb             */
+  S_ST( 'c',   3,      409,     0 ), /*   780 stepba            */
+  S_ST( 'f',   3,      782,   778 ), /*   781 step              */
+  S_ST( 'w',   3,      410,     0 ), /*   782 stepf             */
+  S_ST( 'o',   3,      784,   781 ), /*   783 step              */
+  S_ST( 'u',   3,      411,     0 ), /*   784 stepo             */
+  S_ST( 'r',   3,      786,   777 ), /*   785 st                */
+  S_ST( 'a',   3,      787,     0 ), /*   786 str               */
+  S_ST( 't',   3,      788,     0 ), /*   787 stra              */
+  S_ST( 'u',   3,      412,     0 ), /*   788 strat             */
+  S_ST( 'y',   3,      414,   762 ), /*   789 s                 */
+  S_ST( 's',   3,      791,     0 ), /*   790 sys               */
+  S_ST( 't',   3,      792,     0 ), /*   791 syss              */
+  S_ST( 'a',   3,      793,     0 ), /*   792 sysst             */
+  S_ST( 't',   3,      415,     0 ), /*   793 syssta            */
+  S_ST( 't',   3,      820,   716 ), /*   794                   */
+  S_ST( 'i',   3,      806,     0 ), /*   795 t                 */
+  S_ST( 'c',   3,      416,     0 ), /*   796 ti                */
+  S_ST( 'm',   3,      799,   796 ), /*   797 ti                */
+  S_ST( 'e',   3,      419,     0 ), /*   798 tim               */
+  S_ST( 'i',   3,      800,   798 ), /*   799 tim               */
+  S_ST( 'n',   3,      801,     0 ), /*   800 timi              */
+  S_ST( 'g',   3,      802,     0 ), /*   801 timin             */
+  S_ST( 's',   3,      803,     0 ), /*   802 timing            */
+  S_ST( 't',   3,      804,     0 ), /*   803 timings           */
+  S_ST( 'a',   3,      805,     0 ), /*   804 timingst          */
+  S_ST( 't',   3,      420,     0 ), /*   805 timingsta         */
+  S_ST( 'n',   3,      807,   797 ), /*   806 ti                */
+  S_ST( 'k',   3,      808,     0 ), /*   807 tin               */
+  S_ST( 'e',   3,      421,     0 ), /*   808 tink              */
+  S_ST( 'o',   3,      422,   795 ), /*   809 t                 */
+  S_ST( 'r',   3,      812,   809 ), /*   810 t                 */
+  S_ST( 'a',   3,      423,     0 ), /*   811 tr                */
+  S_ST( 'u',   3,      813,   811 ), /*   812 tr                */
+  S_ST( 's',   3,      814,   424 ), /*   813 tru               */
+  S_ST( 't',   3,      815,     0 ), /*   814 trus              */
+  S_ST( 'e',   3,      816,     0 ), /*   815 trust             */
+  S_ST( 'd',   3,      817,     0 ), /*   816 truste            */
+  S_ST( 'k',   3,      818,     0 ), /*   817 trusted           */
+  S_ST( 'e',   3,      425,     0 ), /*   818 trustedk          */
+  S_ST( 't',   3,      426,   810 ), /*   819 t                 */
+  S_ST( 'y',   3,      821,   819 ), /*   820 t                 */
+  S_ST( 'p',   3,      427,     0 ), /*   821 ty                */
+  S_ST( 'u',   3,      823,   794 ), /*   822                   */
+  S_ST( 'n',   3,      829,     0 ), /*   823 u                 */
+  S_ST( 'c',   3,      825,     0 ), /*   824 un                */
+  S_ST( 'o',   3,      826,     0 ), /*   825 unc               */
+  S_ST( 'n',   3,      827,     0 ), /*   826 unco              */
+  S_ST( 'f',   3,      828,     0 ), /*   827 uncon             */
+  S_ST( 'i',   3,      432,     0 ), /*   828 unconf            */
+  S_ST( 'p',   3,      830,   824 ), /*   829 un                */
+  S_ST( 'e',   3,      831,     0 ), /*   830 unp               */
+  S_ST( 'e',   3,      433,     0 ), /*   831 unpe              */
+  S_ST( '_',   3,      852,     0 ), /*   832 unpeer            */
+  S_ST( 'c',   3,      834,     0 ), /*   833 unpeer_           */
+  S_ST( 'r',   3,      835,     0 ), /*   834 unpeer_c          */
+  S_ST( 'y',   3,      836,     0 ), /*   835 unpeer_cr         */
+  S_ST( 'p',   3,      837,     0 ), /*   836 unpeer_cry        */
+  S_ST( 't',   3,      838,     0 ), /*   837 unpeer_cryp       */
+  S_ST( 'o',   3,      839,     0 ), /*   838 unpeer_crypt      */
+  S_ST( '_',   3,      844,     0 ), /*   839 unpeer_crypto     */
+  S_ST( 'e',   3,      841,     0 ), /*   840 unpeer_crypto_    */
+  S_ST( 'a',   3,      842,     0 ), /*   841 unpeer_crypto_e   */
+  S_ST( 'r',   3,      843,     0 ), /*   842 unpeer_crypto_ea  */
+  S_ST( 'l',   3,      429,     0 ), /*   843 unpeer_crypto_ear */
+  S_ST( 'n',   3,      845,   840 ), /*   844 unpeer_crypto_    */
+  S_ST( 'a',   3,      846,     0 ), /*   845 unpeer_crypto_n   */
+  S_ST( 'k',   3,      847,     0 ), /*   846 unpeer_crypto_na  */
+  S_ST( '_',   3,      848,     0 ), /*   847 unpeer_crypto_nak */
+  S_ST( 'e',   3,      849,     0 ), /*   848 unpeer_crypto_nak_ */
+  S_ST( 'a',   3,      850,     0 ), /*   849 unpeer_crypto_nak_e */
+  S_ST( 'r',   3,      851,     0 ), /*   850 unpeer_crypto_nak_ea */
+  S_ST( 'l',   3,      430,     0 ), /*   851 unpeer_crypto_nak_ear */
+  S_ST( 'd',   3,      853,   833 ), /*   852 unpeer_           */
+  S_ST( 'i',   3,      854,     0 ), /*   853 unpeer_d          */
+  S_ST( 'g',   3,      855,     0 ), /*   854 unpeer_di         */
+  S_ST( 'e',   3,      856,     0 ), /*   855 unpeer_dig        */
+  S_ST( 's',   3,      857,     0 ), /*   856 unpeer_dige       */
+  S_ST( 't',   3,      858,     0 ), /*   857 unpeer_diges      */
+  S_ST( '_',   3,      859,     0 ), /*   858 unpeer_digest     */
+  S_ST( 'e',   3,      860,     0 ), /*   859 unpeer_digest_    */
+  S_ST( 'a',   3,      861,     0 ), /*   860 unpeer_digest_e   */
+  S_ST( 'r',   3,      862,     0 ), /*   861 unpeer_digest_ea  */
+  S_ST( 'l',   3,      431,     0 ), /*   862 unpeer_digest_ear */
+  S_ST( 'v',   3,      864,   822 ), /*   863                   */
+  S_ST( 'e',   3,      865,     0 ), /*   864 v                 */
+  S_ST( 'r',   3,      866,     0 ), /*   865 ve                */
+  S_ST( 's',   3,      867,     0 ), /*   866 ver               */
+  S_ST( 'i',   3,      868,     0 ), /*   867 vers              */
+  S_ST( 'o',   3,      434,     0 ), /*   868 versi             */
+  S_ST( 'w',   3,      876,   863 ), /*   869                   */
+  S_ST( 'a',   3,      871,     0 ), /*   870 w                 */
+  S_ST( 'n',   3,      872,     0 ), /*   871 wa                */
+  S_ST( 'd',   3,      873,     0 ), /*   872 wan               */
+  S_ST( 'e',   3,      448,     0 ), /*   873 wand              */
+  S_ST( 'e',   3,      875,   870 ), /*   874 w                 */
+  S_ST( 'e',   3,      436,     0 ), /*   875 we                */
+  S_ST( 'i',   3,      877,   874 ), /*   876 w                 */
+  S_ST( 'l',   3,      878,     0 ), /*   877 wi                */
+  S_ST( 'd',   3,      879,     0 ), /*   878 wil               */
+  S_ST( 'c',   3,      880,     0 ), /*   879 wild              */
+  S_ST( 'a',   3,      881,     0 ), /*   880 wildc             */
+  S_ST( 'r',   3,      437,     0 ), /*   881 wildca            */
+  S_ST( 'x',   3,      883,   869 ), /*   882                   */
+  S_ST( 'l',   3,      884,     0 ), /*   883 x                 */
+  S_ST( 'e',   3,      885,     0 ), /*   884 xl                */
+  S_ST( 'a',   3,      886,     0 ), /*   885 xle               */
+  S_ST( 'v',   3,      438,     0 ), /*   886 xlea              */
+  S_ST( 'y',   3,      888,   882 ), /*   887 [initial state]   */
+  S_ST( 'e',   3,      889,     0 ), /*   888 y                 */
+  S_ST( 'a',   3,      439,     0 )  /*   889 ye                */
 };
 
index cc179502c1e1faba1d418f261832ee488f955c9e..31596692e9bb580f12670d3c13e477d1241dd978 100644 (file)
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
 
 /* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
+   
+      Copyright (C) 1984, 1989-1990, 2000-2013 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
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    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/>.  */
 
@@ -26,7 +26,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.2"
+#define YYBISON_VERSION "2.7.12-4996"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -62,7 +62,8 @@
 
 
 /* Copy the first part of user declarations.  */
-#line 11 "../../ntpd/ntp_parser.y" /* yacc.c:339  */
+/* Line 371 of yacc.c  */
+#line 11 "../../ntpd/ntp_parser.y"
 
   #ifdef HAVE_CONFIG_H
   # include <config.h>
   #  define ONLY_SIM(a)        NULL
   #endif
 
-#line 100 "../../ntpd/ntp_parser.c" /* yacc.c:339  */
+/* Line 371 of yacc.c  */
+#line 102 "ntp_parser.c"
 
-# ifndef YY_NULLPTR
+# ifndef YY_NULL
 #  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
+#   define YY_NULL nullptr
 #  else
-#   define YY_NULLPTR 0
+#   define YY_NULL 0
 #  endif
 # 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
-/* Debug traces.  */
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
+# define YY_YY_NTP_PARSER_H_INCLUDED
+/* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
 #endif
 extern int yydebug;
 #endif
 
-/* Token type.  */
+/* Tokens.  */
 #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_Bclient = 267,
-    T_Beacon = 268,
-    T_Broadcast = 269,
-    T_Broadcastclient = 270,
-    T_Broadcastdelay = 271,
-    T_Burst = 272,
-    T_Calibrate = 273,
-    T_Ceiling = 274,
-    T_Clockstats = 275,
-    T_Cohort = 276,
-    T_ControlKey = 277,
-    T_Crypto = 278,
-    T_Cryptostats = 279,
-    T_Ctl = 280,
-    T_Day = 281,
-    T_Default = 282,
-    T_Digest = 283,
-    T_Disable = 284,
-    T_Discard = 285,
-    T_Dispersion = 286,
-    T_Double = 287,
-    T_Driftfile = 288,
-    T_Drop = 289,
-    T_Dscp = 290,
-    T_Ellipsis = 291,
-    T_Enable = 292,
-    T_End = 293,
-    T_False = 294,
-    T_File = 295,
-    T_Filegen = 296,
-    T_Filenum = 297,
-    T_Flag1 = 298,
-    T_Flag2 = 299,
-    T_Flag3 = 300,
-    T_Flag4 = 301,
-    T_Flake = 302,
-    T_Floor = 303,
-    T_Freq = 304,
-    T_Fudge = 305,
-    T_Host = 306,
-    T_Huffpuff = 307,
-    T_Iburst = 308,
-    T_Ident = 309,
-    T_Ignore = 310,
-    T_Incalloc = 311,
-    T_Incmem = 312,
-    T_Initalloc = 313,
-    T_Initmem = 314,
-    T_Includefile = 315,
-    T_Integer = 316,
-    T_Interface = 317,
-    T_Intrange = 318,
-    T_Io = 319,
-    T_Ipv4 = 320,
-    T_Ipv4_flag = 321,
-    T_Ipv6 = 322,
-    T_Ipv6_flag = 323,
-    T_Kernel = 324,
-    T_Key = 325,
-    T_Keys = 326,
-    T_Keysdir = 327,
-    T_Kod = 328,
-    T_Mssntp = 329,
-    T_Leapfile = 330,
-    T_Leapsmearinterval = 331,
-    T_Limited = 332,
-    T_Link = 333,
-    T_Listen = 334,
-    T_Logconfig = 335,
-    T_Logfile = 336,
-    T_Loopstats = 337,
-    T_Lowpriotrap = 338,
-    T_Manycastclient = 339,
-    T_Manycastserver = 340,
-    T_Mask = 341,
-    T_Maxage = 342,
-    T_Maxclock = 343,
-    T_Maxdepth = 344,
-    T_Maxdist = 345,
-    T_Maxmem = 346,
-    T_Maxpoll = 347,
-    T_Mdnstries = 348,
-    T_Mem = 349,
-    T_Memlock = 350,
-    T_Minclock = 351,
-    T_Mindepth = 352,
-    T_Mindist = 353,
-    T_Minimum = 354,
-    T_Minpoll = 355,
-    T_Minsane = 356,
-    T_Mode = 357,
-    T_Mode7 = 358,
-    T_Monitor = 359,
-    T_Month = 360,
-    T_Mru = 361,
-    T_Multicastclient = 362,
-    T_Nic = 363,
-    T_Nolink = 364,
-    T_Nomodify = 365,
-    T_Nomrulist = 366,
-    T_None = 367,
-    T_Nonvolatile = 368,
-    T_Nopeer = 369,
-    T_Noquery = 370,
-    T_Noselect = 371,
-    T_Noserve = 372,
-    T_Notrap = 373,
-    T_Notrust = 374,
-    T_Ntp = 375,
-    T_Ntpport = 376,
-    T_NtpSignDsocket = 377,
-    T_Orphan = 378,
-    T_Orphanwait = 379,
-    T_Panic = 380,
-    T_Peer = 381,
-    T_Peerstats = 382,
-    T_Phone = 383,
-    T_Pid = 384,
-    T_Pidfile = 385,
-    T_Pool = 386,
-    T_Port = 387,
-    T_Preempt = 388,
-    T_Prefer = 389,
-    T_Protostats = 390,
-    T_Pw = 391,
-    T_Randfile = 392,
-    T_Rawstats = 393,
-    T_Refid = 394,
-    T_Requestkey = 395,
-    T_Reset = 396,
-    T_Restrict = 397,
-    T_Revoke = 398,
-    T_Rlimit = 399,
-    T_Saveconfigdir = 400,
-    T_Server = 401,
-    T_Setvar = 402,
-    T_Source = 403,
-    T_Stacksize = 404,
-    T_Statistics = 405,
-    T_Stats = 406,
-    T_Statsdir = 407,
-    T_Step = 408,
-    T_Stepback = 409,
-    T_Stepfwd = 410,
-    T_Stepout = 411,
-    T_Stratum = 412,
-    T_String = 413,
-    T_Sys = 414,
-    T_Sysstats = 415,
-    T_Tick = 416,
-    T_Time1 = 417,
-    T_Time2 = 418,
-    T_Timer = 419,
-    T_Timingstats = 420,
-    T_Tinker = 421,
-    T_Tos = 422,
-    T_Trap = 423,
-    T_True = 424,
-    T_Trustedkey = 425,
-    T_Ttl = 426,
-    T_Type = 427,
-    T_U_int = 428,
-    T_Unconfig = 429,
-    T_Unpeer = 430,
-    T_Version = 431,
-    T_WanderThreshold = 432,
-    T_Week = 433,
-    T_Wildcard = 434,
-    T_Xleave = 435,
-    T_Year = 436,
-    T_Flag = 437,
-    T_EOC = 438,
-    T_Simulate = 439,
-    T_Beep_Delay = 440,
-    T_Sim_Duration = 441,
-    T_Server_Offset = 442,
-    T_Duration = 443,
-    T_Freq_Offset = 444,
-    T_Wander = 445,
-    T_Jitter = 446,
-    T_Prop_Delay = 447,
-    T_Proc_Delay = 448
-  };
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   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_Bclient = 267,
+     T_Beacon = 268,
+     T_Broadcast = 269,
+     T_Broadcastclient = 270,
+     T_Broadcastdelay = 271,
+     T_Burst = 272,
+     T_Calibrate = 273,
+     T_Ceiling = 274,
+     T_Clockstats = 275,
+     T_Cohort = 276,
+     T_ControlKey = 277,
+     T_Crypto = 278,
+     T_Cryptostats = 279,
+     T_Ctl = 280,
+     T_Day = 281,
+     T_Default = 282,
+     T_Digest = 283,
+     T_Disable = 284,
+     T_Discard = 285,
+     T_Dispersion = 286,
+     T_Double = 287,
+     T_Driftfile = 288,
+     T_Drop = 289,
+     T_Dscp = 290,
+     T_Ellipsis = 291,
+     T_Enable = 292,
+     T_End = 293,
+     T_False = 294,
+     T_File = 295,
+     T_Filegen = 296,
+     T_Filenum = 297,
+     T_Flag1 = 298,
+     T_Flag2 = 299,
+     T_Flag3 = 300,
+     T_Flag4 = 301,
+     T_Flake = 302,
+     T_Floor = 303,
+     T_Freq = 304,
+     T_Fudge = 305,
+     T_Host = 306,
+     T_Huffpuff = 307,
+     T_Iburst = 308,
+     T_Ident = 309,
+     T_Ignore = 310,
+     T_Incalloc = 311,
+     T_Incmem = 312,
+     T_Initalloc = 313,
+     T_Initmem = 314,
+     T_Includefile = 315,
+     T_Integer = 316,
+     T_Interface = 317,
+     T_Intrange = 318,
+     T_Io = 319,
+     T_Ipv4 = 320,
+     T_Ipv4_flag = 321,
+     T_Ipv6 = 322,
+     T_Ipv6_flag = 323,
+     T_Kernel = 324,
+     T_Key = 325,
+     T_Keys = 326,
+     T_Keysdir = 327,
+     T_Kod = 328,
+     T_Mssntp = 329,
+     T_Leapfile = 330,
+     T_Leapsmearinterval = 331,
+     T_Limited = 332,
+     T_Link = 333,
+     T_Listen = 334,
+     T_Logconfig = 335,
+     T_Logfile = 336,
+     T_Loopstats = 337,
+     T_Lowpriotrap = 338,
+     T_Manycastclient = 339,
+     T_Manycastserver = 340,
+     T_Mask = 341,
+     T_Maxage = 342,
+     T_Maxclock = 343,
+     T_Maxdepth = 344,
+     T_Maxdist = 345,
+     T_Maxmem = 346,
+     T_Maxpoll = 347,
+     T_Mdnstries = 348,
+     T_Mem = 349,
+     T_Memlock = 350,
+     T_Minclock = 351,
+     T_Mindepth = 352,
+     T_Mindist = 353,
+     T_Minimum = 354,
+     T_Minpoll = 355,
+     T_Minsane = 356,
+     T_Mode = 357,
+     T_Mode7 = 358,
+     T_Monitor = 359,
+     T_Month = 360,
+     T_Mru = 361,
+     T_Multicastclient = 362,
+     T_Nic = 363,
+     T_Nolink = 364,
+     T_Nomodify = 365,
+     T_Nomrulist = 366,
+     T_None = 367,
+     T_Nonvolatile = 368,
+     T_Nopeer = 369,
+     T_Noquery = 370,
+     T_Noselect = 371,
+     T_Noserve = 372,
+     T_Notrap = 373,
+     T_Notrust = 374,
+     T_Ntp = 375,
+     T_Ntpport = 376,
+     T_NtpSignDsocket = 377,
+     T_Orphan = 378,
+     T_Orphanwait = 379,
+     T_Panic = 380,
+     T_Peer = 381,
+     T_Peerstats = 382,
+     T_Phone = 383,
+     T_Pid = 384,
+     T_Pidfile = 385,
+     T_Pool = 386,
+     T_Port = 387,
+     T_Preempt = 388,
+     T_Prefer = 389,
+     T_Protostats = 390,
+     T_Pw = 391,
+     T_Randfile = 392,
+     T_Rawstats = 393,
+     T_Refid = 394,
+     T_Requestkey = 395,
+     T_Reset = 396,
+     T_Restrict = 397,
+     T_Revoke = 398,
+     T_Rlimit = 399,
+     T_Saveconfigdir = 400,
+     T_Server = 401,
+     T_Setvar = 402,
+     T_Source = 403,
+     T_Stacksize = 404,
+     T_Statistics = 405,
+     T_Stats = 406,
+     T_Statsdir = 407,
+     T_Step = 408,
+     T_Stepback = 409,
+     T_Stepfwd = 410,
+     T_Stepout = 411,
+     T_Stratum = 412,
+     T_String = 413,
+     T_Sys = 414,
+     T_Sysstats = 415,
+     T_Tick = 416,
+     T_Time1 = 417,
+     T_Time2 = 418,
+     T_Timer = 419,
+     T_Timingstats = 420,
+     T_Tinker = 421,
+     T_Tos = 422,
+     T_Trap = 423,
+     T_True = 424,
+     T_Trustedkey = 425,
+     T_Ttl = 426,
+     T_Type = 427,
+     T_U_int = 428,
+     T_UEcrypto = 429,
+     T_UEcryptonak = 430,
+     T_UEdigest = 431,
+     T_Unconfig = 432,
+     T_Unpeer = 433,
+     T_Version = 434,
+     T_WanderThreshold = 435,
+     T_Week = 436,
+     T_Wildcard = 437,
+     T_Xleave = 438,
+     T_Year = 439,
+     T_Flag = 440,
+     T_EOC = 441,
+     T_Simulate = 442,
+     T_Beep_Delay = 443,
+     T_Sim_Duration = 444,
+     T_Server_Offset = 445,
+     T_Duration = 446,
+     T_Freq_Offset = 447,
+     T_Wander = 448,
+     T_Jitter = 449,
+     T_Prop_Delay = 450,
+     T_Proc_Delay = 451
+   };
 #endif
 /* Tokens.  */
 #define T_Abbrev 258
@@ -496,33 +502,37 @@ extern int yydebug;
 #define T_Ttl 426
 #define T_Type 427
 #define T_U_int 428
-#define T_Unconfig 429
-#define T_Unpeer 430
-#define T_Version 431
-#define T_WanderThreshold 432
-#define T_Week 433
-#define T_Wildcard 434
-#define T_Xleave 435
-#define T_Year 436
-#define T_Flag 437
-#define T_EOC 438
-#define T_Simulate 439
-#define T_Beep_Delay 440
-#define T_Sim_Duration 441
-#define T_Server_Offset 442
-#define T_Duration 443
-#define T_Freq_Offset 444
-#define T_Wander 445
-#define T_Jitter 446
-#define T_Prop_Delay 447
-#define T_Proc_Delay 448
-
-/* Value type.  */
+#define T_UEcrypto 429
+#define T_UEcryptonak 430
+#define T_UEdigest 431
+#define T_Unconfig 432
+#define T_Unpeer 433
+#define T_Version 434
+#define T_WanderThreshold 435
+#define T_Week 436
+#define T_Wildcard 437
+#define T_Xleave 438
+#define T_Year 439
+#define T_Flag 440
+#define T_EOC 441
+#define T_Simulate 442
+#define T_Beep_Delay 443
+#define T_Sim_Duration 444
+#define T_Server_Offset 445
+#define T_Duration 446
+#define T_Freq_Offset 447
+#define T_Wander 448
+#define T_Jitter 449
+#define T_Prop_Delay 450
+#define T_Proc_Delay 451
+
+
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
+typedef union YYSTYPE
 {
-#line 51 "../../ntpd/ntp_parser.y" /* yacc.c:355  */
+/* Line 387 of yacc.c  */
+#line 51 "../../ntpd/ntp_parser.y"
 
        char *                  String;
        double                  Double;
@@ -541,22 +551,37 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 545 "../../ntpd/ntp_parser.c" /* yacc.c:355  */
-};
+
+/* Line 387 of yacc.c  */
+#line 557 "ntp_parser.c"
+} YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
-
 extern YYSTYPE yylval;
 
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
-#endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED  */
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
 
-#line 560 "../../ntpd/ntp_parser.c" /* yacc.c:358  */
+/* Line 390 of yacc.c  */
+#line 585 "ntp_parser.c"
 
 #ifdef short
 # undef short
@@ -570,8 +595,11 @@ typedef unsigned char yytype_uint8;
 
 #ifdef YYTYPE_INT8
 typedef YYTYPE_INT8 yytype_int8;
-#else
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
 #endif
 
 #ifdef YYTYPE_UINT16
@@ -591,7 +619,8 @@ 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 YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
@@ -613,30 +642,11 @@ 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__))
-#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)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if (! defined __GNUC__ || __GNUC__ < 2 \
+      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
+#  define __attribute__(Spec) /* empty */
 # endif
 #endif
 
@@ -647,26 +657,25 @@ typedef short int yytype_int16;
 # define YYUSE(E) /* empty */
 #endif
 
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(N) (N)
 #else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+    int yyi;
 #endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
+{
+  return yyi;
+}
 #endif
 
-
 #if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
@@ -684,7 +693,8 @@ typedef short int yytype_int16;
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
@@ -696,8 +706,8 @@ typedef short int yytype_int16;
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
@@ -713,7 +723,7 @@ typedef short int yytype_int16;
 #  endif
 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
+            && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #   ifndef EXIT_SUCCESS
 #    define EXIT_SUCCESS 0
@@ -721,13 +731,15 @@ typedef short int yytype_int16;
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
@@ -737,7 +749,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
@@ -762,16 +774,16 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                 \
-    while (0)
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+       Stack = &yyptr->Stack_alloc;                                    \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (YYID (0))
 
 #endif
 
@@ -790,50 +802,48 @@ union yyalloc
           for (yyi = 0; yyi < (Count); yyi++)   \
             (Dst)[yyi] = (Src)[yyi];            \
         }                                       \
-      while (0)
+      while (YYID (0))
 #  endif
 # endif
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  210
+#define YYFINAL  213
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   647
+#define YYLAST   624
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  199
+#define YYNTOKENS  202
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  105
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  313
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  419
+#define YYNRULES  316
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  422
 
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   448
+#define YYMAXUTOK   451
 
-#define YYTRANSLATE(YYX)                                                \
+#define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to 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,
-     195,   196,     2,     2,     2,     2,     2,     2,     2,     2,
+     198,   199,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   194,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   197,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   197,     2,   198,     2,     2,     2,     2,
+       2,     2,     2,   200,     2,   201,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -865,45 +875,166 @@ static const yytype_uint8 yytranslate[] =
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint16 yyprhs[] =
+{
+       0,     0,     3,     5,     9,    12,    15,    16,    18,    20,
+      22,    24,    26,    28,    30,    32,    34,    36,    38,    40,
+      42,    46,    48,    50,    52,    54,    56,    58,    61,    63,
+      65,    67,    68,    71,    73,    75,    77,    79,    81,    83,
+      85,    87,    89,    91,    93,    95,    98,   101,   103,   105,
+     107,   109,   111,   113,   116,   118,   121,   123,   125,   127,
+     130,   133,   136,   139,   142,   145,   148,   151,   154,   157,
+     160,   163,   164,   167,   170,   173,   175,   177,   179,   181,
+     183,   186,   189,   191,   194,   197,   200,   202,   204,   206,
+     208,   210,   212,   214,   216,   218,   220,   223,   226,   230,
+     233,   235,   237,   239,   241,   243,   245,   247,   249,   251,
+     252,   255,   258,   261,   263,   265,   267,   269,   271,   273,
+     275,   277,   279,   281,   283,   285,   287,   290,   293,   297,
+     303,   307,   312,   317,   321,   322,   325,   327,   329,   331,
+     333,   335,   337,   339,   341,   343,   345,   347,   349,   351,
+     353,   355,   358,   360,   363,   365,   367,   369,   372,   374,
+     377,   379,   381,   383,   385,   387,   389,   391,   393,   397,
+     400,   402,   405,   408,   411,   414,   417,   419,   421,   423,
+     425,   427,   429,   432,   435,   437,   440,   442,   444,   446,
+     449,   452,   455,   457,   459,   461,   463,   465,   467,   469,
+     471,   473,   475,   477,   479,   481,   483,   486,   489,   491,
+     494,   496,   498,   500,   502,   504,   506,   508,   510,   512,
+     514,   516,   518,   521,   524,   527,   530,   534,   536,   539,
+     542,   545,   548,   552,   555,   557,   559,   561,   563,   565,
+     567,   569,   571,   573,   575,   577,   580,   581,   586,   588,
+     589,   590,   593,   596,   599,   602,   604,   606,   610,   614,
+     616,   618,   620,   622,   624,   626,   628,   630,   632,   635,
+     638,   640,   642,   644,   646,   648,   650,   652,   654,   657,
+     659,   662,   664,   666,   668,   674,   677,   679,   682,   684,
+     686,   688,   690,   692,   694,   700,   702,   706,   709,   713,
+     715,   717,   720,   722,   728,   733,   737,   740,   742,   749,
+     753,   756,   760,   762,   764,   766,   768
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int16 yyrhs[] =
+{
+     203,     0,    -1,   204,    -1,   204,   205,   186,    -1,   205,
+     186,    -1,     1,   186,    -1,    -1,   206,    -1,   219,    -1,
+     221,    -1,   222,    -1,   231,    -1,   239,    -1,   226,    -1,
+     248,    -1,   253,    -1,   257,    -1,   262,    -1,   266,    -1,
+     293,    -1,   207,   208,   211,    -1,   146,    -1,   131,    -1,
+     126,    -1,    14,    -1,    84,    -1,   209,    -1,   210,   158,
+      -1,   158,    -1,    66,    -1,    68,    -1,    -1,   211,   212,
+      -1,   213,    -1,   215,    -1,   217,    -1,   214,    -1,     9,
+      -1,    17,    -1,    53,    -1,   116,    -1,   133,    -1,   134,
+      -1,   169,    -1,   183,    -1,   216,    61,    -1,   216,   173,
+      -1,    70,    -1,   100,    -1,    92,    -1,   171,    -1,   102,
+      -1,   179,    -1,   218,   158,    -1,    54,    -1,   220,   208,
+      -1,   177,    -1,   178,    -1,    15,    -1,    85,   290,    -1,
+     107,   290,    -1,    93,    61,    -1,    10,    61,    -1,    22,
+      61,    -1,    23,   223,    -1,    71,   158,    -1,    72,   158,
+      -1,   140,    61,    -1,   143,    61,    -1,   170,   286,    -1,
+     122,   158,    -1,    -1,   223,   224,    -1,   225,   158,    -1,
+     143,    61,    -1,    51,    -1,    54,    -1,   136,    -1,   137,
+      -1,    28,    -1,   167,   227,    -1,   227,   228,    -1,   228,
+      -1,   229,    61,    -1,   230,   292,    -1,    21,   291,    -1,
+      19,    -1,    48,    -1,   123,    -1,   124,    -1,   101,    -1,
+      13,    -1,    98,    -1,    90,    -1,    96,    -1,    88,    -1,
+     150,   232,    -1,   152,   158,    -1,    41,   233,   234,    -1,
+     232,   233,    -1,   233,    -1,    20,    -1,    24,    -1,    82,
+      -1,   127,    -1,   138,    -1,   160,    -1,   165,    -1,   135,
+      -1,    -1,   234,   235,    -1,    40,   158,    -1,   172,   238,
+      -1,   236,    -1,   237,    -1,    78,    -1,   109,    -1,    37,
+      -1,    29,    -1,   112,    -1,   129,    -1,    26,    -1,   181,
+      -1,   105,    -1,   184,    -1,     4,    -1,    30,   242,    -1,
+     106,   245,    -1,   142,   208,   240,    -1,   142,   209,    86,
+     209,   240,    -1,   142,    27,   240,    -1,   142,    66,    27,
+     240,    -1,   142,    68,    27,   240,    -1,   142,   148,   240,
+      -1,    -1,   240,   241,    -1,    47,    -1,    55,    -1,    73,
+      -1,    74,    -1,    77,    -1,    83,    -1,   110,    -1,   111,
+      -1,   114,    -1,   115,    -1,   117,    -1,   118,    -1,   119,
+      -1,   121,    -1,   179,    -1,   242,   243,    -1,   243,    -1,
+     244,    61,    -1,    11,    -1,    99,    -1,   104,    -1,   245,
+     246,    -1,   246,    -1,   247,    61,    -1,    56,    -1,    57,
+      -1,    58,    -1,    59,    -1,    87,    -1,    89,    -1,    91,
+      -1,    97,    -1,    50,   208,   249,    -1,   249,   250,    -1,
+     250,    -1,   251,   292,    -1,   252,   291,    -1,   157,    61,
+      -1,     3,   158,    -1,   139,   158,    -1,   162,    -1,   163,
+      -1,    43,    -1,    44,    -1,    45,    -1,    46,    -1,   144,
+     254,    -1,   254,   255,    -1,   255,    -1,   256,    61,    -1,
+      95,    -1,   149,    -1,    42,    -1,    37,   258,    -1,    29,
+     258,    -1,   258,   259,    -1,   259,    -1,   260,    -1,   261,
+      -1,     8,    -1,    12,    -1,    18,    -1,    69,    -1,   104,
+      -1,   120,    -1,   103,    -1,   151,    -1,   174,    -1,   175,
+      -1,   176,    -1,   166,   263,    -1,   263,   264,    -1,   264,
+      -1,   265,   292,    -1,     6,    -1,    31,    -1,    49,    -1,
+      52,    -1,   125,    -1,   153,    -1,   154,    -1,   155,    -1,
+     156,    -1,   161,    -1,   278,    -1,   282,    -1,   267,   292,
+      -1,   268,    61,    -1,   269,   158,    -1,   270,   158,    -1,
+      60,   158,   205,    -1,    38,    -1,    33,   271,    -1,    80,
+     276,    -1,   128,   289,    -1,   147,   272,    -1,   168,   209,
+     274,    -1,   171,   285,    -1,    16,    -1,   113,    -1,   161,
+      -1,    35,    -1,    76,    -1,    54,    -1,    75,    -1,    81,
+      -1,   130,    -1,   145,    -1,   158,    -1,   158,    32,    -1,
+      -1,   158,   197,   158,   273,    -1,    27,    -1,    -1,    -1,
+     274,   275,    -1,   132,    61,    -1,    62,   209,    -1,   276,
+     277,    -1,   277,    -1,   158,    -1,   279,   281,   280,    -1,
+     279,   281,   158,    -1,    62,    -1,   108,    -1,     5,    -1,
+      65,    -1,    67,    -1,   182,    -1,    79,    -1,    55,    -1,
+      34,    -1,   141,   283,    -1,   283,   284,    -1,   284,    -1,
+       7,    -1,     8,    -1,    25,    -1,    64,    -1,    94,    -1,
+     159,    -1,   164,    -1,   285,    61,    -1,    61,    -1,   286,
+     287,    -1,   287,    -1,    61,    -1,   288,    -1,   198,    61,
+      36,    61,   199,    -1,   289,   158,    -1,   158,    -1,   290,
+     208,    -1,   208,    -1,    61,    -1,   169,    -1,    39,    -1,
+      61,    -1,    32,    -1,   294,   200,   295,   298,   201,    -1,
+     187,    -1,   295,   296,   186,    -1,   296,   186,    -1,   297,
+     197,   292,    -1,   188,    -1,   189,    -1,   298,   299,    -1,
+     299,    -1,   301,   200,   300,   302,   201,    -1,   190,   197,
+     292,   186,    -1,   146,   197,   208,    -1,   302,   303,    -1,
+     303,    -1,   191,   197,   292,   200,   304,   201,    -1,   304,
+     305,   186,    -1,   305,   186,    -1,   306,   197,   292,    -1,
+     192,    -1,   193,    -1,   194,    -1,   195,    -1,   196,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   366,   366,   370,   371,   372,   387,   388,   389,   390,
-     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
-     408,   418,   419,   420,   421,   422,   426,   427,   432,   437,
-     439,   445,   446,   454,   455,   456,   460,   465,   466,   467,
-     468,   469,   470,   471,   472,   476,   478,   483,   484,   485,
-     486,   487,   488,   492,   497,   506,   516,   517,   527,   529,
-     531,   533,   544,   551,   553,   558,   560,   562,   564,   566,
-     575,   581,   582,   590,   592,   604,   605,   606,   607,   608,
-     617,   622,   627,   635,   637,   639,   644,   645,   646,   647,
-     648,   649,   653,   654,   655,   656,   665,   667,   676,   686,
-     691,   699,   700,   701,   702,   703,   704,   705,   706,   711,
-     712,   720,   730,   739,   754,   759,   760,   764,   765,   769,
-     770,   771,   772,   773,   774,   775,   784,   788,   792,   800,
-     808,   816,   831,   846,   859,   860,   868,   869,   870,   871,
-     872,   873,   874,   875,   876,   877,   878,   879,   880,   881,
-     882,   886,   891,   899,   904,   905,   906,   910,   915,   923,
-     928,   929,   930,   931,   932,   933,   934,   935,   943,   953,
-     958,   966,   968,   970,   979,   981,   986,   987,   991,   992,
-     993,   994,  1002,  1007,  1012,  1020,  1025,  1026,  1027,  1036,
-    1038,  1043,  1048,  1056,  1058,  1075,  1076,  1077,  1078,  1079,
-    1080,  1084,  1085,  1093,  1098,  1103,  1111,  1116,  1117,  1118,
-    1119,  1120,  1121,  1122,  1123,  1124,  1125,  1134,  1135,  1136,
-    1143,  1150,  1157,  1173,  1192,  1194,  1196,  1198,  1200,  1202,
-    1209,  1214,  1215,  1216,  1220,  1224,  1233,  1234,  1238,  1239,
-    1240,  1244,  1255,  1269,  1281,  1286,  1288,  1293,  1294,  1302,
-    1304,  1312,  1317,  1325,  1350,  1357,  1367,  1368,  1372,  1373,
-    1374,  1375,  1379,  1380,  1381,  1385,  1390,  1395,  1403,  1404,
-    1405,  1406,  1407,  1408,  1409,  1419,  1424,  1432,  1437,  1445,
-    1447,  1451,  1456,  1461,  1469,  1474,  1482,  1491,  1492,  1496,
-    1497,  1506,  1524,  1528,  1533,  1541,  1546,  1547,  1551,  1556,
-    1564,  1569,  1574,  1579,  1584,  1592,  1597,  1602,  1610,  1615,
-    1616,  1617,  1618,  1619
+       0,   369,   369,   373,   374,   375,   390,   391,   392,   393,
+     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
+     411,   421,   422,   423,   424,   425,   429,   430,   435,   440,
+     442,   448,   449,   457,   458,   459,   463,   468,   469,   470,
+     471,   472,   473,   474,   475,   479,   481,   486,   487,   488,
+     489,   490,   491,   495,   500,   509,   519,   520,   530,   532,
+     534,   536,   547,   554,   556,   561,   563,   565,   567,   569,
+     578,   584,   585,   593,   595,   607,   608,   609,   610,   611,
+     620,   625,   630,   638,   640,   642,   647,   648,   649,   650,
+     651,   652,   656,   657,   658,   659,   668,   670,   679,   689,
+     694,   702,   703,   704,   705,   706,   707,   708,   709,   714,
+     715,   723,   733,   742,   757,   762,   763,   767,   768,   772,
+     773,   774,   775,   776,   777,   778,   787,   791,   795,   803,
+     811,   819,   834,   849,   862,   863,   871,   872,   873,   874,
+     875,   876,   877,   878,   879,   880,   881,   882,   883,   884,
+     885,   889,   894,   902,   907,   908,   909,   913,   918,   926,
+     931,   932,   933,   934,   935,   936,   937,   938,   946,   956,
+     961,   969,   971,   973,   982,   984,   989,   990,   994,   995,
+     996,   997,  1005,  1010,  1015,  1023,  1028,  1029,  1030,  1039,
+    1041,  1046,  1051,  1059,  1061,  1078,  1079,  1080,  1081,  1082,
+    1083,  1087,  1088,  1089,  1090,  1091,  1099,  1104,  1109,  1117,
+    1122,  1123,  1124,  1125,  1126,  1127,  1128,  1129,  1130,  1131,
+    1140,  1141,  1142,  1149,  1156,  1163,  1179,  1198,  1200,  1202,
+    1204,  1206,  1208,  1215,  1220,  1221,  1222,  1226,  1230,  1239,
+    1240,  1244,  1245,  1246,  1250,  1261,  1275,  1287,  1292,  1294,
+    1299,  1300,  1308,  1310,  1318,  1323,  1331,  1356,  1363,  1373,
+    1374,  1378,  1379,  1380,  1381,  1385,  1386,  1387,  1391,  1396,
+    1401,  1409,  1410,  1411,  1412,  1413,  1414,  1415,  1425,  1430,
+    1438,  1443,  1451,  1453,  1457,  1462,  1467,  1475,  1480,  1488,
+    1497,  1498,  1502,  1503,  1512,  1530,  1534,  1539,  1547,  1552,
+    1553,  1557,  1562,  1570,  1575,  1580,  1585,  1590,  1598,  1603,
+    1608,  1616,  1621,  1622,  1623,  1624,  1625
 };
 #endif
 
@@ -944,29 +1075,29 @@ static const char *const yytname[] =
   "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_Unconfig", "T_Unpeer",
-  "T_Version", "T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave",
-  "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", "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",
+  "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_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", "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",
   "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",
@@ -981,13 +1112,13 @@ static const char *const yytname[] =
   "sim_init_statement_list", "sim_init_statement", "sim_init_keyword",
   "sim_server_list", "sim_server", "sim_server_offset", "sim_server_name",
   "sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt",
-  "sim_act_keyword", YY_NULLPTR
+  "sim_act_keyword", YY_NULL
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
@@ -1009,292 +1140,363 @@ static const yytype_uint16 yytoknum[] =
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
-     445,   446,   447,   448,    61,    40,    41,   123,   125
+     445,   446,   447,   448,   449,   450,   451,    61,    40,    41,
+     123,   125
 };
 # endif
 
-#define YYPACT_NINF -185
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-185)))
-
-#define YYTABLE_NINF -7
-
-#define yytable_value_is_error(Yytable_value) \
-  0
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint16 yyr1[] =
+{
+       0,   202,   203,   204,   204,   204,   205,   205,   205,   205,
+     205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
+     206,   207,   207,   207,   207,   207,   208,   208,   209,   210,
+     210,   211,   211,   212,   212,   212,   213,   214,   214,   214,
+     214,   214,   214,   214,   214,   215,   215,   216,   216,   216,
+     216,   216,   216,   217,   218,   219,   220,   220,   221,   221,
+     221,   221,   222,   222,   222,   222,   222,   222,   222,   222,
+     222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
+     226,   227,   227,   228,   228,   228,   229,   229,   229,   229,
+     229,   229,   230,   230,   230,   230,   231,   231,   231,   232,
+     232,   233,   233,   233,   233,   233,   233,   233,   233,   234,
+     234,   235,   235,   235,   235,   236,   236,   237,   237,   238,
+     238,   238,   238,   238,   238,   238,   239,   239,   239,   239,
+     239,   239,   239,   239,   240,   240,   241,   241,   241,   241,
+     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
+     241,   242,   242,   243,   244,   244,   244,   245,   245,   246,
+     247,   247,   247,   247,   247,   247,   247,   247,   248,   249,
+     249,   250,   250,   250,   250,   250,   251,   251,   252,   252,
+     252,   252,   253,   254,   254,   255,   256,   256,   256,   257,
+     257,   258,   258,   259,   259,   260,   260,   260,   260,   260,
+     260,   261,   261,   261,   261,   261,   262,   263,   263,   264,
+     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
+     266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
+     266,   266,   266,   266,   267,   267,   267,   268,   268,   269,
+     269,   270,   270,   270,   271,   271,   271,   272,   273,   273,
+     274,   274,   275,   275,   276,   276,   277,   278,   278,   279,
+     279,   280,   280,   280,   280,   281,   281,   281,   282,   283,
+     283,   284,   284,   284,   284,   284,   284,   284,   285,   285,
+     286,   286,   287,   287,   288,   289,   289,   290,   290,   291,
+     291,   291,   292,   292,   293,   294,   295,   295,   296,   297,
+     297,   298,   298,   299,   300,   301,   302,   302,   303,   304,
+     304,   305,   306,   306,   306,   306,   306
+};
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int16 yypact[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
 {
-      78,  -169,   -34,  -185,  -185,  -185,   -29,  -185,    17,    43,
-    -124,  -185,    17,  -185,    -5,   -27,  -185,  -121,  -185,  -112,
-    -110,  -185,  -185,  -100,  -185,  -185,   -27,     0,   116,   -27,
-    -185,  -185,   -91,  -185,   -89,  -185,  -185,    11,    35,    30,
-      13,    31,  -185,  -185,   -83,    -5,   -78,  -185,   186,   523,
-     -76,   -56,    15,  -185,  -185,  -185,    83,   244,   -99,  -185,
-     -27,  -185,   -27,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,   -12,    24,   -71,   -69,  -185,   -11,  -185,
-    -185,  -107,  -185,  -185,  -185,     8,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,    17,  -185,  -185,  -185,  -185,  -185,
-    -185,    43,  -185,    34,    59,  -185,    17,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,     7,
-    -185,   -61,   407,  -185,  -185,  -185,  -100,  -185,  -185,   -27,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   116,
-    -185,    44,   -27,  -185,  -185,   -52,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,    35,  -185,  -185,    85,    96,  -185,
-    -185,    39,  -185,  -185,  -185,  -185,    31,  -185,    75,   -46,
-    -185,    -5,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,   186,  -185,   -12,  -185,  -185,   -35,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   523,  -185,
-      82,   -12,  -185,  -185,    91,   -56,  -185,  -185,  -185,   100,
-    -185,   -26,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,    -2,  -130,  -185,  -185,  -185,  -185,
-    -185,   105,  -185,     9,  -185,  -185,  -185,  -185,    -7,    18,
-    -185,  -185,  -185,  -185,    25,   121,  -185,  -185,     7,  -185,
-     -12,   -35,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-     391,  -185,  -185,   391,   391,   -76,  -185,  -185,    29,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   -51,
-     153,  -185,  -185,  -185,   464,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,   -82,    14,     1,  -185,  -185,  -185,  -185,
-      38,  -185,  -185,    12,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   391,
-     391,  -185,   171,   -76,   140,  -185,   141,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,   -55,  -185,    53,    20,
-      33,  -128,  -185,    32,  -185,   -12,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,   391,  -185,  -185,  -185,  -185,
-      16,  -185,  -185,  -185,   -27,  -185,  -185,  -185,    46,  -185,
-    -185,  -185,    37,    48,   -12,    40,  -167,  -185,    54,   -12,
-    -185,  -185,  -185,    45,    79,  -185,  -185,  -185,  -185,  -185,
-      98,    57,    47,  -185,    60,  -185,   -12,  -185,  -185
+       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,     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,     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,     3,     5,
+       3,     4,     4,     3,     0,     2,     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,     2,     2,     1,     2,     1,     1,     1,     2,
+       2,     2,     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,     1,     2,     2,
+       2,     2,     3,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     0,     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,     5,     1,     3,     2,     3,     1,
+       1,     2,     1,     5,     4,     3,     2,     1,     6,     3,
+       2,     3,     1,     1,     1,     1,     1
 };
 
-  /* 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.  */
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     0,     0,    24,    58,   231,     0,    71,     0,     0,
-     243,   234,     0,   224,     0,     0,   236,     0,   256,     0,
-       0,   237,   235,     0,   238,    25,     0,     0,     0,     0,
-     257,   232,     0,    23,     0,   239,    22,     0,     0,     0,
-       0,     0,   240,    21,     0,     0,     0,   233,     0,     0,
-       0,     0,     0,    56,    57,   292,     0,     2,     0,     7,
+       0,     0,     0,    24,    58,   234,     0,    71,     0,     0,
+     246,   237,     0,   227,     0,     0,   239,     0,   259,     0,
+       0,   240,   238,     0,   241,    25,     0,     0,     0,     0,
+     260,   235,     0,    23,     0,   242,    22,     0,     0,     0,
+       0,     0,   243,    21,     0,     0,     0,   236,     0,     0,
+       0,     0,     0,    56,    57,   295,     0,     2,     0,     7,
        0,     8,     0,     9,    10,    13,    11,    12,    14,    15,
-      16,    17,    18,     0,     0,     0,     0,   217,     0,   218,
+      16,    17,    18,     0,     0,     0,     0,   220,     0,   221,
       19,     0,     5,    62,    63,    64,   195,   196,   197,   198,
-     201,   199,   200,   202,   190,   192,   193,   194,   154,   155,
-     156,   126,   152,     0,   241,   225,   189,   101,   102,   103,
-     104,   108,   105,   106,   107,   109,    29,    30,    28,     0,
-      26,     0,     6,    65,    66,   253,   226,   252,   285,    59,
-      61,   160,   161,   162,   163,   164,   165,   166,   167,   127,
-     158,     0,    60,    70,   283,   227,    67,   268,   269,   270,
-     271,   272,   273,   274,   265,   267,   134,    29,    30,   134,
-     134,    26,    68,   188,   186,   187,   182,   184,     0,     0,
-     228,    96,   100,    97,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   203,   205,     0,    91,    86,     0,
-      87,    95,    93,    94,    92,    90,    88,    89,    80,    82,
-       0,     0,   247,   279,     0,    69,   278,   280,   276,   230,
-       1,     0,     4,    31,    55,   290,   289,   219,   220,   221,
-     222,   264,   263,   262,     0,     0,    79,    75,    76,    77,
-      78,     0,    72,     0,   191,   151,   153,   242,    98,     0,
-     178,   179,   180,   181,     0,     0,   176,   177,   168,   170,
-       0,     0,    27,   223,   251,   284,   157,   159,   282,   266,
-     130,   134,   134,   133,   128,     0,   183,   185,     0,    99,
-     204,   206,   288,   286,   287,    85,    81,    83,    84,   229,
-       0,   277,   275,     3,    20,   258,   259,   260,   255,   261,
-     254,   296,   297,     0,     0,     0,    74,    73,   118,   117,
-       0,   115,   116,     0,   110,   113,   114,   174,   175,   173,
-     169,   171,   172,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   135,   131,
-     132,   134,   246,     0,     0,   248,     0,    37,    38,    39,
-      54,    47,    49,    48,    51,    40,    41,    42,    43,    50,
-      52,    44,    32,    33,    36,    34,     0,    35,     0,     0,
-       0,     0,   299,     0,   294,     0,   111,   125,   121,   123,
-     119,   120,   122,   124,   112,   129,   245,   244,   250,   249,
-       0,    45,    46,    53,     0,   293,   291,   298,     0,   295,
-     281,   302,     0,     0,     0,     0,     0,   304,     0,     0,
-     300,   303,   301,     0,     0,   309,   310,   311,   312,   313,
-       0,     0,     0,   305,     0,   307,     0,   306,   308
+     201,   199,   200,   202,   203,   204,   205,   190,   192,   193,
+     194,   154,   155,   156,   126,   152,     0,   244,   228,   189,
+     101,   102,   103,   104,   108,   105,   106,   107,   109,    29,
+      30,    28,     0,    26,     0,     6,    65,    66,   256,   229,
+     255,   288,    59,    61,   160,   161,   162,   163,   164,   165,
+     166,   167,   127,   158,     0,    60,    70,   286,   230,    67,
+     271,   272,   273,   274,   275,   276,   277,   268,   270,   134,
+      29,    30,   134,   134,    26,    68,   188,   186,   187,   182,
+     184,     0,     0,   231,    96,   100,    97,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   206,   208,     0,
+      91,    86,     0,    87,    95,    93,    94,    92,    90,    88,
+      89,    80,    82,     0,     0,   250,   282,     0,    69,   281,
+     283,   279,   233,     1,     0,     4,    31,    55,   293,   292,
+     222,   223,   224,   225,   267,   266,   265,     0,     0,    79,
+      75,    76,    77,    78,     0,    72,     0,   191,   151,   153,
+     245,    98,     0,   178,   179,   180,   181,     0,     0,   176,
+     177,   168,   170,     0,     0,    27,   226,   254,   287,   157,
+     159,   285,   269,   130,   134,   134,   133,   128,     0,   183,
+     185,     0,    99,   207,   209,   291,   289,   290,    85,    81,
+      83,    84,   232,     0,   280,   278,     3,    20,   261,   262,
+     263,   258,   264,   257,   299,   300,     0,     0,     0,    74,
+      73,   118,   117,     0,   115,   116,     0,   110,   113,   114,
+     174,   175,   173,   169,   171,   172,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   135,   131,   132,   134,   249,     0,     0,   251,     0,
+      37,    38,    39,    54,    47,    49,    48,    51,    40,    41,
+      42,    43,    50,    52,    44,    32,    33,    36,    34,     0,
+      35,     0,     0,     0,     0,   302,     0,   297,     0,   111,
+     125,   121,   123,   119,   120,   122,   124,   112,   129,   248,
+     247,   253,   252,     0,    45,    46,    53,     0,   296,   294,
+     301,     0,   298,   284,   305,     0,     0,     0,     0,     0,
+     307,     0,     0,   303,   306,   304,     0,     0,   312,   313,
+     314,   315,   316,     0,     0,     0,   308,     0,   310,     0,
+     309,   311
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int16 yypgoto[] =
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
 {
-    -185,  -185,  -185,   -44,  -185,  -185,   -15,   -38,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,  -185,    28,  -185,  -185,  -185,
-    -185,   -36,  -185,  -185,  -185,  -185,  -185,  -185,  -152,  -185,
-    -185,   146,  -185,  -185,   111,  -185,  -185,  -185,     3,  -185,
-    -185,  -185,  -185,    89,  -185,  -185,   245,   -66,  -185,  -185,
-    -185,  -185,    72,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
-    -185,  -185,  -185,  -185,  -185,   137,  -185,  -185,  -185,  -185,
-    -185,  -185,   110,  -185,  -185,    70,  -185,  -185,   236,    27,
-    -184,  -185,  -185,  -185,   -17,  -185,  -185,   -81,  -185,  -185,
-    -185,  -113,  -185,  -126,  -185
+      -1,    56,    57,    58,    59,    60,   131,   123,   124,   287,
+     355,   356,   357,   358,   359,   360,   361,    61,    62,    63,
+      64,    85,   235,   236,    65,   201,   202,   203,   204,    66,
+     174,   118,   241,   307,   308,   309,   377,    67,   263,   331,
+     104,   105,   106,   142,   143,   144,    68,   251,   252,   253,
+     254,    69,   169,   170,   171,    70,    97,    98,    99,   100,
+      71,   187,   188,   189,    72,    73,    74,    75,    76,   108,
+     173,   380,   282,   338,   129,   130,    77,    78,   293,   227,
+      79,   157,   158,   212,   208,   209,   210,   148,   132,   278,
+     220,    80,    81,   296,   297,   298,   364,   365,   396,   366,
+     399,   400,   413,   414,   415
 };
 
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -188
+static const yytype_int16 yypact[] =
 {
-      -1,    56,    57,    58,    59,    60,   128,   120,   121,   284,
-     352,   353,   354,   355,   356,   357,   358,    61,    62,    63,
-      64,    85,   232,   233,    65,   198,   199,   200,   201,    66,
-     171,   115,   238,   304,   305,   306,   374,    67,   260,   328,
-     101,   102,   103,   139,   140,   141,    68,   248,   249,   250,
-     251,    69,   166,   167,   168,    70,    94,    95,    96,    97,
-      71,   184,   185,   186,    72,    73,    74,    75,    76,   105,
-     170,   377,   279,   335,   126,   127,    77,    78,   290,   224,
-      79,   154,   155,   209,   205,   206,   207,   145,   129,   275,
-     217,    80,    81,   293,   294,   295,   361,   362,   393,   363,
-     396,   397,   410,   411,   412
+       5,  -160,   -28,  -188,  -188,  -188,   -24,  -188,    60,     0,
+    -119,  -188,    60,  -188,   118,     7,  -188,  -117,  -188,  -110,
+    -108,  -188,  -188,  -101,  -188,  -188,     7,    -1,   345,     7,
+    -188,  -188,   -96,  -188,   -95,  -188,  -188,    21,    -3,    73,
+      33,    11,  -188,  -188,   -94,   118,   -61,  -188,    43,   446,
+     -57,   -58,    41,  -188,  -188,  -188,   105,   179,   -79,  -188,
+       7,  -188,     7,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,    -7,    48,   -48,   -39,  -188,    24,  -188,
+    -188,   -86,  -188,  -188,  -188,    42,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,    60,  -188,  -188,
+    -188,  -188,  -188,  -188,     0,  -188,    59,    89,  -188,    60,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,    80,  -188,     9,   338,  -188,  -188,  -188,  -101,
+    -188,  -188,     7,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,   345,  -188,    67,     7,  -188,  -188,    12,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,    -3,  -188,  -188,
+     107,   116,  -188,  -188,    83,  -188,  -188,  -188,  -188,    11,
+    -188,   113,   -20,  -188,   118,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,    43,  -188,    -7,
+    -188,  -188,   -25,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,   446,  -188,   127,    -7,  -188,  -188,   129,   -58,  -188,
+    -188,  -188,   142,  -188,    19,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,     4,  -158,  -188,
+    -188,  -188,  -188,  -188,   145,  -188,    49,  -188,  -188,  -188,
+    -188,   233,    55,  -188,  -188,  -188,  -188,    64,   157,  -188,
+    -188,    80,  -188,    -7,   -25,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,   445,  -188,  -188,   445,   445,   -57,  -188,
+    -188,    82,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,   -44,   202,  -188,  -188,  -188,   324,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,   -30,    58,    50,  -188,
+    -188,  -188,  -188,    88,  -188,  -188,     3,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,   445,   445,  -188,   221,   -57,   188,  -188,   191,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,   -51,
+    -188,    99,    61,    75,  -114,  -188,    65,  -188,    -7,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,   445,  -188,
+    -188,  -188,  -188,    68,  -188,  -188,  -188,     7,  -188,  -188,
+    -188,    76,  -188,  -188,  -188,    71,    78,    -7,    74,  -178,
+    -188,    90,    -7,  -188,  -188,  -188,    77,    32,  -188,  -188,
+    -188,  -188,  -188,   101,    93,    84,  -188,    94,  -188,    -7,
+    -188,  -188
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int16 yypgoto[] =
+{
+    -188,  -188,  -188,   -41,  -188,  -188,   -15,   -38,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,  -188,    81,  -188,  -188,  -188,
+    -188,   -37,  -188,  -188,  -188,  -188,  -188,  -188,  -111,  -188,
+    -188,   170,  -188,  -188,   133,  -188,  -188,  -188,    37,  -188,
+    -188,  -188,  -188,   115,  -188,  -188,   277,   -53,  -188,  -188,
+    -188,  -188,   103,  -188,  -188,  -188,  -188,  -188,  -188,  -188,
+    -188,  -188,  -188,  -188,  -188,   162,  -188,  -188,  -188,  -188,
+    -188,  -188,   143,  -188,  -188,    91,  -188,  -188,   274,    52,
+    -187,  -188,  -188,  -188,     8,  -188,  -188,   -56,  -188,  -188,
+    -188,   -87,  -188,  -100,  -188
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -7
 static const yytype_int16 yytable[] =
 {
-     119,   161,   271,   285,   272,   203,   381,   263,   264,   172,
-     239,   333,   202,   211,    82,   107,   367,   278,   359,   108,
-     215,   395,   298,   221,   160,    86,   273,    83,   234,    87,
-     299,   400,    84,   300,   104,    88,   226,   122,   368,   116,
-     234,   117,   147,   148,   222,   213,   123,   214,   124,   216,
-     240,   241,   242,   243,    98,   291,   292,   156,   125,   227,
-     149,   130,   228,   286,   359,   287,   311,   143,   223,   144,
-     386,   301,   146,   163,   162,   169,   208,   109,   253,     1,
-     173,   334,   118,   210,   212,   218,    89,   219,     2,   220,
-     225,   237,     3,     4,     5,   236,   157,   252,   158,   150,
-       6,     7,   302,   291,   292,   257,   258,     8,     9,   329,
-     330,    10,   261,    11,   255,    12,    13,   369,   382,    14,
-      90,    91,   110,   262,   370,   265,   164,   255,    15,   151,
-     111,   118,    16,   112,   274,   269,   267,    92,    17,   204,
-      18,   371,    99,   277,   229,   230,   244,   100,   268,    19,
-      20,   231,   280,    21,    22,   113,   288,   283,    23,    24,
-     114,   282,    25,    26,   245,   303,   296,   297,    93,   246,
-     247,    27,   131,   132,   133,   134,   307,   289,   159,   375,
-     165,   389,   309,   308,    28,    29,    30,   332,   118,   336,
-     372,    31,   174,   373,   152,   365,   366,   364,   376,   153,
-      32,   379,   380,   135,    33,   136,    34,   137,    35,    36,
-     398,   383,   390,   138,   384,   403,   385,   175,    37,    38,
-      39,    40,    41,    42,    43,    44,   276,   331,    45,   388,
-      46,   394,   418,   392,   399,   176,   395,   402,   177,    47,
-     415,   416,   404,   417,    48,    49,    50,   235,    51,    52,
-     256,   310,    53,    54,     2,   266,   270,   106,     3,     4,
-       5,    -6,    55,   254,   259,   142,     6,     7,   405,   406,
-     407,   408,   409,     8,     9,   281,   360,    10,   312,    11,
-     387,    12,    13,   401,   414,    14,     0,   405,   406,   407,
-     408,   409,     0,     0,    15,   378,   413,     0,    16,     0,
-       0,     0,     0,     0,    17,     0,    18,     0,     0,     0,
-       0,   178,     0,     0,     0,    19,    20,     0,     0,    21,
-      22,     0,     0,     0,    23,    24,     0,     0,    25,    26,
-       0,     0,     0,     0,     0,     0,     0,    27,     0,   179,
-     180,   181,   182,     0,     0,     0,     0,   183,     0,     0,
-      28,    29,    30,     0,     0,     0,     0,    31,     0,     0,
-       0,     0,     0,     0,     0,     0,    32,     0,     0,   391,
-      33,     0,    34,     0,    35,    36,     0,     0,     0,     0,
-       0,     0,     0,     0,    37,    38,    39,    40,    41,    42,
-      43,    44,     0,     0,    45,     0,    46,     0,     0,     0,
-       0,     0,     0,     0,     0,    47,     0,     0,     0,     0,
-      48,    49,    50,     0,    51,    52,     0,     2,    53,    54,
-       0,     3,     4,     5,     0,     0,     0,    -6,    55,     6,
-       7,     0,     0,     0,     0,     0,     8,     9,   313,     0,
-      10,     0,    11,     0,    12,    13,   314,     0,    14,     0,
-       0,     0,     0,     0,     0,     0,     0,    15,     0,     0,
-       0,    16,     0,     0,   315,   316,     0,    17,   317,    18,
-       0,     0,     0,   337,   318,     0,     0,     0,    19,    20,
-       0,   338,    21,    22,     0,     0,     0,    23,    24,     0,
-       0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
-      27,   319,   320,     0,     0,   321,   322,     0,   323,   324,
-     325,     0,   326,    28,    29,    30,     0,   339,   340,     0,
-      31,     0,     0,     0,     0,     0,     0,     0,     0,    32,
-       0,     0,     0,    33,   341,    34,   187,    35,    36,     0,
-       0,     0,   188,     0,   189,     0,     0,    37,    38,    39,
-      40,    41,    42,    43,    44,     0,   342,    45,     0,    46,
-       0,     0,     0,     0,   343,     0,   344,   327,    47,     0,
-       0,   190,     0,    48,    49,    50,     0,    51,    52,     0,
-     345,    53,    54,     0,     0,     0,     0,     0,     0,     0,
-       0,    55,     0,     0,     0,     0,     0,   346,   347,     0,
+     122,   164,   274,   206,   150,   151,     1,   370,   175,   288,
+     384,   101,   205,   398,   275,     2,   214,   281,   336,     3,
+       4,     5,   152,   403,   163,   218,    82,     6,     7,   371,
+     294,   295,   362,    83,     8,     9,   276,    84,    10,   107,
+      11,   125,    12,    13,   237,   216,    14,   217,   126,   177,
+     127,   266,   267,   166,   219,    15,   237,   128,   224,    16,
+     133,   153,   146,   147,   172,    17,   314,    18,    86,   289,
+     229,   290,    87,   119,   178,   120,    19,    20,    88,   225,
+      21,    22,   149,   242,   256,    23,    24,   389,   337,    25,
+      26,   154,   179,   230,   165,   180,   231,   176,    27,   102,
+     159,   121,   211,   226,   103,   213,   167,   215,   372,   221,
+     222,    28,    29,    30,   228,   373,   362,   258,    31,   223,
+     239,   240,   385,   243,   244,   245,   246,    32,   260,    89,
+     258,    33,   374,    34,   264,    35,    36,   272,   110,   160,
+     207,   161,   111,   265,   277,    37,    38,    39,    40,    41,
+      42,    43,    44,   332,   333,    45,   155,    46,   294,   295,
+     168,   156,   291,    90,    91,   121,    47,   255,   181,   268,
+     261,    48,    49,    50,   270,    51,    52,   271,   232,   233,
+      92,   392,    53,    54,   375,   234,   292,   376,   280,     2,
+     283,    -6,    55,     3,     4,     5,   182,   183,   184,   185,
+     112,     6,     7,   285,   186,   286,   299,   300,     8,     9,
+     401,    93,    10,   310,    11,   406,    12,    13,   312,   247,
+      14,   162,   311,   378,   408,   409,   410,   411,   412,    15,
+     334,   121,   421,    16,    94,    95,    96,   248,   339,    17,
+     335,    18,   249,   250,   367,   113,   369,   368,   379,   382,
+      19,    20,   383,   114,    21,    22,   115,   386,   387,    23,
+      24,   388,   301,    25,    26,   391,   395,   393,   397,   398,
+     302,   402,    27,   303,   238,   259,   405,   407,   116,   418,
+     420,   419,   279,   117,   269,    28,    29,    30,   313,   109,
+     273,   257,    31,   408,   409,   410,   411,   412,   381,   284,
+     262,    32,   416,   145,   363,    33,   315,    34,   390,    35,
+      36,   304,   404,   417,     0,     0,     0,     0,     0,    37,
+      38,    39,    40,    41,    42,    43,    44,     0,     0,    45,
+       0,    46,     0,   340,     0,     0,     0,     0,     0,     0,
+      47,   341,   305,     0,     0,    48,    49,    50,     2,    51,
+      52,     0,     3,     4,     5,     0,    53,    54,     0,     0,
+       6,     7,     0,     0,     0,    -6,    55,     8,     9,     0,
+       0,    10,   394,    11,     0,    12,    13,   342,   343,    14,
+       0,     0,     0,     0,     0,     0,     0,     0,    15,     0,
+       0,     0,    16,     0,   344,     0,     0,     0,    17,     0,
+      18,   134,   135,   136,   137,   306,     0,     0,     0,    19,
+      20,     0,     0,    21,    22,     0,   345,     0,    23,    24,
+       0,     0,    25,    26,   346,     0,   347,     0,     0,     0,
+       0,    27,   138,     0,   139,     0,   140,     0,     0,     0,
+     348,     0,   141,     0,    28,    29,    30,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,   349,   350,   190,
+      32,     0,     0,     0,    33,   191,    34,   192,    35,    36,
+       0,     0,     0,     0,     0,     0,     0,     0,    37,    38,
+      39,    40,    41,    42,    43,    44,     0,     0,    45,     0,
+      46,     0,   316,   351,   193,   352,     0,     0,     0,    47,
+     317,     0,     0,   353,    48,    49,    50,   354,    51,    52,
+       0,     0,     0,     0,     0,    53,    54,     0,   318,   319,
+       0,     0,   320,     0,     0,    55,     0,     0,   321,     0,
+       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
+       0,     0,   196,     0,   197,     0,     0,   198,     0,     0,
+       0,     0,     0,     0,     0,   322,   323,     0,     0,   324,
+     325,     0,   326,   327,   328,     0,   329,     0,     0,   199,
+     200,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   191,     0,   192,     0,     0,     0,     0,     0,   193,
-       0,   194,     0,     0,   195,     0,     0,     0,     0,     0,
-       0,     0,     0,   348,     0,   349,     0,     0,     0,     0,
-     350,     0,     0,     0,   351,     0,   196,   197
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   330
 };
 
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-188)))
+
+#define yytable_value_is_error(Yytable_value) \
+  YYID (0)
+
 static const yytype_int16 yycheck[] =
 {
-      15,    39,   186,     5,    39,    61,    61,   159,   160,    45,
-       3,    62,    50,    57,   183,    20,     4,   201,   146,    24,
-      32,   188,    29,    34,    39,     8,    61,    61,    94,    12,
-      37,   198,    61,    40,   158,    18,    28,   158,    26,    66,
-     106,    68,     7,     8,    55,    60,   158,    62,   158,    61,
-      43,    44,    45,    46,    11,   185,   186,    27,   158,    51,
-      25,    61,    54,    65,   146,    67,   250,   158,    79,   158,
-     198,    78,    61,    42,    61,   158,    61,    82,   122,     1,
-     158,   132,   158,     0,   183,    61,    69,   158,    10,   158,
-     197,    32,    14,    15,    16,    61,    66,   158,    68,    64,
-      22,    23,   109,   185,   186,    61,   158,    29,    30,   261,
-     262,    33,    27,    35,   129,    37,    38,   105,   173,    41,
-     103,   104,   127,    27,   112,    86,    95,   142,    50,    94,
-     135,   158,    54,   138,   169,   171,    61,   120,    60,   195,
-      62,   129,    99,    61,   136,   137,   139,   104,   194,    71,
-      72,   143,    61,    75,    76,   160,   158,   183,    80,    81,
-     165,    61,    84,    85,   157,   172,    61,   158,   151,   162,
-     163,    93,    56,    57,    58,    59,   158,   179,   148,   331,
-     149,   365,    61,   158,   106,   107,   108,   158,   158,    36,
-     178,   113,     6,   181,   159,   194,   158,   183,    27,   164,
-     122,    61,    61,    87,   126,    89,   128,    91,   130,   131,
-     394,   158,   196,    97,   194,   399,   183,    31,   140,   141,
-     142,   143,   144,   145,   146,   147,   198,   265,   150,   197,
-     152,   194,   416,   187,   194,    49,   188,   183,    52,   161,
-     183,   194,   197,   183,   166,   167,   168,   101,   170,   171,
-     139,   248,   174,   175,    10,   166,   184,    12,    14,    15,
-      16,   183,   184,   126,   154,    29,    22,    23,   189,   190,
-     191,   192,   193,    29,    30,   205,   293,    33,   251,    35,
-     361,    37,    38,   396,   410,    41,    -1,   189,   190,   191,
-     192,   193,    -1,    -1,    50,   333,   198,    -1,    54,    -1,
-      -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    -1,    -1,
-      -1,   125,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
-      76,    -1,    -1,    -1,    80,    81,    -1,    -1,    84,    85,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,   153,
-     154,   155,   156,    -1,    -1,    -1,    -1,   161,    -1,    -1,
-     106,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   122,    -1,    -1,   384,
-     126,    -1,   128,    -1,   130,   131,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   140,   141,   142,   143,   144,   145,
-     146,   147,    -1,    -1,   150,    -1,   152,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,    -1,
-     166,   167,   168,    -1,   170,   171,    -1,    10,   174,   175,
-      -1,    14,    15,    16,    -1,    -1,    -1,   183,   184,    22,
-      23,    -1,    -1,    -1,    -1,    -1,    29,    30,    47,    -1,
-      33,    -1,    35,    -1,    37,    38,    55,    -1,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,
-      -1,    54,    -1,    -1,    73,    74,    -1,    60,    77,    62,
-      -1,    -1,    -1,     9,    83,    -1,    -1,    -1,    71,    72,
-      -1,    17,    75,    76,    -1,    -1,    -1,    80,    81,    -1,
-      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      93,   110,   111,    -1,    -1,   114,   115,    -1,   117,   118,
-     119,    -1,   121,   106,   107,   108,    -1,    53,    54,    -1,
-     113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-      -1,    -1,    -1,   126,    70,   128,    13,   130,   131,    -1,
-      -1,    -1,    19,    -1,    21,    -1,    -1,   140,   141,   142,
-     143,   144,   145,   146,   147,    -1,    92,   150,    -1,   152,
-      -1,    -1,    -1,    -1,   100,    -1,   102,   176,   161,    -1,
-      -1,    48,    -1,   166,   167,   168,    -1,   170,   171,    -1,
-     116,   174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   184,    -1,    -1,    -1,    -1,    -1,   133,   134,    -1,
+      15,    39,   189,    61,     7,     8,     1,     4,    45,     5,
+      61,    11,    50,   191,    39,    10,    57,   204,    62,    14,
+      15,    16,    25,   201,    39,    32,   186,    22,    23,    26,
+     188,   189,   146,    61,    29,    30,    61,    61,    33,   158,
+      35,   158,    37,    38,    97,    60,    41,    62,   158,     6,
+     158,   162,   163,    42,    61,    50,   109,   158,    34,    54,
+      61,    64,   158,   158,   158,    60,   253,    62,     8,    65,
+      28,    67,    12,    66,    31,    68,    71,    72,    18,    55,
+      75,    76,    61,     3,   125,    80,    81,   201,   132,    84,
+      85,    94,    49,    51,    61,    52,    54,   158,    93,    99,
+      27,   158,    61,    79,   104,     0,    95,   186,   105,    61,
+     158,   106,   107,   108,   200,   112,   146,   132,   113,   158,
+      61,    32,   173,    43,    44,    45,    46,   122,    61,    69,
+     145,   126,   129,   128,    27,   130,   131,   174,    20,    66,
+     198,    68,    24,    27,   169,   140,   141,   142,   143,   144,
+     145,   146,   147,   264,   265,   150,   159,   152,   188,   189,
+     149,   164,   158,   103,   104,   158,   161,   158,   125,    86,
+     158,   166,   167,   168,    61,   170,   171,   197,   136,   137,
+     120,   368,   177,   178,   181,   143,   182,   184,    61,    10,
+      61,   186,   187,    14,    15,    16,   153,   154,   155,   156,
+      82,    22,    23,    61,   161,   186,    61,   158,    29,    30,
+     397,   151,    33,   158,    35,   402,    37,    38,    61,   139,
+      41,   148,   158,   334,   192,   193,   194,   195,   196,    50,
+     268,   158,   419,    54,   174,   175,   176,   157,    36,    60,
+     158,    62,   162,   163,   186,   127,   158,   197,    27,    61,
+      71,    72,    61,   135,    75,    76,   138,   158,   197,    80,
+      81,   186,    29,    84,    85,   200,   190,   199,   197,   191,
+      37,   197,    93,    40,   104,   142,   186,   200,   160,   186,
+     186,   197,   201,   165,   169,   106,   107,   108,   251,    12,
+     187,   129,   113,   192,   193,   194,   195,   196,   336,   208,
+     157,   122,   201,    29,   296,   126,   254,   128,   364,   130,
+     131,    78,   399,   413,    -1,    -1,    -1,    -1,    -1,   140,
+     141,   142,   143,   144,   145,   146,   147,    -1,    -1,   150,
+      -1,   152,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,
+     161,    17,   109,    -1,    -1,   166,   167,   168,    10,   170,
+     171,    -1,    14,    15,    16,    -1,   177,   178,    -1,    -1,
+      22,    23,    -1,    -1,    -1,   186,   187,    29,    30,    -1,
+      -1,    33,   387,    35,    -1,    37,    38,    53,    54,    41,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
+      -1,    -1,    54,    -1,    70,    -1,    -1,    -1,    60,    -1,
+      62,    56,    57,    58,    59,   172,    -1,    -1,    -1,    71,
+      72,    -1,    -1,    75,    76,    -1,    92,    -1,    80,    81,
+      -1,    -1,    84,    85,   100,    -1,   102,    -1,    -1,    -1,
+      -1,    93,    87,    -1,    89,    -1,    91,    -1,    -1,    -1,
+     116,    -1,    97,    -1,   106,   107,   108,    -1,    -1,    -1,
+      -1,   113,    -1,    -1,    -1,    -1,    -1,   133,   134,    13,
+     122,    -1,    -1,    -1,   126,    19,   128,    21,   130,   131,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   140,   141,
+     142,   143,   144,   145,   146,   147,    -1,    -1,   150,    -1,
+     152,    -1,    47,   169,    48,   171,    -1,    -1,    -1,   161,
+      55,    -1,    -1,   179,   166,   167,   168,   183,   170,   171,
+      -1,    -1,    -1,    -1,    -1,   177,   178,    -1,    73,    74,
+      -1,    -1,    77,    -1,    -1,   187,    -1,    -1,    83,    -1,
+      -1,    -1,    -1,    -1,    88,    -1,    90,    -1,    -1,    -1,
+      -1,    -1,    96,    -1,    98,    -1,    -1,   101,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   110,   111,    -1,    -1,   114,
+     115,    -1,   117,   118,   119,    -1,   121,    -1,    -1,   123,
+     124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    88,    -1,    90,    -1,    -1,    -1,    -1,    -1,    96,
-      -1,    98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   169,    -1,   171,    -1,    -1,    -1,    -1,
-     176,    -1,    -1,    -1,   180,    -1,   123,   124
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   179
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
        0,     1,    10,    14,    15,    16,    22,    23,    29,    30,
@@ -1302,129 +1504,70 @@ static const yytype_uint16 yystos[] =
       72,    75,    76,    80,    81,    84,    85,    93,   106,   107,
      108,   113,   122,   126,   128,   130,   131,   140,   141,   142,
      143,   144,   145,   146,   147,   150,   152,   161,   166,   167,
-     168,   170,   171,   174,   175,   184,   200,   201,   202,   203,
-     204,   216,   217,   218,   219,   223,   228,   236,   245,   250,
-     254,   259,   263,   264,   265,   266,   267,   275,   276,   279,
-     290,   291,   183,    61,    61,   220,     8,    12,    18,    69,
-     103,   104,   120,   151,   255,   256,   257,   258,    11,    99,
-     104,   239,   240,   241,   158,   268,   255,    20,    24,    82,
-     127,   135,   138,   160,   165,   230,    66,    68,   158,   205,
-     206,   207,   158,   158,   158,   158,   273,   274,   205,   287,
-      61,    56,    57,    58,    59,    87,    89,    91,    97,   242,
-     243,   244,   287,   158,   158,   286,    61,     7,     8,    25,
-      64,    94,   159,   164,   280,   281,    27,    66,    68,   148,
-     205,   206,    61,    42,    95,   149,   251,   252,   253,   158,
-     269,   229,   230,   158,     6,    31,    49,    52,   125,   153,
-     154,   155,   156,   161,   260,   261,   262,    13,    19,    21,
-      48,    88,    90,    96,    98,   101,   123,   124,   224,   225,
-     226,   227,   206,    61,   195,   283,   284,   285,    61,   282,
-       0,   202,   183,   205,   205,    32,    61,   289,    61,   158,
-     158,    34,    55,    79,   278,   197,    28,    51,    54,   136,
-     137,   143,   221,   222,   256,   240,    61,    32,   231,     3,
-      43,    44,    45,    46,   139,   157,   162,   163,   246,   247,
-     248,   249,   158,   202,   274,   205,   243,    61,   158,   281,
-     237,    27,    27,   237,   237,    86,   252,    61,   194,   230,
-     261,   289,    39,    61,   169,   288,   225,    61,   289,   271,
-      61,   284,    61,   183,   208,     5,    65,    67,   158,   179,
-     277,   185,   186,   292,   293,   294,    61,   158,    29,    37,
-      40,    78,   109,   172,   232,   233,   234,   158,   158,    61,
-     247,   289,   288,    47,    55,    73,    74,    77,    83,   110,
-     111,   114,   115,   117,   118,   119,   121,   176,   238,   237,
-     237,   206,   158,    62,   132,   272,    36,     9,    17,    53,
-      54,    70,    92,   100,   102,   116,   133,   134,   169,   171,
-     176,   180,   209,   210,   211,   212,   213,   214,   215,   146,
-     293,   295,   296,   298,   183,   194,   158,     4,    26,   105,
-     112,   129,   178,   181,   235,   237,    27,   270,   206,    61,
-      61,    61,   173,   158,   194,   183,   198,   296,   197,   289,
-     196,   205,   187,   297,   194,   188,   299,   300,   289,   194,
-     198,   300,   183,   289,   197,   189,   190,   191,   192,   193,
-     301,   302,   303,   198,   302,   183,   194,   183,   289
-};
-
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint16 yyr1[] =
-{
-       0,   199,   200,   201,   201,   201,   202,   202,   202,   202,
-     202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
-     203,   204,   204,   204,   204,   204,   205,   205,   206,   207,
-     207,   208,   208,   209,   209,   209,   210,   211,   211,   211,
-     211,   211,   211,   211,   211,   212,   212,   213,   213,   213,
-     213,   213,   213,   214,   215,   216,   217,   217,   218,   218,
-     218,   218,   219,   219,   219,   219,   219,   219,   219,   219,
-     219,   220,   220,   221,   221,   222,   222,   222,   222,   222,
-     223,   224,   224,   225,   225,   225,   226,   226,   226,   226,
-     226,   226,   227,   227,   227,   227,   228,   228,   228,   229,
-     229,   230,   230,   230,   230,   230,   230,   230,   230,   231,
-     231,   232,   232,   232,   232,   233,   233,   234,   234,   235,
-     235,   235,   235,   235,   235,   235,   236,   236,   236,   236,
-     236,   236,   236,   236,   237,   237,   238,   238,   238,   238,
-     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
-     238,   239,   239,   240,   241,   241,   241,   242,   242,   243,
-     244,   244,   244,   244,   244,   244,   244,   244,   245,   246,
-     246,   247,   247,   247,   247,   247,   248,   248,   249,   249,
-     249,   249,   250,   251,   251,   252,   253,   253,   253,   254,
-     254,   255,   255,   256,   256,   257,   257,   257,   257,   257,
-     257,   258,   258,   259,   260,   260,   261,   262,   262,   262,
-     262,   262,   262,   262,   262,   262,   262,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   264,   264,   264,   265,   265,   266,   266,   267,   267,
-     267,   268,   268,   268,   269,   270,   270,   271,   271,   272,
-     272,   273,   273,   274,   275,   275,   276,   276,   277,   277,
-     277,   277,   278,   278,   278,   279,   280,   280,   281,   281,
-     281,   281,   281,   281,   281,   282,   282,   283,   283,   284,
-     284,   285,   286,   286,   287,   287,   288,   288,   288,   289,
-     289,   290,   291,   292,   292,   293,   294,   294,   295,   295,
-     296,   297,   298,   299,   299,   300,   301,   301,   302,   303,
-     303,   303,   303,   303
-};
-
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 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,     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,     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,     3,     5,
-       3,     4,     4,     3,     0,     2,     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,     2,     2,     1,     2,     1,     1,     1,     2,
-       2,     2,     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,     1,     2,     2,     2,     2,     3,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     0,     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,     5,     1,     3,     2,     3,     1,     1,     2,     1,
-       5,     4,     3,     2,     1,     6,     3,     2,     3,     1,
-       1,     1,     1,     1
+     168,   170,   171,   177,   178,   187,   203,   204,   205,   206,
+     207,   219,   220,   221,   222,   226,   231,   239,   248,   253,
+     257,   262,   266,   267,   268,   269,   270,   278,   279,   282,
+     293,   294,   186,    61,    61,   223,     8,    12,    18,    69,
+     103,   104,   120,   151,   174,   175,   176,   258,   259,   260,
+     261,    11,    99,   104,   242,   243,   244,   158,   271,   258,
+      20,    24,    82,   127,   135,   138,   160,   165,   233,    66,
+      68,   158,   208,   209,   210,   158,   158,   158,   158,   276,
+     277,   208,   290,    61,    56,    57,    58,    59,    87,    89,
+      91,    97,   245,   246,   247,   290,   158,   158,   289,    61,
+       7,     8,    25,    64,    94,   159,   164,   283,   284,    27,
+      66,    68,   148,   208,   209,    61,    42,    95,   149,   254,
+     255,   256,   158,   272,   232,   233,   158,     6,    31,    49,
+      52,   125,   153,   154,   155,   156,   161,   263,   264,   265,
+      13,    19,    21,    48,    88,    90,    96,    98,   101,   123,
+     124,   227,   228,   229,   230,   209,    61,   198,   286,   287,
+     288,    61,   285,     0,   205,   186,   208,   208,    32,    61,
+     292,    61,   158,   158,    34,    55,    79,   281,   200,    28,
+      51,    54,   136,   137,   143,   224,   225,   259,   243,    61,
+      32,   234,     3,    43,    44,    45,    46,   139,   157,   162,
+     163,   249,   250,   251,   252,   158,   205,   277,   208,   246,
+      61,   158,   284,   240,    27,    27,   240,   240,    86,   255,
+      61,   197,   233,   264,   292,    39,    61,   169,   291,   228,
+      61,   292,   274,    61,   287,    61,   186,   211,     5,    65,
+      67,   158,   182,   280,   188,   189,   295,   296,   297,    61,
+     158,    29,    37,    40,    78,   109,   172,   235,   236,   237,
+     158,   158,    61,   250,   292,   291,    47,    55,    73,    74,
+      77,    83,   110,   111,   114,   115,   117,   118,   119,   121,
+     179,   241,   240,   240,   209,   158,    62,   132,   275,    36,
+       9,    17,    53,    54,    70,    92,   100,   102,   116,   133,
+     134,   169,   171,   179,   183,   212,   213,   214,   215,   216,
+     217,   218,   146,   296,   298,   299,   301,   186,   197,   158,
+       4,    26,   105,   112,   129,   181,   184,   238,   240,    27,
+     273,   209,    61,    61,    61,   173,   158,   197,   186,   201,
+     299,   200,   292,   199,   208,   190,   300,   197,   191,   302,
+     303,   292,   197,   201,   303,   186,   292,   200,   192,   193,
+     194,   195,   196,   304,   305,   306,   201,   305,   186,   197,
+     186,   292
 };
 
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-
+#define yyerrok                (yyerrstatus = 0)
+#define yyclearin      (yychar = YYEMPTY)
+#define YYEMPTY                (-2)
+#define YYEOF          0
+
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT                goto yyabortlab
+#define YYERROR                goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
+
+#define YYFAIL         goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -1441,15 +1584,27 @@ do                                                              \
   else                                                          \
     {                                                           \
       yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
+      YYERROR;                                                 \
+    }                                                          \
+while (YYID (0))
 
 /* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
+#define YYTERROR       1
+#define YYERRCODE      256
 
 
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -1459,36 +1614,40 @@ while (0)
 #  define YYFPRINTF fprintf
 # endif
 
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
+# define YYDPRINTF(Args)                       \
+do {                                           \
+  if (yydebug)                                 \
+    YYFPRINTF Args;                            \
+} while (YYID (0))
 
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
+do {                                                                     \
+  if (yydebug)                                                           \
+    {                                                                    \
+      YYFPRINTF (stderr, "%s ", Title);                                          \
+      yy_symbol_print (stderr,                                           \
+                 Type, Value); \
+      YYFPRINTF (stderr, "\n");                                                  \
+    }                                                                    \
+} while (YYID (0))
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Type, Value); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
 
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
 
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
-
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
 {
   FILE *yyo = yyoutput;
   YYUSE (yyo);
@@ -1497,6 +1656,8 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue
 # ifdef YYPRINT
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
 # endif
   YYUSE (yytype);
 }
@@ -1506,11 +1667,22 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue
 | Print this symbol on YYOUTPUT.  |
 `--------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
 {
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
   YYFPRINTF (yyoutput, ")");
@@ -1521,8 +1693,16 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+#else
+static void
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
+#endif
 {
   YYFPRINTF (stderr, "Stack now");
   for (; yybottom <= yytop; yybottom++)
@@ -1533,42 +1713,49 @@ yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
   YYFPRINTF (stderr, "\n");
 }
 
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (YYID (0))
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
+    int yyrule;
+#endif
 {
-  unsigned long int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
+  unsigned long int yylno = yyrline[yyrule];
   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-             yyrule - 1, yylno);
+            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_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+                      &(yyvsp[(yyi + 1) - (yynrhs)])
+                                      );
       YYFPRINTF (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule); \
-} while (0)
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
@@ -1582,7 +1769,7 @@ int yydebug;
 
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
+#ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
 
@@ -1605,8 +1792,15 @@ int yydebug;
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
 yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
 {
   YYSIZE_T yylen;
   for (yylen = 0; yystr[yylen]; yylen++)
@@ -1622,8 +1816,16 @@ yystrlen (const char *yystr)
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static char *
 yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
+#endif
 {
   char *yyd = yydest;
   const char *yys = yysrc;
@@ -1653,27 +1855,27 @@ yytnamerr (char *yyres, const char *yystr)
       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;
-          }
+       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: ;
     }
 
@@ -1696,11 +1898,11 @@ 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 yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
+  const char *yyformat = YY_NULL;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
@@ -1708,6 +1910,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
   int yycount = 0;
 
   /* There are many possibilities here to consider:
+     - Assume YYFAIL is not used.  It's too flawed to consider.  See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+       for details.  YYERROR is fine as it does not invoke this
+       function.
      - 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
@@ -1757,7 +1963,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                   }
                 yyarg[yycount++] = yytname[yyx];
                 {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
                   if (! (yysize <= yysize1
                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
                     return 2;
@@ -1824,17 +2030,26 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
 {
   YYUSE (yyvaluep);
+
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   YYUSE (yytype);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
@@ -1843,8 +2058,18 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 /* The lookahead symbol.  */
 int yychar;
 
+
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
 /* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+
 /* Number of syntax errors so far.  */
 int yynerrs;
 
@@ -1853,16 +2078,35 @@ int yynerrs;
 | yyparse.  |
 `----------*/
 
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
 {
     int yystate;
     /* 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.
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
        Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
@@ -1930,23 +2174,23 @@ yyparse (void)
 
 #ifdef yyoverflow
       {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
-                    &yystacksize);
-
-        yyss = yyss1;
-        yyvs = yyvs1;
+       /* Give user a chance to reallocate the stack.  Use copies of
+          these so that the &'s don't force the real ones into
+          memory.  */
+       YYSTYPE *yyvs1 = yyvs;
+       yytype_int16 *yyss1 = yyss;
+
+       /* Each stack pointer address is followed by the size of the
+          data in use in that stack, in bytes.  This used to be a
+          conditional around just the two extra args, but that might
+          be undefined if yyoverflow is a macro.  */
+       yyoverflow (YY_("memory exhausted"),
+                   &yyss1, yysize * sizeof (*yyssp),
+                   &yyvs1, yysize * sizeof (*yyvsp),
+                   &yystacksize);
+
+       yyss = yyss1;
+       yyvs = yyvs1;
       }
 #else /* no yyoverflow */
 # ifndef YYSTACK_RELOCATE
@@ -1954,22 +2198,22 @@ yyparse (void)
 # else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+       goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
+       yystacksize = YYMAXDEPTH;
 
       {
-        yytype_int16 *yyss1 = yyss;
-        union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+       yytype_int16 *yyss1 = yyss;
+       union yyalloc *yyptr =
+         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+       if (! yyptr)
+         goto yyexhaustedlab;
+       YYSTACK_RELOCATE (yyss_alloc, yyss);
+       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
+       if (yyss1 != yyssa)
+         YYSTACK_FREE (yyss1);
       }
 # endif
 #endif /* no yyoverflow */
@@ -1978,10 +2222,10 @@ yyparse (void)
       yyvsp = yyvs + yysize - 1;
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
+                 (unsigned long int) yystacksize));
 
       if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
+       YYABORT;
     }
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -2010,7 +2254,7 @@ yybackup:
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
+      yychar = YYLEX;
     }
 
   if (yychar <= YYEOF)
@@ -2075,7 +2319,7 @@ yyreduce:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
+     `$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
      This behavior is undocumented and Bison
@@ -2089,7 +2333,8 @@ yyreduce:
   switch (yyn)
     {
         case 5:
-#line 373 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 376 "../../ntpd/ntp_parser.y"
     {
                        /* I will need to incorporate much more fine grained
                         * error messages. The following should suffice for
@@ -2102,433 +2347,433 @@ yyreduce:
                                ip_ctx->errpos.nline,
                                ip_ctx->errpos.ncol);
                }
-#line 2106 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 409 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 412 "../../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));
+                       my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.peers, my_node);
                }
-#line 2117 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 428 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
-#line 2123 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 431 "../../ntpd/ntp_parser.y"
+    { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), (yyvsp[(1) - (2)].Integer)); }
     break;
 
   case 28:
-#line 433 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
-#line 2129 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 436 "../../ntpd/ntp_parser.y"
+    { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), AF_UNSPEC); }
     break;
 
   case 29:
-#line 438 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 441 "../../ntpd/ntp_parser.y"
     { (yyval.Integer) = AF_INET; }
-#line 2135 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 30:
-#line 440 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 443 "../../ntpd/ntp_parser.y"
     { (yyval.Integer) = AF_INET6; }
-#line 2141 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 31:
-#line 445 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 448 "../../ntpd/ntp_parser.y"
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2147 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 32:
-#line 447 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 450 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2156 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 36:
-#line 461 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2162 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 464 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 45:
-#line 477 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2168 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 480 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 46:
-#line 479 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2174 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 482 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_uval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 53:
-#line 493 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2180 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 496 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 55:
-#line 507 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 510 "../../ntpd/ntp_parser.y"
     {
                        unpeer_node *my_node;
 
-                       my_node = create_unpeer_node((yyvsp[0].Address_node));
+                       my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node));
                        if (my_node)
                                APPEND_G_FIFO(cfgt.unpeers, my_node);
                }
-#line 2192 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 528 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 531 "../../ntpd/ntp_parser.y"
     { cfgt.broadcastclient = 1; }
-#line 2198 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 59:
-#line 530 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
-#line 2204 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 533 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[(2) - (2)].Address_fifo)); }
     break;
 
   case 60:
-#line 532 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
-#line 2210 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 535 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[(2) - (2)].Address_fifo)); }
     break;
 
   case 61:
-#line 534 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.mdnstries = (yyvsp[0].Integer); }
-#line 2216 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 537 "../../ntpd/ntp_parser.y"
+    { cfgt.mdnstries = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 62:
-#line 545 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 548 "../../ntpd/ntp_parser.y"
     {
                        attr_val *atrv;
 
-                       atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
+                       atrv = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
                        APPEND_G_FIFO(cfgt.vars, atrv);
                }
-#line 2227 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 552 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.control_key = (yyvsp[0].Integer); }
-#line 2233 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 555 "../../ntpd/ntp_parser.y"
+    { cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 64:
-#line 554 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 557 "../../ntpd/ntp_parser.y"
     {
                        cfgt.auth.cryptosw++;
-                       CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
+                       CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Attr_val_fifo));
                }
-#line 2242 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 65:
-#line 559 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.keys = (yyvsp[0].String); }
-#line 2248 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 562 "../../ntpd/ntp_parser.y"
+    { cfgt.auth.keys = (yyvsp[(2) - (2)].String); }
     break;
 
   case 66:
-#line 561 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.keysdir = (yyvsp[0].String); }
-#line 2254 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 564 "../../ntpd/ntp_parser.y"
+    { cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); }
     break;
 
   case 67:
-#line 563 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.request_key = (yyvsp[0].Integer); }
-#line 2260 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 566 "../../ntpd/ntp_parser.y"
+    { cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 68:
-#line 565 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.revoke = (yyvsp[0].Integer); }
-#line 2266 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 568 "../../ntpd/ntp_parser.y"
+    { cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 69:
-#line 567 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 570 "../../ntpd/ntp_parser.y"
     {
-                       cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo);
+                       cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Attr_val_fifo);
 
                        // if (!cfgt.auth.trusted_key_list)
                        //      cfgt.auth.trusted_key_list = $2;
                        // else
                        //      LINK_SLIST(cfgt.auth.trusted_key_list, $2, link);
                }
-#line 2279 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 576 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
-#line 2285 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 579 "../../ntpd/ntp_parser.y"
+    { cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); }
     break;
 
   case 71:
-#line 581 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 584 "../../ntpd/ntp_parser.y"
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2291 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 583 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 586 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2300 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 591 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2306 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 594 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 74:
-#line 593 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 596 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val) = NULL;
-                       cfgt.auth.revoke = (yyvsp[0].Integer);
+                       cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer);
                        msyslog(LOG_WARNING,
                                "'crypto revoke %d' is deprecated, "
                                "please use 'revoke %d' instead.",
                                cfgt.auth.revoke, cfgt.auth.revoke);
                }
-#line 2319 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 80:
-#line 618 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
-#line 2325 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 621 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
   case 81:
-#line 623 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 626 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2334 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 82:
-#line 628 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 631 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2343 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 83:
-#line 636 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2349 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 639 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 84:
-#line 638 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2355 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 641 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 85:
-#line 640 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2361 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 643 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 96:
-#line 666 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
-#line 2367 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 669 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[(2) - (2)].Int_fifo)); }
     break;
 
   case 97:
-#line 668 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 671 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
-                               cfgt.stats_dir = (yyvsp[0].String);
+                               cfgt.stats_dir = (yyvsp[(2) - (2)].String);
                        } else {
-                               YYFREE((yyvsp[0].String));
+                               YYFREE((yyvsp[(2) - (2)].String));
                                yyerror("statsdir remote configuration ignored");
                        }
                }
-#line 2380 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 98:
-#line 677 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 680 "../../ntpd/ntp_parser.y"
     {
                        filegen_node *fgn;
 
-                       fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo));
+                       fgn = create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.filegen_opts, fgn);
                }
-#line 2391 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 687 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 690 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
-                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
+                       (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
+                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
                }
-#line 2400 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 692 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 695 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Int_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
+                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
                }
-#line 2409 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 109:
-#line 711 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 714 "../../ntpd/ntp_parser.y"
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2415 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 110:
-#line 713 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 716 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2424 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 111:
-#line 721 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 724 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
-                               (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
+                               (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
                        } else {
                                (yyval.Attr_val) = NULL;
-                               YYFREE((yyvsp[0].String));
+                               YYFREE((yyvsp[(2) - (2)].String));
                                yyerror("filegen file remote config ignored");
                        }
                }
-#line 2438 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 112:
-#line 731 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 734 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
-                               (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
+                               (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
                        } else {
                                (yyval.Attr_val) = NULL;
                                yyerror("filegen type remote config ignored");
                        }
                }
-#line 2451 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 740 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 743 "../../ntpd/ntp_parser.y"
     {
                        const char *err;
 
                        if (lex_from_file()) {
-                               (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
+                               (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
                        } else {
                                (yyval.Attr_val) = NULL;
-                               if (T_Link == (yyvsp[0].Integer))
+                               if (T_Link == (yyvsp[(1) - (1)].Integer))
                                        err = "filegen link remote config ignored";
                                else
                                        err = "filegen nolink remote config ignored";
                                yyerror(err);
                        }
                }
-#line 2470 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 755 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2476 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 758 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 126:
-#line 785 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 788 "../../ntpd/ntp_parser.y"
     {
-                       CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
+                       CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[(2) - (2)].Attr_val_fifo));
                }
-#line 2484 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 127:
-#line 789 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 792 "../../ntpd/ntp_parser.y"
     {
-                       CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
+                       CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[(2) - (2)].Attr_val_fifo));
                }
-#line 2492 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 793 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 796 "../../ntpd/ntp_parser.y"
     {
                        restrict_node *rn;
 
-                       rn = create_restrict_node((yyvsp[-1].Address_node), NULL, (yyvsp[0].Int_fifo),
+                       rn = create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Int_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2504 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 801 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 804 "../../ntpd/ntp_parser.y"
     {
                        restrict_node *rn;
 
-                       rn = create_restrict_node((yyvsp[-3].Address_node), (yyvsp[-1].Address_node), (yyvsp[0].Int_fifo),
+                       rn = create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Int_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2516 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 130:
-#line 809 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 812 "../../ntpd/ntp_parser.y"
     {
                        restrict_node *rn;
 
-                       rn = create_restrict_node(NULL, NULL, (yyvsp[0].Int_fifo),
+                       rn = create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Int_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2528 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 817 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 820 "../../ntpd/ntp_parser.y"
     {
                        restrict_node *rn;
 
@@ -2539,15 +2784,15 @@ yyreduce:
                                create_address_node(
                                        estrdup("0.0.0.0"),
                                        AF_INET),
-                               (yyvsp[0].Int_fifo),
+                               (yyvsp[(4) - (4)].Int_fifo),
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2547 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 132:
-#line 832 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 835 "../../ntpd/ntp_parser.y"
     {
                        restrict_node *rn;
 
@@ -2558,327 +2803,327 @@ yyreduce:
                                create_address_node(
                                        estrdup("::"),
                                        AF_INET6),
-                               (yyvsp[0].Int_fifo),
+                               (yyvsp[(4) - (4)].Int_fifo),
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2566 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 847 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 850 "../../ntpd/ntp_parser.y"
     {
                        restrict_node * rn;
 
-                       APPEND_G_FIFO((yyvsp[0].Int_fifo), create_int_node((yyvsp[-1].Integer)));
+                       APPEND_G_FIFO((yyvsp[(3) - (3)].Int_fifo), create_int_node((yyvsp[(2) - (3)].Integer)));
                        rn = create_restrict_node(
-                               NULL, NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline);
+                               NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2579 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 859 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 862 "../../ntpd/ntp_parser.y"
     { (yyval.Int_fifo) = NULL; }
-#line 2585 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 135:
-#line 861 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 864 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
-                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
+                       (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
+                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
                }
-#line 2594 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 887 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 890 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2603 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 892 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 895 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2612 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 153:
-#line 900 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2618 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 903 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 157:
-#line 911 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 914 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2627 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 916 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 919 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2636 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 924 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2642 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 927 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 168:
-#line 944 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 947 "../../ntpd/ntp_parser.y"
     {
                        addr_opts_node *aon;
 
-                       aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
+                       aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.fudge, aon);
                }
-#line 2653 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 954 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 957 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2662 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 170:
-#line 959 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 962 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2671 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 967 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2677 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 970 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 172:
-#line 969 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2683 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 972 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 173:
-#line 971 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 974 "../../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));
+                       if ((yyvsp[(2) - (2)].Integer) >= 0 && (yyvsp[(2) - (2)].Integer) <= 16) {
+                               (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
                        } else {
                                (yyval.Attr_val) = NULL;
                                yyerror("fudge factor: stratum value not in [0..16], ignored");
                        }
                }
-#line 2696 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 174:
-#line 980 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2702 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 983 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 175:
-#line 982 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2708 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 985 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 182:
-#line 1003 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
-#line 2714 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1006 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
   case 183:
-#line 1008 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1011 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2723 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 184:
-#line 1013 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1016 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2732 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 185:
-#line 1021 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2738 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1024 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 189:
-#line 1037 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2744 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1040 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
   case 190:
-#line 1039 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2750 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1042 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
   case 191:
-#line 1044 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1047 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2759 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 192:
-#line 1049 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1052 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2768 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 1057 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2774 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1060 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 194:
-#line 1059 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 1062 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
-                               (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
+                               (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
                        } else {
                                char err_str[128];
 
                                (yyval.Attr_val) = NULL;
                                snprintf(err_str, sizeof(err_str),
                                         "enable/disable %s remote configuration ignored",
-                                        keyword((yyvsp[0].Integer)));
+                                        keyword((yyvsp[(1) - (1)].Integer)));
                                yyerror(err_str);
                        }
                }
-#line 2792 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 203:
-#line 1094 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
-#line 2798 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 206:
+/* Line 1787 of yacc.c  */
+#line 1100 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
-  case 204:
-#line 1099 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 207:
+/* Line 1787 of yacc.c  */
+#line 1105 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 2807 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 205:
-#line 1104 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 208:
+/* Line 1787 of yacc.c  */
+#line 1110 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 2816 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 206:
-#line 1112 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2822 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 209:
+/* Line 1787 of yacc.c  */
+#line 1118 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 219:
-#line 1137 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 222:
+/* Line 1787 of yacc.c  */
+#line 1143 "../../ntpd/ntp_parser.y"
     {
                        attr_val *av;
 
-                       av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double));
+                       av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2833 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 220:
-#line 1144 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 223:
+/* Line 1787 of yacc.c  */
+#line 1150 "../../ntpd/ntp_parser.y"
     {
                        attr_val *av;
 
-                       av = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
+                       av = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2844 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 221:
-#line 1151 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 224:
+/* Line 1787 of yacc.c  */
+#line 1157 "../../ntpd/ntp_parser.y"
     {
                        attr_val *av;
 
-                       av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
+                       av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2855 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 222:
-#line 1158 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 225:
+/* Line 1787 of yacc.c  */
+#line 1164 "../../ntpd/ntp_parser.y"
     {
                        char error_text[64];
                        attr_val *av;
 
                        if (lex_from_file()) {
-                               av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
+                               av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
                                APPEND_G_FIFO(cfgt.vars, av);
                        } else {
-                               YYFREE((yyvsp[0].String));
+                               YYFREE((yyvsp[(2) - (2)].String));
                                snprintf(error_text, sizeof(error_text),
                                         "%s remote config ignored",
-                                        keyword((yyvsp[-1].Integer)));
+                                        keyword((yyvsp[(1) - (2)].Integer)));
                                yyerror(error_text);
                        }
                }
-#line 2875 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 223:
-#line 1174 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 226:
+/* Line 1787 of yacc.c  */
+#line 1180 "../../ntpd/ntp_parser.y"
     {
                        if (!lex_from_file()) {
-                               YYFREE((yyvsp[-1].String)); /* avoid leak */
+                               YYFREE((yyvsp[(2) - (3)].String)); /* avoid leak */
                                yyerror("remote includefile ignored");
                                break;
                        }
@@ -2886,108 +3131,108 @@ yyreduce:
                                fprintf(stderr, "getconfig: Maximum include file level exceeded.\n");
                                msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.");
                        } else {
-                               const char * path = FindConfig((yyvsp[-1].String)); /* might return $2! */
+                               const char * path = FindConfig((yyvsp[(2) - (3)].String)); /* might return $2! */
                                if (!lex_push_file(path, "r")) {
                                        fprintf(stderr, "getconfig: Couldn't open <%s>\n", path);
                                        msyslog(LOG_ERR, "getconfig: Couldn't open <%s>", path);
                                }
                        }
-                       YYFREE((yyvsp[-1].String)); /* avoid leak */
+                       YYFREE((yyvsp[(2) - (3)].String)); /* avoid leak */
                }
-#line 2898 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 224:
-#line 1193 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 227:
+/* Line 1787 of yacc.c  */
+#line 1199 "../../ntpd/ntp_parser.y"
     { lex_flush_stack(); }
-#line 2904 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 225:
-#line 1195 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 228:
+/* Line 1787 of yacc.c  */
+#line 1201 "../../ntpd/ntp_parser.y"
     { /* see drift_parm below for actions */ }
-#line 2910 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 226:
-#line 1197 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
-#line 2916 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 229:
+/* Line 1787 of yacc.c  */
+#line 1203 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
-  case 227:
-#line 1199 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
-#line 2922 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 230:
+/* Line 1787 of yacc.c  */
+#line 1205 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[(2) - (2)].String_fifo)); }
     break;
 
-  case 228:
-#line 1201 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
-#line 2928 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 231:
+/* Line 1787 of yacc.c  */
+#line 1207 "../../ntpd/ntp_parser.y"
+    { APPEND_G_FIFO(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); }
     break;
 
-  case 229:
-#line 1203 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 232:
+/* Line 1787 of yacc.c  */
+#line 1209 "../../ntpd/ntp_parser.y"
     {
                        addr_opts_node *aon;
 
-                       aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
+                       aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.trap, aon);
                }
-#line 2939 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 230:
-#line 1210 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
-#line 2945 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 233:
+/* Line 1787 of yacc.c  */
+#line 1216 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[(2) - (2)].Attr_val_fifo)); }
     break;
 
-  case 235:
-#line 1225 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 238:
+/* Line 1787 of yacc.c  */
+#line 1231 "../../ntpd/ntp_parser.y"
     {
 #ifndef LEAP_SMEAR
                        yyerror("Built without LEAP_SMEAR support.");
 #endif
                }
-#line 2955 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 241:
-#line 1245 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 244:
+/* Line 1787 of yacc.c  */
+#line 1251 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
                                attr_val *av;
-                               av = create_attr_sval(T_Driftfile, (yyvsp[0].String));
+                               av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String));
                                APPEND_G_FIFO(cfgt.vars, av);
                        } else {
-                               YYFREE((yyvsp[0].String));
+                               YYFREE((yyvsp[(1) - (1)].String));
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 2970 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 242:
-#line 1256 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 245:
+/* Line 1787 of yacc.c  */
+#line 1262 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
                                attr_val *av;
-                               av = create_attr_sval(T_Driftfile, (yyvsp[-1].String));
+                               av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String));
                                APPEND_G_FIFO(cfgt.vars, av);
-                               av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double));
+                               av = create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double));
                                APPEND_G_FIFO(cfgt.vars, av);
                        } else {
-                               YYFREE((yyvsp[-1].String));
+                               YYFREE((yyvsp[(1) - (2)].String));
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 2987 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 243:
-#line 1269 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 246:
+/* Line 1787 of yacc.c  */
+#line 1275 "../../ntpd/ntp_parser.y"
     {
                        if (lex_from_file()) {
                                attr_val *av;
@@ -2997,386 +3242,386 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3001 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 244:
-#line 1282 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
-#line 3007 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 247:
+/* Line 1787 of yacc.c  */
+#line 1288 "../../ntpd/ntp_parser.y"
+    { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); }
     break;
 
-  case 246:
-#line 1288 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 249:
+/* Line 1787 of yacc.c  */
+#line 1294 "../../ntpd/ntp_parser.y"
     { (yyval.Integer) = 0; }
-#line 3013 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 247:
-#line 1293 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 250:
+/* Line 1787 of yacc.c  */
+#line 1299 "../../ntpd/ntp_parser.y"
     { (yyval.Attr_val_fifo) = NULL; }
-#line 3019 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 248:
-#line 1295 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 251:
+/* Line 1787 of yacc.c  */
+#line 1301 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 3028 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 249:
-#line 1303 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 3034 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 252:
+/* Line 1787 of yacc.c  */
+#line 1309 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
-  case 250:
-#line 1305 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 253:
+/* Line 1787 of yacc.c  */
+#line 1311 "../../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));
+                       (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), estrdup((yyvsp[(2) - (2)].Address_node)->address));
+                       destroy_address_node((yyvsp[(2) - (2)].Address_node));
                }
-#line 3043 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 251:
-#line 1313 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 254:
+/* Line 1787 of yacc.c  */
+#line 1319 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 3052 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 252:
-#line 1318 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 255:
+/* Line 1787 of yacc.c  */
+#line 1324 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 3061 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 253:
-#line 1326 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 256:
+/* Line 1787 of yacc.c  */
+#line 1332 "../../ntpd/ntp_parser.y"
     {
                        char    prefix;
                        char *  type;
 
-                       switch ((yyvsp[0].String)[0]) {
+                       switch ((yyvsp[(1) - (1)].String)[0]) {
 
                        case '+':
                        case '-':
                        case '=':
-                               prefix = (yyvsp[0].String)[0];
-                               type = (yyvsp[0].String) + 1;
+                               prefix = (yyvsp[(1) - (1)].String)[0];
+                               type = (yyvsp[(1) - (1)].String) + 1;
                                break;
 
                        default:
                                prefix = '=';
-                               type = (yyvsp[0].String);
+                               type = (yyvsp[(1) - (1)].String);
                        }
 
                        (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
-                       YYFREE((yyvsp[0].String));
+                       YYFREE((yyvsp[(1) - (1)].String));
                }
-#line 3087 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 254:
-#line 1351 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 257:
+/* Line 1787 of yacc.c  */
+#line 1357 "../../ntpd/ntp_parser.y"
     {
                        nic_rule_node *nrn;
 
-                       nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer));
+                       nrn = create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer));
                        APPEND_G_FIFO(cfgt.nic_rules, nrn);
                }
-#line 3098 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 255:
-#line 1358 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 258:
+/* Line 1787 of yacc.c  */
+#line 1364 "../../ntpd/ntp_parser.y"
     {
                        nic_rule_node *nrn;
 
-                       nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer));
+                       nrn = create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer));
                        APPEND_G_FIFO(cfgt.nic_rules, nrn);
                }
-#line 3109 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 265:
-#line 1386 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
-#line 3115 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 268:
+/* Line 1787 of yacc.c  */
+#line 1392 "../../ntpd/ntp_parser.y"
+    { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[(2) - (2)].Int_fifo)); }
     break;
 
-  case 266:
-#line 1391 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 269:
+/* Line 1787 of yacc.c  */
+#line 1397 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
-                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
+                       (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
+                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
                }
-#line 3124 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 267:
-#line 1396 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 270:
+/* Line 1787 of yacc.c  */
+#line 1402 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Int_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
+                       APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
                }
-#line 3133 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 275:
-#line 1420 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 278:
+/* Line 1787 of yacc.c  */
+#line 1426 "../../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)));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
                }
-#line 3142 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 276:
-#line 1425 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 279:
+/* Line 1787 of yacc.c  */
+#line 1431 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
                }
-#line 3151 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 277:
-#line 1433 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 280:
+/* Line 1787 of yacc.c  */
+#line 1439 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
                }
-#line 3160 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 278:
-#line 1438 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 281:
+/* Line 1787 of yacc.c  */
+#line 1444 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
                }
-#line 3169 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 279:
-#line 1446 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
-#line 3175 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 282:
+/* Line 1787 of yacc.c  */
+#line 1452 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 281:
-#line 1452 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
-#line 3181 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 284:
+/* Line 1787 of yacc.c  */
+#line 1458 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[(2) - (5)].Integer), (yyvsp[(4) - (5)].Integer)); }
     break;
 
-  case 282:
-#line 1457 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 285:
+/* Line 1787 of yacc.c  */
+#line 1463 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.String_fifo) = (yyvsp[-1].String_fifo);
-                       APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
+                       (yyval.String_fifo) = (yyvsp[(1) - (2)].String_fifo);
+                       APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(2) - (2)].String)));
                }
-#line 3190 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 283:
-#line 1462 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 286:
+/* Line 1787 of yacc.c  */
+#line 1468 "../../ntpd/ntp_parser.y"
     {
                        (yyval.String_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
+                       APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(1) - (1)].String)));
                }
-#line 3199 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 284:
-#line 1470 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 287:
+/* Line 1787 of yacc.c  */
+#line 1476 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
-                       APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
+                       (yyval.Address_fifo) = (yyvsp[(1) - (2)].Address_fifo);
+                       APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(2) - (2)].Address_node));
                }
-#line 3208 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 285:
-#line 1475 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 288:
+/* Line 1787 of yacc.c  */
+#line 1481 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Address_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
+                       APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(1) - (1)].Address_node));
                }
-#line 3217 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 286:
-#line 1483 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 289:
+/* Line 1787 of yacc.c  */
+#line 1489 "../../ntpd/ntp_parser.y"
     {
-                       if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
+                       if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) {
                                yyerror("Integer value is not boolean (0 or 1). Assuming 1");
                                (yyval.Integer) = 1;
                        } else {
-                               (yyval.Integer) = (yyvsp[0].Integer);
+                               (yyval.Integer) = (yyvsp[(1) - (1)].Integer);
                        }
                }
-#line 3230 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 287:
-#line 1491 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 290:
+/* Line 1787 of yacc.c  */
+#line 1497 "../../ntpd/ntp_parser.y"
     { (yyval.Integer) = 1; }
-#line 3236 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 288:
-#line 1492 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 291:
+/* Line 1787 of yacc.c  */
+#line 1498 "../../ntpd/ntp_parser.y"
     { (yyval.Integer) = 0; }
-#line 3242 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 289:
-#line 1496 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Double) = (double)(yyvsp[0].Integer); }
-#line 3248 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 292:
+/* Line 1787 of yacc.c  */
+#line 1502 "../../ntpd/ntp_parser.y"
+    { (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); }
     break;
 
-  case 291:
-#line 1507 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 294:
+/* Line 1787 of yacc.c  */
+#line 1513 "../../ntpd/ntp_parser.y"
     {
                        sim_node *sn;
 
-                       sn =  create_sim_node((yyvsp[-2].Attr_val_fifo), (yyvsp[-1].Sim_server_fifo));
+                       sn =  create_sim_node((yyvsp[(3) - (5)].Attr_val_fifo), (yyvsp[(4) - (5)].Sim_server_fifo));
                        APPEND_G_FIFO(cfgt.sim_details, sn);
 
                        /* Revert from ; to \n for end-of-command */
                        old_config_style = 1;
                }
-#line 3262 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 292:
-#line 1524 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 295:
+/* Line 1787 of yacc.c  */
+#line 1530 "../../ntpd/ntp_parser.y"
     { old_config_style = 0; }
-#line 3268 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 293:
-#line 1529 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 296:
+/* Line 1787 of yacc.c  */
+#line 1535 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val));
                }
-#line 3277 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 294:
-#line 1534 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 297:
+/* Line 1787 of yacc.c  */
+#line 1540 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val));
                }
-#line 3286 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 295:
-#line 1542 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3292 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 298:
+/* Line 1787 of yacc.c  */
+#line 1548 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 298:
-#line 1552 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 301:
+/* Line 1787 of yacc.c  */
+#line 1558 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo);
-                       APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
+                       (yyval.Sim_server_fifo) = (yyvsp[(1) - (2)].Sim_server_fifo);
+                       APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(2) - (2)].Sim_server));
                }
-#line 3301 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 299:
-#line 1557 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 302:
+/* Line 1787 of yacc.c  */
+#line 1563 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Sim_server_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
+                       APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(1) - (1)].Sim_server));
                }
-#line 3310 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 300:
-#line 1565 "../../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 3316 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 303:
+/* Line 1787 of yacc.c  */
+#line 1571 "../../ntpd/ntp_parser.y"
+    { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Sim_script_fifo))); }
     break;
 
-  case 301:
-#line 1570 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Double) = (yyvsp[-1].Double); }
-#line 3322 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 304:
+/* Line 1787 of yacc.c  */
+#line 1576 "../../ntpd/ntp_parser.y"
+    { (yyval.Double) = (yyvsp[(3) - (4)].Double); }
     break;
 
-  case 302:
-#line 1575 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Address_node) = (yyvsp[0].Address_node); }
-#line 3328 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 305:
+/* Line 1787 of yacc.c  */
+#line 1581 "../../ntpd/ntp_parser.y"
+    { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); }
     break;
 
-  case 303:
-#line 1580 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 306:
+/* Line 1787 of yacc.c  */
+#line 1586 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo);
-                       APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
+                       (yyval.Sim_script_fifo) = (yyvsp[(1) - (2)].Sim_script_fifo);
+                       APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(2) - (2)].Sim_script));
                }
-#line 3337 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 304:
-#line 1585 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 307:
+/* Line 1787 of yacc.c  */
+#line 1591 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Sim_script_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
+                       APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(1) - (1)].Sim_script));
                }
-#line 3346 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 305:
-#line 1593 "../../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 3352 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 308:
+/* Line 1787 of yacc.c  */
+#line 1599 "../../ntpd/ntp_parser.y"
+    { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Attr_val_fifo))); }
     break;
 
-  case 306:
-#line 1598 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 309:
+/* Line 1787 of yacc.c  */
+#line 1604 "../../ntpd/ntp_parser.y"
     {
-                       (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
+                       (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo);
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val));
                }
-#line 3361 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 307:
-#line 1603 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 310:
+/* Line 1787 of yacc.c  */
+#line 1609 "../../ntpd/ntp_parser.y"
     {
                        (yyval.Attr_val_fifo) = NULL;
-                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
+                       APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val));
                }
-#line 3370 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 308:
-#line 1611 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3376 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+  case 311:
+/* Line 1787 of yacc.c  */
+#line 1617 "../../ntpd/ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
 
-#line 3380 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+/* Line 1787 of yacc.c  */
+#line 3625 "ntp_parser.c"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3398,7 +3643,7 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-  /* Now 'shift' the result of the reduction.  Determine what state
+  /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
 
@@ -3413,9 +3658,9 @@ yyreduce:
   goto yynewstate;
 
 
-/*--------------------------------------.
-| yyerrlab -- here on detecting error |
-`--------------------------------------*/
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
      user semantic actions for why this is necessary.  */
@@ -3466,20 +3711,20 @@ yyerrlab:
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
+        error, discard it.  */
 
       if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
+       {
+         /* Return failure if at end of input.  */
+         if (yychar == YYEOF)
+           YYABORT;
+       }
       else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval);
-          yychar = YYEMPTY;
-        }
+       {
+         yydestruct ("Error: discarding",
+                     yytoken, &yylval);
+         yychar = YYEMPTY;
+       }
     }
 
   /* Else will try to reuse lookahead token after shifting the error
@@ -3498,7 +3743,7 @@ yyerrorlab:
   if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-  /* Do not reclaim the symbols of the rule whose action triggered
+  /* Do not reclaim the symbols of the rule which action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
   yylen = 0;
@@ -3511,29 +3756,29 @@ yyerrorlab:
 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
   for (;;)
     {
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-        YYABORT;
+       YYABORT;
 
 
       yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp);
+                 yystos[yystate], yyvsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -3584,14 +3829,14 @@ yyreturn:
       yydestruct ("Cleanup: discarding lookahead",
                   yytoken, &yylval);
     }
-  /* Do not reclaim the symbols of the rule whose action triggered
+  /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
   YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp);
+                 yystos[*yyssp], yyvsp);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
@@ -3602,9 +3847,13 @@ yyreturn:
   if (yymsg != yymsgbuf)
     YYSTACK_FREE (yymsg);
 #endif
-  return yyresult;
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
 }
-#line 1622 "../../ntpd/ntp_parser.y" /* yacc.c:1906  */
+
+
+/* Line 2050 of yacc.c  */
+#line 1628 "../../ntpd/ntp_parser.y"
 
 
 void
index 1ec7f8cc69af856cb085a9c442d83c1c1f54d0d3..ae729b5f83b76567d8af53cfa8dcfc321c238a06 100644 (file)
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
 
 /* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
+   
+      Copyright (C) 1984, 1989-1990, 2000-2013 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
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    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/>.  */
 
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    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
-/* Debug traces.  */
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
+# define YY_YY_NTP_PARSER_H_INCLUDED
+/* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
 #endif
 extern int yydebug;
 #endif
 
-/* Token type.  */
+/* Tokens.  */
 #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_Bclient = 267,
-    T_Beacon = 268,
-    T_Broadcast = 269,
-    T_Broadcastclient = 270,
-    T_Broadcastdelay = 271,
-    T_Burst = 272,
-    T_Calibrate = 273,
-    T_Ceiling = 274,
-    T_Clockstats = 275,
-    T_Cohort = 276,
-    T_ControlKey = 277,
-    T_Crypto = 278,
-    T_Cryptostats = 279,
-    T_Ctl = 280,
-    T_Day = 281,
-    T_Default = 282,
-    T_Digest = 283,
-    T_Disable = 284,
-    T_Discard = 285,
-    T_Dispersion = 286,
-    T_Double = 287,
-    T_Driftfile = 288,
-    T_Drop = 289,
-    T_Dscp = 290,
-    T_Ellipsis = 291,
-    T_Enable = 292,
-    T_End = 293,
-    T_False = 294,
-    T_File = 295,
-    T_Filegen = 296,
-    T_Filenum = 297,
-    T_Flag1 = 298,
-    T_Flag2 = 299,
-    T_Flag3 = 300,
-    T_Flag4 = 301,
-    T_Flake = 302,
-    T_Floor = 303,
-    T_Freq = 304,
-    T_Fudge = 305,
-    T_Host = 306,
-    T_Huffpuff = 307,
-    T_Iburst = 308,
-    T_Ident = 309,
-    T_Ignore = 310,
-    T_Incalloc = 311,
-    T_Incmem = 312,
-    T_Initalloc = 313,
-    T_Initmem = 314,
-    T_Includefile = 315,
-    T_Integer = 316,
-    T_Interface = 317,
-    T_Intrange = 318,
-    T_Io = 319,
-    T_Ipv4 = 320,
-    T_Ipv4_flag = 321,
-    T_Ipv6 = 322,
-    T_Ipv6_flag = 323,
-    T_Kernel = 324,
-    T_Key = 325,
-    T_Keys = 326,
-    T_Keysdir = 327,
-    T_Kod = 328,
-    T_Mssntp = 329,
-    T_Leapfile = 330,
-    T_Leapsmearinterval = 331,
-    T_Limited = 332,
-    T_Link = 333,
-    T_Listen = 334,
-    T_Logconfig = 335,
-    T_Logfile = 336,
-    T_Loopstats = 337,
-    T_Lowpriotrap = 338,
-    T_Manycastclient = 339,
-    T_Manycastserver = 340,
-    T_Mask = 341,
-    T_Maxage = 342,
-    T_Maxclock = 343,
-    T_Maxdepth = 344,
-    T_Maxdist = 345,
-    T_Maxmem = 346,
-    T_Maxpoll = 347,
-    T_Mdnstries = 348,
-    T_Mem = 349,
-    T_Memlock = 350,
-    T_Minclock = 351,
-    T_Mindepth = 352,
-    T_Mindist = 353,
-    T_Minimum = 354,
-    T_Minpoll = 355,
-    T_Minsane = 356,
-    T_Mode = 357,
-    T_Mode7 = 358,
-    T_Monitor = 359,
-    T_Month = 360,
-    T_Mru = 361,
-    T_Multicastclient = 362,
-    T_Nic = 363,
-    T_Nolink = 364,
-    T_Nomodify = 365,
-    T_Nomrulist = 366,
-    T_None = 367,
-    T_Nonvolatile = 368,
-    T_Nopeer = 369,
-    T_Noquery = 370,
-    T_Noselect = 371,
-    T_Noserve = 372,
-    T_Notrap = 373,
-    T_Notrust = 374,
-    T_Ntp = 375,
-    T_Ntpport = 376,
-    T_NtpSignDsocket = 377,
-    T_Orphan = 378,
-    T_Orphanwait = 379,
-    T_Panic = 380,
-    T_Peer = 381,
-    T_Peerstats = 382,
-    T_Phone = 383,
-    T_Pid = 384,
-    T_Pidfile = 385,
-    T_Pool = 386,
-    T_Port = 387,
-    T_Preempt = 388,
-    T_Prefer = 389,
-    T_Protostats = 390,
-    T_Pw = 391,
-    T_Randfile = 392,
-    T_Rawstats = 393,
-    T_Refid = 394,
-    T_Requestkey = 395,
-    T_Reset = 396,
-    T_Restrict = 397,
-    T_Revoke = 398,
-    T_Rlimit = 399,
-    T_Saveconfigdir = 400,
-    T_Server = 401,
-    T_Setvar = 402,
-    T_Source = 403,
-    T_Stacksize = 404,
-    T_Statistics = 405,
-    T_Stats = 406,
-    T_Statsdir = 407,
-    T_Step = 408,
-    T_Stepback = 409,
-    T_Stepfwd = 410,
-    T_Stepout = 411,
-    T_Stratum = 412,
-    T_String = 413,
-    T_Sys = 414,
-    T_Sysstats = 415,
-    T_Tick = 416,
-    T_Time1 = 417,
-    T_Time2 = 418,
-    T_Timer = 419,
-    T_Timingstats = 420,
-    T_Tinker = 421,
-    T_Tos = 422,
-    T_Trap = 423,
-    T_True = 424,
-    T_Trustedkey = 425,
-    T_Ttl = 426,
-    T_Type = 427,
-    T_U_int = 428,
-    T_Unconfig = 429,
-    T_Unpeer = 430,
-    T_Version = 431,
-    T_WanderThreshold = 432,
-    T_Week = 433,
-    T_Wildcard = 434,
-    T_Xleave = 435,
-    T_Year = 436,
-    T_Flag = 437,
-    T_EOC = 438,
-    T_Simulate = 439,
-    T_Beep_Delay = 440,
-    T_Sim_Duration = 441,
-    T_Server_Offset = 442,
-    T_Duration = 443,
-    T_Freq_Offset = 444,
-    T_Wander = 445,
-    T_Jitter = 446,
-    T_Prop_Delay = 447,
-    T_Proc_Delay = 448
-  };
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   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_Bclient = 267,
+     T_Beacon = 268,
+     T_Broadcast = 269,
+     T_Broadcastclient = 270,
+     T_Broadcastdelay = 271,
+     T_Burst = 272,
+     T_Calibrate = 273,
+     T_Ceiling = 274,
+     T_Clockstats = 275,
+     T_Cohort = 276,
+     T_ControlKey = 277,
+     T_Crypto = 278,
+     T_Cryptostats = 279,
+     T_Ctl = 280,
+     T_Day = 281,
+     T_Default = 282,
+     T_Digest = 283,
+     T_Disable = 284,
+     T_Discard = 285,
+     T_Dispersion = 286,
+     T_Double = 287,
+     T_Driftfile = 288,
+     T_Drop = 289,
+     T_Dscp = 290,
+     T_Ellipsis = 291,
+     T_Enable = 292,
+     T_End = 293,
+     T_False = 294,
+     T_File = 295,
+     T_Filegen = 296,
+     T_Filenum = 297,
+     T_Flag1 = 298,
+     T_Flag2 = 299,
+     T_Flag3 = 300,
+     T_Flag4 = 301,
+     T_Flake = 302,
+     T_Floor = 303,
+     T_Freq = 304,
+     T_Fudge = 305,
+     T_Host = 306,
+     T_Huffpuff = 307,
+     T_Iburst = 308,
+     T_Ident = 309,
+     T_Ignore = 310,
+     T_Incalloc = 311,
+     T_Incmem = 312,
+     T_Initalloc = 313,
+     T_Initmem = 314,
+     T_Includefile = 315,
+     T_Integer = 316,
+     T_Interface = 317,
+     T_Intrange = 318,
+     T_Io = 319,
+     T_Ipv4 = 320,
+     T_Ipv4_flag = 321,
+     T_Ipv6 = 322,
+     T_Ipv6_flag = 323,
+     T_Kernel = 324,
+     T_Key = 325,
+     T_Keys = 326,
+     T_Keysdir = 327,
+     T_Kod = 328,
+     T_Mssntp = 329,
+     T_Leapfile = 330,
+     T_Leapsmearinterval = 331,
+     T_Limited = 332,
+     T_Link = 333,
+     T_Listen = 334,
+     T_Logconfig = 335,
+     T_Logfile = 336,
+     T_Loopstats = 337,
+     T_Lowpriotrap = 338,
+     T_Manycastclient = 339,
+     T_Manycastserver = 340,
+     T_Mask = 341,
+     T_Maxage = 342,
+     T_Maxclock = 343,
+     T_Maxdepth = 344,
+     T_Maxdist = 345,
+     T_Maxmem = 346,
+     T_Maxpoll = 347,
+     T_Mdnstries = 348,
+     T_Mem = 349,
+     T_Memlock = 350,
+     T_Minclock = 351,
+     T_Mindepth = 352,
+     T_Mindist = 353,
+     T_Minimum = 354,
+     T_Minpoll = 355,
+     T_Minsane = 356,
+     T_Mode = 357,
+     T_Mode7 = 358,
+     T_Monitor = 359,
+     T_Month = 360,
+     T_Mru = 361,
+     T_Multicastclient = 362,
+     T_Nic = 363,
+     T_Nolink = 364,
+     T_Nomodify = 365,
+     T_Nomrulist = 366,
+     T_None = 367,
+     T_Nonvolatile = 368,
+     T_Nopeer = 369,
+     T_Noquery = 370,
+     T_Noselect = 371,
+     T_Noserve = 372,
+     T_Notrap = 373,
+     T_Notrust = 374,
+     T_Ntp = 375,
+     T_Ntpport = 376,
+     T_NtpSignDsocket = 377,
+     T_Orphan = 378,
+     T_Orphanwait = 379,
+     T_Panic = 380,
+     T_Peer = 381,
+     T_Peerstats = 382,
+     T_Phone = 383,
+     T_Pid = 384,
+     T_Pidfile = 385,
+     T_Pool = 386,
+     T_Port = 387,
+     T_Preempt = 388,
+     T_Prefer = 389,
+     T_Protostats = 390,
+     T_Pw = 391,
+     T_Randfile = 392,
+     T_Rawstats = 393,
+     T_Refid = 394,
+     T_Requestkey = 395,
+     T_Reset = 396,
+     T_Restrict = 397,
+     T_Revoke = 398,
+     T_Rlimit = 399,
+     T_Saveconfigdir = 400,
+     T_Server = 401,
+     T_Setvar = 402,
+     T_Source = 403,
+     T_Stacksize = 404,
+     T_Statistics = 405,
+     T_Stats = 406,
+     T_Statsdir = 407,
+     T_Step = 408,
+     T_Stepback = 409,
+     T_Stepfwd = 410,
+     T_Stepout = 411,
+     T_Stratum = 412,
+     T_String = 413,
+     T_Sys = 414,
+     T_Sysstats = 415,
+     T_Tick = 416,
+     T_Time1 = 417,
+     T_Time2 = 418,
+     T_Timer = 419,
+     T_Timingstats = 420,
+     T_Tinker = 421,
+     T_Tos = 422,
+     T_Trap = 423,
+     T_True = 424,
+     T_Trustedkey = 425,
+     T_Ttl = 426,
+     T_Type = 427,
+     T_U_int = 428,
+     T_UEcrypto = 429,
+     T_UEcryptonak = 430,
+     T_UEdigest = 431,
+     T_Unconfig = 432,
+     T_Unpeer = 433,
+     T_Version = 434,
+     T_WanderThreshold = 435,
+     T_Week = 436,
+     T_Wildcard = 437,
+     T_Xleave = 438,
+     T_Year = 439,
+     T_Flag = 440,
+     T_EOC = 441,
+     T_Simulate = 442,
+     T_Beep_Delay = 443,
+     T_Sim_Duration = 444,
+     T_Server_Offset = 445,
+     T_Duration = 446,
+     T_Freq_Offset = 447,
+     T_Wander = 448,
+     T_Jitter = 449,
+     T_Prop_Delay = 450,
+     T_Proc_Delay = 451
+   };
 #endif
 /* Tokens.  */
 #define T_Abbrev 258
@@ -410,33 +414,37 @@ extern int yydebug;
 #define T_Ttl 426
 #define T_Type 427
 #define T_U_int 428
-#define T_Unconfig 429
-#define T_Unpeer 430
-#define T_Version 431
-#define T_WanderThreshold 432
-#define T_Week 433
-#define T_Wildcard 434
-#define T_Xleave 435
-#define T_Year 436
-#define T_Flag 437
-#define T_EOC 438
-#define T_Simulate 439
-#define T_Beep_Delay 440
-#define T_Sim_Duration 441
-#define T_Server_Offset 442
-#define T_Duration 443
-#define T_Freq_Offset 444
-#define T_Wander 445
-#define T_Jitter 446
-#define T_Prop_Delay 447
-#define T_Proc_Delay 448
+#define T_UEcrypto 429
+#define T_UEcryptonak 430
+#define T_UEdigest 431
+#define T_Unconfig 432
+#define T_Unpeer 433
+#define T_Version 434
+#define T_WanderThreshold 435
+#define T_Week 436
+#define T_Wildcard 437
+#define T_Xleave 438
+#define T_Year 439
+#define T_Flag 440
+#define T_EOC 441
+#define T_Simulate 442
+#define T_Beep_Delay 443
+#define T_Sim_Duration 444
+#define T_Server_Offset 445
+#define T_Duration 446
+#define T_Freq_Offset 447
+#define T_Wander 448
+#define T_Jitter 449
+#define T_Prop_Delay 450
+#define T_Proc_Delay 451
+
+
 
-/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
+typedef union YYSTYPE
 {
-#line 51 "../../ntpd/ntp_parser.y" /* yacc.c:1909  */
+/* Line 2053 of yacc.c  */
+#line 51 "../../ntpd/ntp_parser.y"
 
        char *                  String;
        double                  Double;
@@ -455,15 +463,29 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 459 "../../ntpd/ntp_parser.h" /* yacc.c:1909  */
-};
+
+/* Line 2053 of yacc.c  */
+#line 469 "ntp_parser.h"
+} YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
-
 extern YYSTYPE yylval;
 
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
-#endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED  */
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED  */
index a4267e1a8d09a34d6e5e5eaec8afc8c31061c710..92b438a4916e662f3540cd03a0dea6a48d8ef716 100644 (file)
 %token <Integer>       T_Ttl
 %token <Integer>       T_Type
 %token <Integer>       T_U_int                 /* Not a token */
+%token <Integer>       T_UEcrypto
+%token <Integer>       T_UEcryptonak
+%token <Integer>       T_UEdigest
 %token <Integer>       T_Unconfig
 %token <Integer>       T_Unpeer
 %token <Integer>       T_Version
@@ -1083,6 +1086,9 @@ system_option_flag_keyword
 system_option_local_flag_keyword
        :       T_Mode7
        |       T_Stats
+       |       T_UEcrypto
+       |       T_UEcryptonak
+       |       T_UEdigest
        ;
 
 /* Tinker Commands
index f7704722a9baf17ebb5d9fceb66711d1d0aa586b..9887978473d15e9048f27a6d6697249dcc3b388d 100644 (file)
@@ -153,6 +153,19 @@ u_long     sys_declined;           /* declined */
 u_long sys_limitrejected;      /* rate exceeded */
 u_long sys_kodsent;            /* KoD sent */
 
+/*
+ * Mechanism knobs: how soon do we unpeer()?
+ *
+ * The default way is "on-receipt".  If this was a packet from a
+ * well-behaved source, on-receipt will offer the fastest recovery.
+ * If this was from a DoS attack, the default way makes it easier
+ * for a bad-guy to DoS us.  So look and see what bites you harder
+ * and choose according to your environment.
+ */
+int unpeer_crypto_early                = 1;    /* bad crypto (TEST9) */
+int unpeer_crypto_nak_early    = 1;    /* crypto_NAK (TEST5) */
+int unpeer_digest_early                = 1;    /* bad digest (TEST5) */
+
 static int kiss_code_check(u_char hisleap, u_char hisstratum, u_char hismode, u_int32 refid);
 static double  root_distance   (struct peer *);
 static void    clock_combine   (peer_select *, int, int);
@@ -1424,7 +1437,9 @@ receive(
                peer->flash |= TEST5;           /* bad auth */
                peer->badauth++;
                if (peer->flags & FLAG_PREEMPT) {
-                       unpeer(peer);
+                       if (unpeer_crypto_nak_early) {
+                               unpeer(peer);
+                       }
                        return;
                }
 #ifdef AUTOKEY
@@ -1450,7 +1465,9 @@ receive(
                    && (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE))
                        fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask);
                if (peer->flags & FLAG_PREEMPT) {
-                       unpeer(peer);
+                       if (unpeer_digest_early) {
+                               unpeer(peer);
+                       }
                        return;
                }
 #ifdef AUTOKEY
@@ -1560,8 +1577,11 @@ receive(
                                    "crypto error");
                                peer_clear(peer, "CRYP");
                                peer->flash |= TEST9;   /* bad crypt */
-                               if (peer->flags & FLAG_PREEMPT)
-                                       unpeer(peer);
+                               if (peer->flags & FLAG_PREEMPT) {
+                                       if (unpeer_crypto_early) {
+                                               unpeer(peer);
+                                       }
+                               }
                        }
                        return;
                }
@@ -4358,6 +4378,22 @@ proto_config(
                        io_multicast_del(svalue);
                break;
 
+       /*
+        * Unpeer Early policy choices
+        */
+
+       case PROTO_UECRYPTO:    /* Crypto */
+               unpeer_crypto_early = value;
+               break;
+
+       case PROTO_UECRYPTONAK: /* Crypto_NAK */
+               unpeer_crypto_nak_early = value;
+               break;
+
+       case PROTO_UEDIGEST:    /* Digest */
+               unpeer_digest_early = value;
+               break;
+
        default:
                msyslog(LOG_NOTICE,
                    "proto: unsupported option %d", item);