From 63d3cb7ff4a7fe06b65a04ddce3d3df74846f077 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Fri, 6 Feb 2009 12:51:45 +0000 Subject: [PATCH] log-time-ascii option git-svn-id: file:///svn/unbound/trunk@1465 be551aaa-1e26-0410-a405-d3ace91eadb9 --- config.h.in | 6 + configure | 4 +- configure.ac | 2 +- doc/Changelog | 2 + doc/example.conf.in | 3 + doc/unbound.conf.5.in | 5 + util/config_file.c | 2 + util/config_file.h | 2 + util/configlexer.c | 1532 +++++++++++++++++++++-------------------- util/configlexer.lex | 1 + util/configparser.c | 753 ++++++++++---------- util/configparser.h | 6 +- util/configparser.y | 13 +- util/log.c | 23 +- util/log.h | 8 + 15 files changed, 1225 insertions(+), 1137 deletions(-) diff --git a/config.h.in b/config.h.in index c396b2f40..1e2b8ffd0 100644 --- a/config.h.in +++ b/config.h.in @@ -118,6 +118,9 @@ /* Define to 1 if you have the `ldns' library (-lldns). */ #undef HAVE_LIBLDNS +/* Define to 1 if you have the `localtime_r' function. */ +#undef HAVE_LOCALTIME_R + /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC @@ -212,6 +215,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H +/* Define to 1 if you have the `strftime' function. */ +#undef HAVE_STRFTIME + /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H diff --git a/configure b/configure index 6efbac7ce..170b070f7 100755 --- a/configure +++ b/configure @@ -25284,7 +25284,9 @@ fi -for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid glob initgroups daemon + + +for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid glob initgroups daemon strftime localtime_r do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 diff --git a/configure.ac b/configure.ac index 5cd331b2b..7c651a671 100644 --- a/configure.ac +++ b/configure.ac @@ -854,7 +854,7 @@ AC_CHECK_GETADDRINFO_WITH_INCLUDES if test $ac_cv_func_getaddrinfo = no; then AC_LIBOBJ([fake-rfc2553]) fi -AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid glob initgroups daemon]) +AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid glob initgroups daemon strftime localtime_r]) # check if setreuid en setregid fail, on MacOSX10.4(darwin8). if echo $build_os | grep darwin8 > /dev/null; then diff --git a/doc/Changelog b/doc/Changelog index 4193c6db3..1e69677a6 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -8,6 +8,8 @@ Does not allow literal newlines inside quoted strings anymore. - verbosity level 5 logs customer IP for new requestlist entries. - test fix, lexer and cancel test. + - new option log-time-ascii: yes if you enable it prints timestamps + in the log file as Feb 06 13:45:26 (just like syslog does). 5 February 2009: Wouter - ldns 1.5.0 rc as tarball included. diff --git a/doc/example.conf.in b/doc/example.conf.in index d801bb620..a1d7add2a 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -192,6 +192,9 @@ server: # log to, with identity "unbound". If yes, it overrides the logfile. # use-syslog: yes + # print UTC timestamp in ascii to logfile, default is secs since 1970. + # log-time-ascii: no + # the pid file. Can be an absolute path outside of chroot/work dir. # pidfile: "@UNBOUND_PIDFILE@" diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 3d9897aa9..007b247fb 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -337,6 +337,11 @@ The log facility LOG_DAEMON is used, with identity "unbound". The logfile setting is overridden when use\-syslog is turned on. The default is to log to syslog. .TP +.B log\-time\-ascii: \fI +Sets logfile lines to use a timestamp in UTC ascii. Default is no, which +prints the seconds since 1970 in brackets. No effect if using syslog, in +that case syslog formats the timestamp printed into the log files. +.TP .B pidfile: \fI The process id is written to the file. Default is "@UNBOUND_PIDFILE@". So, diff --git a/util/config_file.c b/util/config_file.c index 8024c6256..98f02110d 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -83,6 +83,7 @@ config_create() cfg->do_udp = 1; cfg->do_tcp = 1; cfg->use_syslog = 1; + cfg->log_time_ascii = 0; #ifndef USE_WINSOCK cfg->outgoing_num_ports = 256; #else @@ -805,6 +806,7 @@ void config_apply(struct config_file* config) { MAX_TTL = (uint32_t)config->max_ttl; + log_set_time_asc(config->log_time_ascii); } /** diff --git a/util/config_file.h b/util/config_file.h index 04746c0f9..73259f381 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -171,6 +171,8 @@ struct config_file { /** should log messages be sent to syslogd */ int use_syslog; + /** log timestamp in ascii UTC */ + int log_time_ascii; /** do not report identity (id.server, hostname.bind) */ int hide_identity; diff --git a/util/configlexer.c b/util/configlexer.c index 6643f38b7..98f14dc70 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 113 -#define YY_END_OF_BUFFER 114 +#define YY_NUM_RULES 114 +#define YY_END_OF_BUFFER 115 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -370,123 +370,124 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1046] = +static yyconst flex_int16_t yy_accept[1058] = { 0, - 1, 1, 95, 95, 99, 99, 103, 103, 107, 107, - 1, 1, 114, 111, 1, 93, 93, 112, 111, 112, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 95, - 96, 97, 113, 99, 100, 101, 113, 106, 103, 104, - 105, 113, 113, 107, 108, 109, 113, 110, 1, 94, - 110, 98, 113, 110, 111, 0, 1, 0, 111, 0, - 2, 0, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 1, 1, 96, 96, 100, 100, 104, 104, 108, 108, + 1, 1, 115, 112, 1, 94, 94, 113, 112, 113, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 96, + 97, 98, 114, 100, 101, 102, 114, 107, 104, 105, + 106, 114, 114, 108, 109, 110, 114, 111, 1, 95, + 111, 99, 114, 111, 112, 0, 1, 0, 112, 0, + 2, 0, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 111, 111, 111, 95, 0, - 99, 0, 106, 0, 103, 107, 0, 110, 0, 110, - 0, 110, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 110, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 96, 0, + 100, 0, 107, 0, 104, 108, 0, 111, 0, 111, + 0, 111, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 111, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 50, 111, - 111, 111, 111, 111, 6, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 110, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 111, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 50, 112, 112, 112, 112, 112, 6, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 111, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 110, 111, 111, 20, 111, 111, - 111, 111, 12, 13, 111, 15, 14, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 3, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 110, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 111, 112, 112, + 20, 112, 112, 112, 112, 12, 13, 112, 15, 14, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 3, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 111, 112, 112, 112, 112, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 102, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 23, 111, 111, 111, 111, - 111, 111, 111, 24, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 63, 102, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 62, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 103, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 23, 112, 112, 112, 112, 112, 112, 112, 24, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 63, 103, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 62, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 111, 111, 21, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 22, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 17, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 51, 52, 111, 49, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 5, - 111, 111, 111, 111, 111, 111, 111, 111, 65, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 21, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 22, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 17, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 51, 52, 112, 49, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 5, 112, 112, 112, + 112, 112, 112, 112, 112, 65, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 80, 79, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 25, 111, 111, 111, 111, - 53, 111, 111, 111, 111, 111, 78, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 42, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 4, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 81, 80, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 25, 112, 112, 112, 112, 53, 112, + 112, 112, 112, 112, 78, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 42, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 4, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 111, 111, 111, 111, 111, 111, 111, 88, 111, 16, - 111, 111, 55, 56, 54, 111, 111, 111, 111, 111, - 61, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 69, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 31, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 60, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 64, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 89, 112, 16, 112, + 112, 55, 56, 54, 112, 112, 112, 112, 112, 61, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 69, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 31, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 60, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 64, 112, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 71, 111, 111, 111, 111, 59, 111, 86, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 32, 33, 111, 38, 74, 111, 81, - 111, 27, 111, 76, 111, 111, 111, 111, 111, 7, - 111, 48, 85, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 66, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 75, 26, 28, 111, 111, 111, - 111, 111, 47, 111, 111, 111, 89, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 71, 112, 112, 112, 112, 59, 112, 87, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 32, 33, 112, 38, 74, 112, + 82, 79, 112, 27, 112, 76, 112, 112, 112, 112, + 112, 7, 112, 48, 86, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 66, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 75, 26, 28, 112, - 111, 111, 111, 45, 111, 111, 111, 111, 111, 111, - 91, 111, 111, 111, 111, 111, 111, 111, 11, 111, - 111, 111, 111, 111, 111, 10, 111, 111, 29, 111, - 90, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 92, 87, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 34, 111, 111, 111, 111, 111, 30, 111, - 111, 111, 67, 68, 111, 111, 111, 70, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 18, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 84, 111, 111, 111, 111, 111, 111, 19, + 112, 112, 112, 112, 47, 112, 112, 112, 90, 112, + 112, 112, 112, 112, 112, 45, 112, 112, 112, 112, + 112, 112, 92, 112, 112, 112, 112, 112, 112, 112, + 11, 112, 112, 112, 112, 112, 112, 10, 112, 112, + 29, 112, 91, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 93, 88, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 34, 112, 112, 112, 112, 112, + 30, 112, 112, 112, 67, 68, 112, 112, 112, 70, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 18, 112, 112, 112, 112, 112, 112, 112, - 111, 9, 111, 111, 82, 39, 111, 111, 111, 73, - 57, 111, 111, 41, 44, 40, 111, 35, 111, 8, - 111, 111, 72, 111, 111, 111, 36, 111, 83, 111, - 111, 58, 43, 37, 111, 111, 111, 111, 46, 111, - 111, 111, 111, 77, 0 + 112, 112, 112, 112, 85, 112, 112, 112, 112, 112, + 112, 19, 112, 9, 112, 112, 83, 39, 112, 112, + 112, 73, 57, 112, 112, 41, 44, 40, 112, 35, + 112, 8, 112, 112, 72, 112, 112, 112, 36, 112, + 84, 112, 112, 58, 43, 37, 112, 112, 112, 112, + 46, 112, 112, 112, 112, 77, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -529,247 +530,251 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1060] = +static yyconst flex_int16_t yy_base[1072] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2026, 2012, 50, 2115, 2115, 2115, 129, 94, + 87, 108, 2050, 2035, 50, 2135, 2135, 2135, 129, 94, 33, 124, 94, 49, 74, 61, 91, 92, 110, 111, - 112, 133, 50, 135, 137, 136, 145, 143, 159, 2010, - 2115, 2115, 122, 2009, 2115, 2115, 157, 2008, 2018, 2115, - 2115, 2115, 176, 1873, 2115, 2115, 180, 1729, 180, 2115, - 185, 2115, 189, 90, 1646, 195, 199, 1586, 206, 1428, - 2115, 1276, 158, 190, 122, 116, 191, 182, 207, 199, + 112, 133, 50, 135, 137, 136, 145, 143, 159, 2032, + 2135, 2135, 122, 2031, 2135, 2135, 157, 2030, 2040, 2135, + 2135, 2135, 176, 2028, 2135, 2135, 180, 2027, 180, 2135, + 185, 2135, 189, 90, 1749, 195, 199, 1280, 206, 1128, + 2135, 1024, 158, 190, 122, 116, 191, 182, 207, 199, 203, 208, 210, 211, 212, 147, 213, 217, 223, 222, 228, 230, 231, 225, 235, 233, 234, 236, 240, 242, - 246, 247, 252, 250, 253, 254, 72, 256, 1212, 266, - 1161, 269, 764, 286, 752, 374, 274, 307, 290, 296, + 246, 247, 252, 250, 253, 254, 72, 256, 854, 266, + 752, 269, 617, 286, 530, 481, 274, 426, 290, 296, 211, 269, 262, 283, 289, 273, 292, 299, 305, 295, 298, 302, 303, 301, 312, 310, 311, 313, 322, 329, - 331, 318, 340, 336, 343, 347, 344, 346, 334, 323, - 348, 349, 350, 353, 356, 357, 358, 360, 361, 371, - 372, 368, 320, 364, 373, 377, 380, 381, 385, 390, - 388, 382, 393, 395, 394, 400, 402, 410, 403, 406, - 409, 411, 413, 414, 415, 416, 420, 421, 432, 425, - 436, 430, 437, 440, 442, 443, 438, 451, 445, 448, + 336, 318, 337, 335, 343, 346, 344, 347, 334, 323, + 348, 349, 350, 352, 356, 357, 358, 360, 361, 371, + 372, 368, 373, 364, 375, 377, 378, 381, 390, 393, + 382, 386, 397, 395, 388, 403, 405, 411, 407, 408, + 307, 412, 414, 409, 415, 416, 417, 422, 423, 436, + 420, 430, 424, 425, 434, 446, 447, 442, 454, 450, - 454, 460, 456, 457, 459, 464, 462, 484, 466, 469, - 468, 471, 475, 472, 479, 482, 474, 480, 506, 491, - 493, 496, 497, 495, 505, 507, 508, 510, 515, 523, - 520, 522, 530, 533, 525, 534, 521, 535, 2115, 540, - 532, 538, 543, 544, 2115, 545, 549, 547, 562, 548, - 550, 559, 551, 563, 561, 572, 564, 576, 578, 570, - 579, 574, 583, 580, 586, 587, 595, 584, 603, 592, - 594, 605, 600, 607, 611, 617, 615, 619, 616, 620, - 627, 625, 623, 626, 630, 631, 636, 632, 642, 638, - 643, 649, 655, 634, 653, 657, 658, 652, 651, 659, + 451, 452, 458, 455, 457, 459, 463, 464, 483, 465, + 467, 468, 469, 479, 471, 472, 475, 490, 496, 505, + 492, 484, 493, 506, 507, 494, 511, 513, 514, 515, + 521, 517, 526, 527, 534, 530, 532, 535, 536, 537, + 2135, 541, 543, 545, 546, 547, 2135, 548, 549, 550, + 556, 552, 560, 561, 563, 571, 565, 572, 567, 574, + 578, 582, 580, 581, 584, 586, 591, 596, 595, 588, + 598, 602, 604, 607, 608, 612, 616, 618, 623, 625, + 626, 628, 634, 633, 630, 620, 636, 638, 639, 643, + 650, 646, 653, 648, 654, 660, 656, 663, 664, 665, - 661, 667, 668, 671, 680, 672, 678, 673, 676, 681, - 689, 685, 683, 690, 691, 693, 697, 698, 699, 701, - 703, 700, 702, 709, 714, 713, 720, 2115, 722, 715, - 724, 725, 2115, 2115, 726, 2115, 2115, 727, 734, 744, - 730, 728, 736, 738, 742, 752, 739, 757, 747, 745, - 759, 768, 755, 772, 773, 760, 774, 775, 777, 779, - 778, 781, 791, 787, 788, 792, 794, 2115, 789, 796, - 799, 801, 803, 806, 807, 809, 811, 808, 813, 814, - 816, 822, 826, 820, 828, 824, 831, 833, 834, 835, - 860, 836, 839, 842, 843, 845, 847, 852, 846, 850, + 609, 658, 668, 669, 676, 675, 677, 683, 681, 685, + 687, 686, 688, 695, 691, 693, 694, 696, 698, 700, + 707, 705, 706, 715, 708, 709, 716, 719, 722, 727, + 2135, 734, 721, 723, 732, 2135, 2135, 733, 2135, 2135, + 736, 742, 751, 738, 735, 741, 745, 749, 759, 746, + 764, 754, 748, 767, 771, 762, 773, 780, 781, 776, + 783, 785, 774, 789, 788, 787, 801, 797, 790, 798, + 802, 2135, 803, 806, 807, 808, 809, 814, 811, 821, + 815, 818, 822, 824, 827, 830, 832, 828, 836, 833, + 839, 841, 842, 843, 868, 844, 845, 847, 851, 855, - 857, 867, 868, 853, 878, 2115, 879, 880, 870, 881, - 885, 884, 886, 887, 888, 2115, 895, 892, 896, 898, - 899, 904, 911, 2115, 912, 900, 909, 914, 918, 919, - 922, 920, 921, 926, 927, 928, 931, 935, 942, 945, - 936, 944, 930, 947, 952, 950, 953, 954, 2115, 149, - 955, 963, 959, 956, 957, 960, 966, 973, 967, 974, - 975, 976, 978, 977, 984, 986, 987, 988, 990, 989, - 991, 993, 2115, 998, 1001, 994, 1010, 1018, 1003, 1024, - 1020, 1022, 1023, 1007, 1031, 1033, 1029, 1032, 1030, 1038, - 1035, 1040, 1041, 1043, 1045, 1047, 1049, 1053, 1056, 1057, + 862, 852, 864, 858, 875, 874, 878, 881, 886, 2135, + 894, 887, 883, 891, 893, 856, 896, 895, 897, 908, + 2135, 899, 905, 907, 913, 916, 919, 922, 2135, 923, + 906, 909, 928, 930, 932, 933, 926, 934, 938, 940, + 941, 939, 947, 948, 955, 949, 953, 956, 957, 963, + 960, 961, 962, 2135, 149, 965, 972, 968, 966, 969, + 976, 974, 985, 977, 982, 988, 986, 990, 992, 996, + 997, 998, 999, 1000, 1003, 1001, 1004, 2135, 1008, 1002, + 1009, 1015, 1028, 1012, 1031, 1032, 1030, 1036, 1024, 1034, + 1044, 1045, 1041, 1043, 1042, 1049, 1048, 1050, 1054, 1057, - 1059, 1061, 1065, 1064, 1066, 1070, 1067, 2115, 1080, 1082, - 1083, 1079, 1071, 1086, 1087, 1089, 1092, 1093, 1091, 1095, - 1096, 2115, 1102, 1098, 1099, 1103, 1100, 1106, 1105, 1108, - 1113, 1115, 1116, 1112, 1126, 1128, 1129, 1131, 1137, 1138, - 1139, 2115, 1141, 1134, 1149, 1152, 1154, 1147, 1145, 1155, - 1156, 1157, 1158, 1159, 1162, 1165, 1163, 1168, 1169, 1171, - 1173, 1179, 1187, 1188, 2115, 2115, 1185, 2115, 997, 1186, - 1190, 1191, 1192, 1194, 1197, 1202, 1195, 1200, 1205, 2115, - 1198, 1208, 1209, 417, 1213, 1219, 1210, 1220, 2115, 1222, - 1211, 1231, 1221, 1223, 1233, 1235, 1242, 1244, 1234, 1225, + 1059, 1055, 1062, 1067, 1069, 1070, 1072, 1074, 1076, 1078, + 1061, 1082, 1085, 2135, 1091, 1095, 1098, 1087, 1089, 1100, + 1097, 1101, 1102, 1103, 1105, 1106, 1109, 2135, 1112, 1110, + 1114, 1113, 1115, 1116, 1123, 1122, 1124, 1138, 1134, 1126, + 1140, 1128, 1130, 1142, 1153, 1155, 1156, 2135, 1154, 1146, + 1163, 1161, 1152, 1164, 1172, 1166, 1168, 1169, 1173, 1175, + 1174, 1176, 1177, 1179, 1180, 1181, 1197, 1194, 1182, 1203, + 1205, 2135, 2135, 1207, 2135, 1208, 1204, 1184, 1210, 1212, + 1214, 1216, 1217, 1220, 1186, 1221, 2135, 1223, 1222, 1224, + 1226, 1225, 1234, 1232, 1233, 2135, 1238, 1235, 1245, 1237, - 1237, 1246, 1248, 1255, 1247, 1251, 1253, 1254, 1256, 1259, - 2115, 2115, 1263, 1258, 1264, 1270, 1283, 1281, 1262, 1284, - 1285, 1286, 1287, 1288, 1290, 2115, 1296, 1298, 1295, 1304, - 2115, 1294, 1292, 1299, 1306, 1309, 2115, 1311, 1312, 1314, - 1315, 1317, 1321, 1323, 1329, 1325, 1328, 1332, 1334, 1330, - 1341, 1347, 1343, 1345, 1349, 1351, 1352, 2115, 1358, 1354, - 1361, 1357, 1360, 1367, 1364, 1365, 1366, 1368, 1369, 1370, - 1373, 1371, 1377, 1380, 1375, 1392, 1379, 1381, 2115, 1394, - 1400, 1387, 1402, 1398, 1404, 1406, 1408, 1410, 1411, 1412, - 1414, 1422, 1424, 1430, 1426, 1434, 1431, 1432, 1415, 1442, + 1247, 1248, 1249, 1251, 1256, 1257, 1258, 1259, 1262, 1264, + 1268, 1265, 1266, 1269, 1272, 1271, 1273, 2135, 2135, 1281, + 1282, 1274, 1288, 1292, 1299, 1296, 1298, 1302, 1303, 1305, + 1304, 1306, 1308, 2135, 1314, 1316, 1317, 1324, 2135, 1312, + 1310, 1313, 1325, 1329, 2135, 1330, 1331, 1334, 1337, 1336, + 1338, 1340, 1348, 1344, 1346, 1349, 1358, 1351, 1362, 1359, + 1363, 1366, 1368, 1370, 1371, 2135, 1377, 1373, 1380, 1376, + 1379, 1386, 1384, 1382, 1385, 1387, 1388, 1389, 1392, 1390, + 1395, 1399, 1408, 1394, 1411, 1397, 1400, 2135, 1413, 1419, + 1421, 1422, 1425, 1424, 1427, 1426, 1428, 1431, 1432, 1435, - 1435, 1439, 1445, 1441, 1448, 1446, 1449, 2115, 1450, 2115, - 1454, 1456, 2115, 2115, 2115, 1464, 1460, 1467, 1461, 1470, - 2115, 1471, 1472, 1474, 1475, 1476, 1478, 1479, 1480, 1481, - 1482, 1483, 1493, 1485, 1497, 1496, 1499, 1503, 1489, 1505, - 1514, 1510, 1512, 1506, 1516, 1517, 1513, 1518, 1519, 1521, - 1523, 1527, 2115, 1534, 1524, 1535, 1537, 1538, 1542, 1546, - 1543, 1552, 2115, 1545, 1556, 1557, 1553, 1559, 1562, 1560, - 1563, 1567, 1568, 1569, 1570, 2115, 1571, 1572, 1577, 1578, - 1584, 1588, 1580, 1595, 1597, 1573, 1599, 2115, 1600, 1602, - 1603, 1607, 1608, 1604, 1609, 1613, 1616, 1611, 1618, 1620, + 1443, 1451, 1444, 1436, 1452, 1454, 1455, 1437, 1461, 1457, + 1458, 1464, 1465, 1467, 1468, 1460, 2135, 1473, 2135, 1475, + 1477, 2135, 2135, 2135, 1483, 1480, 1481, 1488, 1492, 2135, + 1484, 1493, 1489, 1495, 1496, 1499, 1498, 1500, 1501, 1503, + 1509, 1512, 1515, 1502, 1517, 1516, 1519, 1525, 1523, 1526, + 1534, 1531, 1532, 1533, 1537, 1543, 1535, 1538, 1540, 1539, + 1542, 1548, 2135, 1556, 1545, 1557, 1561, 1563, 1564, 1565, + 1568, 1575, 2135, 1567, 1578, 1579, 1581, 1582, 1584, 1571, + 1585, 1589, 1590, 1591, 1592, 2135, 1594, 1596, 1599, 1600, + 1606, 1615, 1607, 1617, 1619, 1602, 1623, 1625, 2135, 1626, - 1621, 1623, 1625, 1627, 1628, 1631, 1633, 1634, 1635, 1645, - 1638, 2115, 1639, 1641, 1651, 1658, 2115, 1654, 2115, 1657, - 1656, 1663, 1664, 1667, 1655, 1665, 1669, 1676, 1672, 1673, - 1677, 1679, 1681, 2115, 2115, 1690, 2115, 2115, 1693, 2115, - 1695, 2115, 1697, 2115, 1703, 1699, 1686, 1684, 1704, 2115, - 1708, 2115, 2115, 1705, 1711, 1712, 1715, 1716, 1701, 1718, - 1720, 1721, 1722, 1724, 1725, 1726, 1727, 1731, 1735, 1736, - 1738, 2115, 1739, 1745, 1749, 1743, 1748, 1751, 1750, 1754, - 1760, 1756, 1759, 1762, 2115, 2115, 2115, 1763, 1765, 1773, - 1764, 1770, 2115, 1775, 1776, 1781, 2115, 1784, 1777, 1787, + 1628, 1610, 1633, 1630, 1634, 1595, 1635, 1638, 1639, 1642, + 1644, 1645, 1646, 1649, 1650, 1652, 1654, 1653, 1656, 1657, + 1667, 1660, 2135, 1663, 1669, 1674, 1677, 2135, 1670, 2135, + 1676, 1680, 1687, 1684, 1689, 1681, 1690, 1691, 1698, 1694, + 1695, 1697, 1699, 1703, 2135, 2135, 1708, 2135, 2135, 1713, + 2135, 2135, 1715, 2135, 1717, 2135, 1723, 1719, 1706, 1704, + 1724, 2135, 1728, 2135, 2135, 1725, 1731, 1732, 1735, 1736, + 1721, 1738, 1740, 1741, 1742, 1744, 1745, 1746, 1747, 1751, + 1755, 1756, 1758, 2135, 1759, 1765, 1769, 1763, 1768, 1771, + 1770, 1774, 1780, 1776, 1779, 1782, 2135, 2135, 2135, 1783, - 1786, 1789, 1680, 2115, 1790, 1792, 1793, 1800, 1802, 1804, - 2115, 1806, 1807, 1809, 1808, 1813, 1820, 1814, 2115, 1810, - 1816, 1825, 1818, 1826, 1828, 2115, 1830, 1831, 2115, 1837, - 2115, 1832, 1840, 1842, 1847, 1849, 1838, 1843, 1855, 1854, - 1858, 2115, 2115, 1851, 1859, 1860, 1861, 1863, 1864, 1865, - 1866, 1869, 2115, 1871, 1872, 1881, 1878, 1876, 2115, 1883, - 1886, 1887, 2115, 2115, 1888, 1894, 1896, 2115, 1897, 1899, - 1900, 1904, 1901, 1906, 1908, 1909, 1907, 1910, 1920, 1921, - 2115, 1923, 1911, 1913, 1928, 1937, 1924, 1930, 1932, 1939, - 1941, 1934, 2115, 1944, 1946, 1948, 1951, 1954, 1956, 2115, + 1785, 1793, 1784, 1790, 2135, 1795, 1796, 1801, 2135, 1804, + 1797, 1807, 1806, 1809, 1810, 2135, 1812, 1817, 1820, 1813, + 1824, 1830, 2135, 1821, 1831, 1832, 1833, 1836, 1837, 1839, + 2135, 1834, 1840, 1847, 1841, 1844, 1849, 2135, 1851, 1855, + 2135, 1857, 2135, 1858, 1861, 1863, 1865, 1870, 1867, 1872, + 1876, 1874, 1875, 2135, 2135, 1877, 1880, 1881, 1882, 1884, + 1883, 1887, 1890, 1891, 2135, 1892, 1894, 1902, 1893, 1905, + 2135, 1906, 1904, 1907, 2135, 2135, 1917, 1908, 1910, 2135, + 1918, 1920, 1921, 1925, 1926, 1927, 1929, 1928, 1930, 1931, + 1935, 1938, 2135, 1941, 1944, 1945, 1948, 1952, 1949, 1953, - 1957, 2115, 1961, 1962, 2115, 2115, 1963, 1965, 1968, 2115, - 2115, 1966, 1970, 2115, 2115, 2115, 1976, 2115, 1977, 2115, - 1979, 1969, 2115, 1972, 1983, 1988, 2115, 1992, 2115, 1985, - 1993, 2115, 2115, 2115, 1995, 1980, 2002, 1989, 2115, 1996, - 2003, 2004, 2006, 2115, 2115, 2036, 2042, 2048, 2054, 2060, - 94, 2066, 2072, 2078, 2084, 2090, 2096, 2102, 2108 + 1954, 1958, 1960, 1961, 2135, 1966, 1963, 1970, 1973, 1976, + 1978, 2135, 1982, 2135, 1985, 1986, 2135, 2135, 1979, 1989, + 1990, 2135, 2135, 1955, 1992, 2135, 2135, 2135, 1994, 2135, + 1997, 2135, 1999, 2000, 2135, 2002, 2004, 2006, 2135, 2008, + 2135, 2009, 2010, 2135, 2135, 2135, 2012, 2013, 2018, 2014, + 2135, 2019, 2022, 2024, 2026, 2135, 2135, 2056, 2062, 2068, + 2074, 2080, 94, 2086, 2092, 2098, 2104, 2110, 2116, 2122, + 2128 } ; -static yyconst flex_int16_t yy_def[1060] = +static yyconst flex_int16_t yy_def[1072] = { 0, - 1045, 1, 1046, 1046, 1047, 1047, 1048, 1048, 1049, 1049, - 1050, 1050, 1045, 1051, 1045, 1045, 1045, 1045, 1052, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, - 1045, 1045, 1053, 1054, 1045, 1045, 1054, 1055, 1045, 1045, - 1045, 1045, 1055, 1056, 1045, 1045, 1056, 1057, 1045, 1045, - 1058, 1045, 1057, 1057, 1051, 1051, 1045, 1059, 1052, 1059, - 1045, 1052, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1057, 1, 1058, 1058, 1059, 1059, 1060, 1060, 1061, 1061, + 1062, 1062, 1057, 1063, 1057, 1057, 1057, 1057, 1064, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1065, + 1057, 1057, 1065, 1066, 1057, 1057, 1066, 1067, 1057, 1057, + 1057, 1057, 1067, 1068, 1057, 1057, 1068, 1069, 1057, 1057, + 1070, 1057, 1069, 1069, 1063, 1063, 1057, 1071, 1064, 1071, + 1057, 1064, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, 1053, - 1054, 1054, 1055, 1055, 1045, 1056, 1056, 1057, 1057, 1058, - 1058, 1057, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1057, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1065, 1065, + 1066, 1066, 1067, 1067, 1057, 1068, 1068, 1069, 1069, 1070, + 1070, 1069, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1069, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1057, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, - 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1057, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1069, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1057, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1069, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1057, 1051, 1051, 1045, 1051, 1051, - 1051, 1051, 1045, 1045, 1051, 1045, 1045, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1057, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1069, 1063, 1063, + 1057, 1063, 1063, 1063, 1063, 1057, 1057, 1063, 1057, 1057, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1069, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1057, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1057, 1069, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1045, 1045, 1051, 1045, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1057, 1057, 1063, 1057, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1045, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, - 1045, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1057, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1057, 1063, + 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1045, - 1051, 1051, 1045, 1045, 1045, 1051, 1051, 1051, 1051, 1051, - 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1057, 1063, + 1063, 1057, 1057, 1057, 1063, 1063, 1063, 1063, 1063, 1057, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1045, 1051, 1051, 1051, 1051, 1045, 1051, 1045, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1045, 1045, 1051, 1045, 1045, 1051, 1045, - 1051, 1045, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1045, - 1051, 1045, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1045, 1045, 1045, 1051, 1051, 1051, - 1051, 1051, 1045, 1051, 1051, 1051, 1045, 1051, 1051, 1051, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1057, 1063, 1057, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1057, 1057, 1063, 1057, 1057, 1063, + 1057, 1057, 1063, 1057, 1063, 1057, 1063, 1063, 1063, 1063, + 1063, 1057, 1063, 1057, 1057, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1057, 1057, 1063, - 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, - 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, - 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1045, 1051, - 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1045, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1045, 1051, - 1051, 1051, 1045, 1045, 1051, 1051, 1051, 1045, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1045, + 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1057, 1063, + 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, + 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1057, 1063, 1063, + 1057, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1057, 1057, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, + 1057, 1063, 1063, 1063, 1057, 1057, 1063, 1063, 1063, 1057, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, 1063, 1063, - 1051, 1045, 1051, 1051, 1045, 1045, 1051, 1051, 1051, 1045, - 1045, 1051, 1051, 1045, 1045, 1045, 1051, 1045, 1051, 1045, - 1051, 1051, 1045, 1051, 1051, 1051, 1045, 1051, 1045, 1051, - 1051, 1045, 1045, 1045, 1051, 1051, 1051, 1051, 1045, 1051, - 1051, 1051, 1051, 1045, 0, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045 + 1063, 1063, 1063, 1063, 1057, 1063, 1063, 1063, 1063, 1063, + 1063, 1057, 1063, 1057, 1063, 1063, 1057, 1057, 1063, 1063, + 1063, 1057, 1057, 1063, 1063, 1057, 1057, 1057, 1063, 1057, + 1063, 1057, 1063, 1063, 1057, 1063, 1063, 1063, 1057, 1063, + 1057, 1063, 1063, 1057, 1057, 1057, 1063, 1063, 1063, 1063, + 1057, 1063, 1063, 1063, 1063, 1057, 0, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057 } ; -static yyconst flex_int16_t yy_nxt[2155] = +static yyconst flex_int16_t yy_nxt[2175] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -805,212 +810,214 @@ static yyconst flex_int16_t yy_nxt[2155] = 113, 118, 113, 118, 118, 66, 118, 70, 71, 70, 70, 66, 70, 165, 66, 167, 169, 66, 121, 168, - 66, 66, 175, 66, 66, 66, 166, 66, 177, 119, + 66, 66, 175, 66, 66, 66, 166, 66, 177, 66, 178, 170, 66, 66, 66, 66, 171, 179, 183, 185, - 66, 172, 119, 176, 66, 66, 180, 173, 174, 181, - 182, 66, 186, 66, 211, 184, 66, 189, 66, 187, - 191, 188, 66, 190, 192, 66, 66, 196, 66, 66, - 66, 66, 66, 193, 194, 66, 195, 199, 66, 66, - 66, 202, 66, 66, 205, 197, 66, 203, 206, 208, - 66, 198, 209, 66, 66, 66, 117, 200, 201, 66, - 213, 204, 66, 66, 66, 212, 216, 66, 217, 210, + 66, 172, 230, 176, 66, 66, 180, 173, 174, 181, + 182, 66, 186, 187, 190, 184, 66, 66, 66, 66, + 192, 189, 191, 193, 188, 66, 66, 197, 66, 66, + 66, 66, 66, 194, 66, 195, 196, 200, 66, 66, + 66, 203, 66, 66, 206, 198, 66, 204, 207, 209, + 66, 199, 210, 66, 66, 119, 201, 66, 202, 66, + 66, 205, 214, 66, 66, 213, 217, 212, 66, 211, - 66, 207, 66, 218, 214, 66, 66, 66, 221, 220, - 215, 222, 66, 224, 66, 66, 219, 226, 66, 225, - 223, 66, 66, 66, 230, 66, 66, 66, 66, 66, - 233, 646, 66, 66, 229, 227, 239, 66, 232, 228, - 234, 235, 66, 231, 66, 236, 237, 238, 66, 66, - 66, 240, 66, 245, 66, 66, 246, 66, 248, 241, - 66, 244, 242, 66, 243, 250, 66, 252, 66, 66, - 247, 66, 66, 253, 66, 251, 66, 249, 66, 256, - 119, 66, 268, 66, 66, 255, 66, 66, 258, 254, - 265, 66, 66, 264, 66, 257, 66, 273, 259, 260, + 66, 208, 66, 218, 215, 66, 219, 66, 216, 66, + 220, 223, 222, 221, 224, 66, 225, 66, 227, 66, + 66, 66, 226, 66, 66, 231, 66, 66, 66, 66, + 234, 241, 66, 233, 66, 66, 66, 66, 119, 228, + 235, 229, 66, 237, 232, 242, 66, 238, 66, 236, + 239, 240, 245, 243, 66, 246, 244, 247, 66, 66, + 248, 250, 66, 66, 66, 254, 66, 66, 252, 66, + 66, 66, 255, 253, 249, 66, 66, 66, 258, 66, + 119, 66, 251, 66, 66, 257, 270, 66, 267, 256, + 260, 66, 266, 117, 259, 66, 66, 261, 262, 272, - 272, 266, 267, 66, 269, 66, 270, 66, 66, 66, - 261, 262, 263, 279, 271, 274, 275, 66, 66, 66, - 66, 277, 66, 276, 278, 280, 285, 66, 282, 284, - 287, 281, 66, 66, 66, 66, 286, 66, 288, 289, - 291, 283, 66, 290, 66, 66, 66, 66, 295, 292, - 66, 293, 66, 296, 294, 66, 66, 66, 298, 66, - 66, 66, 66, 66, 299, 297, 302, 303, 300, 304, - 312, 66, 307, 66, 66, 66, 66, 301, 305, 308, - 313, 306, 66, 311, 66, 315, 66, 309, 66, 317, - 66, 66, 66, 314, 319, 66, 66, 310, 66, 119, + 269, 268, 66, 271, 66, 66, 66, 273, 66, 263, + 264, 265, 279, 275, 276, 277, 274, 66, 66, 66, + 283, 280, 281, 66, 278, 66, 66, 66, 289, 66, + 287, 115, 284, 66, 286, 290, 288, 282, 66, 66, + 292, 293, 66, 291, 66, 285, 66, 66, 66, 66, + 298, 294, 296, 66, 299, 66, 295, 66, 66, 66, + 66, 66, 66, 307, 66, 301, 305, 302, 66, 297, + 306, 303, 66, 66, 310, 66, 300, 66, 315, 66, + 304, 311, 308, 66, 66, 318, 66, 320, 316, 312, + 66, 309, 66, 66, 66, 314, 66, 317, 66, 313, - 322, 316, 326, 325, 66, 318, 66, 66, 321, 327, - 320, 323, 66, 324, 328, 66, 329, 66, 333, 66, - 331, 330, 334, 66, 335, 332, 336, 66, 66, 66, - 337, 66, 66, 338, 340, 66, 339, 66, 66, 66, - 342, 341, 66, 66, 66, 349, 66, 344, 66, 350, - 66, 346, 356, 351, 66, 66, 347, 345, 343, 352, - 348, 66, 355, 66, 66, 66, 354, 66, 357, 66, - 66, 66, 358, 66, 364, 359, 362, 361, 363, 66, - 66, 353, 360, 66, 66, 66, 366, 367, 66, 365, - 66, 368, 66, 66, 370, 66, 374, 66, 375, 376, + 66, 325, 329, 66, 319, 321, 322, 66, 119, 331, + 66, 323, 328, 330, 66, 324, 66, 326, 327, 66, + 66, 66, 334, 336, 66, 338, 332, 337, 66, 114, + 66, 333, 66, 335, 339, 66, 340, 66, 66, 364, + 66, 343, 66, 341, 342, 66, 66, 345, 66, 344, + 66, 66, 346, 347, 349, 66, 352, 353, 66, 350, + 66, 354, 66, 351, 348, 66, 66, 359, 66, 355, + 66, 358, 66, 357, 360, 66, 66, 66, 361, 362, + 66, 66, 363, 368, 365, 366, 367, 66, 66, 66, + 371, 356, 370, 66, 372, 66, 369, 66, 66, 66, - 371, 66, 66, 66, 369, 66, 372, 377, 373, 66, - 66, 66, 66, 66, 66, 66, 382, 381, 383, 378, - 384, 66, 380, 386, 379, 66, 119, 66, 389, 391, - 385, 388, 66, 390, 66, 387, 66, 66, 66, 66, - 66, 397, 66, 396, 393, 392, 66, 403, 66, 406, - 66, 66, 394, 115, 66, 395, 66, 66, 404, 66, - 398, 407, 411, 399, 66, 408, 409, 66, 400, 66, - 410, 66, 66, 405, 401, 402, 114, 412, 418, 413, - 66, 414, 415, 416, 66, 66, 66, 66, 417, 66, - 66, 66, 424, 66, 419, 420, 422, 423, 425, 66, + 66, 374, 378, 66, 379, 66, 66, 66, 66, 380, + 66, 381, 66, 373, 375, 377, 376, 66, 66, 66, + 66, 66, 386, 387, 382, 384, 385, 66, 66, 383, + 390, 119, 388, 66, 66, 66, 392, 393, 389, 66, + 394, 395, 391, 397, 66, 66, 66, 66, 66, 401, + 66, 396, 400, 66, 66, 407, 410, 66, 66, 398, + 66, 66, 399, 66, 112, 408, 66, 402, 411, 415, + 403, 66, 412, 413, 66, 404, 66, 414, 409, 66, + 416, 405, 406, 66, 418, 66, 66, 417, 66, 419, + 420, 421, 66, 66, 423, 66, 422, 66, 429, 66, - 66, 66, 426, 66, 66, 428, 66, 421, 66, 429, - 431, 66, 432, 66, 427, 66, 438, 430, 66, 66, - 66, 66, 434, 66, 436, 66, 66, 439, 66, 435, - 433, 442, 66, 437, 66, 444, 66, 441, 66, 440, - 66, 445, 449, 66, 450, 119, 66, 66, 66, 443, - 446, 66, 462, 447, 66, 66, 448, 66, 66, 66, - 463, 451, 66, 468, 66, 66, 459, 464, 460, 66, - 467, 452, 66, 458, 469, 453, 461, 454, 466, 66, - 66, 455, 66, 456, 472, 465, 474, 470, 457, 473, - 66, 66, 66, 66, 471, 475, 66, 66, 66, 66, + 66, 66, 66, 424, 426, 425, 427, 428, 430, 66, + 66, 433, 431, 66, 66, 66, 432, 434, 66, 66, + 66, 66, 437, 66, 436, 435, 66, 66, 443, 439, + 66, 444, 441, 66, 66, 440, 66, 442, 438, 66, + 66, 447, 66, 449, 66, 66, 446, 450, 66, 445, + 454, 66, 455, 119, 66, 66, 66, 66, 451, 66, + 448, 452, 467, 66, 66, 453, 110, 66, 66, 456, + 66, 473, 464, 465, 66, 468, 66, 484, 471, 457, + 66, 463, 469, 458, 466, 459, 66, 66, 472, 460, + 66, 461, 474, 66, 475, 66, 462, 478, 66, 66, - 66, 476, 478, 480, 66, 479, 477, 66, 66, 484, - 66, 66, 66, 485, 482, 486, 66, 488, 489, 481, - 487, 66, 483, 66, 66, 490, 66, 492, 491, 494, - 66, 66, 66, 66, 66, 495, 496, 497, 66, 66, - 66, 493, 66, 66, 501, 502, 503, 66, 66, 505, - 498, 500, 506, 499, 66, 508, 66, 66, 504, 66, - 511, 509, 66, 507, 66, 66, 66, 66, 66, 66, - 516, 66, 66, 510, 513, 66, 517, 520, 66, 66, - 512, 515, 518, 519, 522, 66, 66, 66, 66, 66, - 66, 514, 525, 521, 527, 524, 66, 523, 66, 66, + 470, 479, 480, 66, 476, 66, 66, 66, 66, 66, + 483, 66, 477, 485, 481, 488, 482, 66, 66, 66, + 66, 66, 490, 487, 491, 66, 489, 486, 66, 495, + 492, 66, 494, 498, 66, 66, 496, 493, 66, 497, + 66, 499, 66, 500, 66, 66, 66, 501, 503, 502, + 66, 66, 66, 66, 509, 511, 504, 507, 508, 66, + 66, 66, 512, 506, 514, 66, 505, 66, 66, 66, + 510, 517, 66, 66, 66, 66, 513, 66, 66, 522, + 66, 66, 519, 516, 66, 523, 66, 515, 66, 66, + 518, 521, 524, 526, 66, 525, 528, 66, 66, 520, - 66, 66, 66, 66, 528, 66, 66, 526, 533, 66, - 66, 529, 632, 66, 536, 66, 534, 530, 532, 66, - 531, 538, 66, 535, 537, 541, 539, 540, 543, 542, - 66, 544, 66, 545, 66, 66, 66, 548, 549, 546, - 550, 66, 66, 66, 66, 66, 551, 66, 552, 547, - 66, 553, 66, 66, 557, 66, 554, 66, 555, 66, - 556, 66, 558, 561, 565, 66, 559, 566, 66, 66, - 568, 66, 560, 66, 567, 562, 66, 66, 66, 66, - 564, 571, 66, 66, 563, 570, 574, 575, 573, 576, - 577, 66, 66, 569, 66, 66, 572, 580, 66, 66, + 66, 527, 66, 530, 66, 531, 533, 529, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 532, 539, 534, + 66, 66, 544, 535, 66, 542, 71, 66, 536, 538, + 540, 537, 546, 541, 543, 547, 66, 549, 550, 548, + 66, 545, 66, 66, 66, 551, 66, 552, 66, 553, + 554, 556, 557, 66, 66, 66, 66, 66, 558, 559, + 66, 66, 66, 560, 555, 564, 66, 66, 561, 66, + 562, 66, 563, 66, 66, 565, 566, 568, 572, 66, + 573, 66, 66, 575, 66, 567, 66, 574, 66, 569, + 66, 579, 570, 571, 66, 578, 577, 66, 582, 66, - 578, 66, 579, 66, 66, 66, 584, 66, 66, 588, - 66, 66, 66, 589, 66, 66, 593, 66, 66, 581, - 66, 582, 583, 585, 66, 66, 587, 66, 66, 591, - 597, 595, 586, 599, 598, 592, 590, 594, 66, 596, - 66, 66, 600, 66, 605, 606, 66, 601, 604, 66, - 66, 66, 607, 66, 614, 602, 610, 66, 608, 66, - 611, 66, 603, 612, 66, 609, 66, 66, 66, 66, - 66, 66, 613, 112, 66, 66, 615, 66, 622, 623, - 66, 66, 626, 66, 619, 66, 616, 617, 618, 621, - 627, 66, 620, 624, 629, 630, 631, 66, 66, 66, + 580, 66, 583, 66, 581, 584, 576, 66, 585, 66, + 66, 587, 66, 66, 66, 66, 591, 66, 66, 595, + 586, 66, 66, 596, 66, 66, 66, 66, 66, 588, + 71, 600, 590, 589, 66, 66, 66, 592, 66, 594, + 66, 604, 66, 593, 598, 599, 66, 601, 597, 602, + 66, 606, 66, 603, 66, 609, 607, 605, 66, 611, + 612, 608, 613, 610, 66, 66, 66, 66, 66, 614, + 617, 615, 619, 66, 618, 66, 66, 616, 66, 622, + 66, 66, 621, 620, 66, 66, 66, 66, 66, 66, + 630, 66, 66, 66, 66, 631, 66, 623, 66, 624, - 66, 625, 66, 66, 66, 637, 66, 66, 635, 66, - 66, 628, 66, 633, 66, 639, 641, 66, 640, 636, - 66, 66, 66, 66, 110, 66, 648, 634, 643, 638, - 647, 66, 66, 66, 66, 66, 642, 66, 650, 651, - 644, 645, 649, 66, 653, 66, 66, 66, 652, 66, - 656, 654, 657, 658, 66, 655, 66, 661, 66, 66, - 66, 659, 665, 66, 660, 66, 66, 66, 66, 662, - 66, 66, 663, 664, 66, 66, 66, 670, 71, 666, - 671, 669, 66, 667, 673, 675, 668, 672, 676, 674, - 678, 677, 679, 66, 680, 66, 66, 66, 66, 66, + 625, 627, 649, 629, 626, 632, 66, 628, 634, 66, + 637, 635, 638, 633, 636, 66, 66, 66, 639, 66, + 66, 642, 66, 640, 66, 645, 66, 643, 66, 66, + 647, 641, 66, 66, 66, 66, 66, 66, 66, 644, + 654, 656, 655, 648, 66, 66, 66, 66, 646, 66, + 66, 658, 650, 651, 652, 659, 653, 66, 661, 66, + 66, 66, 666, 66, 657, 664, 665, 662, 66, 66, + 66, 66, 660, 667, 66, 673, 66, 66, 66, 663, + 66, 66, 71, 66, 66, 66, 66, 668, 671, 672, + 669, 670, 678, 66, 66, 679, 681, 674, 675, 677, - 66, 685, 66, 687, 66, 688, 66, 66, 66, 681, - 66, 66, 683, 689, 692, 682, 66, 684, 66, 690, - 686, 66, 693, 66, 66, 691, 66, 66, 698, 66, - 694, 699, 700, 66, 695, 66, 704, 66, 701, 696, - 66, 66, 66, 697, 66, 708, 66, 703, 702, 705, - 707, 709, 710, 66, 711, 66, 713, 66, 706, 66, - 714, 66, 715, 66, 66, 717, 66, 716, 719, 66, - 66, 721, 66, 66, 722, 712, 66, 66, 66, 66, - 66, 66, 66, 66, 718, 66, 731, 66, 723, 66, - 724, 66, 66, 66, 720, 725, 733, 726, 727, 66, + 66, 680, 676, 682, 66, 683, 687, 688, 66, 684, + 66, 66, 685, 686, 66, 66, 66, 66, 66, 694, + 66, 696, 66, 697, 66, 66, 66, 690, 66, 66, + 689, 692, 701, 691, 693, 698, 66, 66, 695, 699, + 702, 66, 66, 66, 703, 700, 66, 707, 66, 66, + 66, 708, 66, 704, 709, 713, 66, 710, 66, 705, + 66, 66, 706, 66, 712, 711, 720, 716, 714, 717, + 66, 66, 718, 719, 66, 66, 715, 722, 66, 723, + 66, 724, 66, 66, 726, 66, 725, 728, 66, 66, + 730, 66, 66, 731, 66, 721, 66, 66, 66, 66, - 728, 734, 729, 732, 66, 736, 66, 740, 730, 738, - 66, 739, 66, 735, 66, 743, 66, 737, 66, 741, - 66, 742, 66, 66, 66, 744, 66, 66, 747, 751, - 71, 752, 748, 745, 66, 753, 66, 754, 66, 746, - 750, 756, 66, 66, 66, 749, 66, 66, 758, 760, - 755, 66, 759, 66, 66, 757, 763, 66, 66, 764, - 66, 66, 66, 762, 766, 765, 66, 769, 66, 761, - 767, 772, 66, 66, 768, 775, 66, 771, 770, 66, - 774, 776, 66, 66, 66, 778, 66, 66, 66, 773, - 66, 66, 66, 66, 66, 66, 786, 66, 785, 780, + 66, 66, 66, 727, 66, 740, 66, 66, 732, 66, + 733, 66, 66, 729, 735, 734, 742, 736, 743, 737, + 66, 738, 741, 66, 746, 66, 750, 739, 748, 744, + 749, 66, 745, 66, 66, 747, 66, 66, 66, 66, + 66, 752, 753, 66, 66, 754, 757, 66, 66, 66, + 761, 764, 758, 751, 755, 66, 66, 756, 762, 766, + 765, 760, 763, 66, 66, 759, 66, 66, 770, 66, + 66, 768, 66, 66, 769, 773, 66, 66, 767, 66, + 66, 777, 772, 774, 775, 66, 776, 66, 779, 66, + 782, 771, 66, 66, 784, 66, 66, 778, 781, 780, - 781, 66, 782, 777, 788, 66, 783, 779, 66, 66, - 791, 66, 784, 787, 790, 66, 792, 66, 66, 794, - 793, 796, 66, 789, 66, 66, 66, 797, 66, 66, - 66, 66, 799, 66, 803, 66, 66, 795, 801, 66, - 800, 802, 804, 798, 805, 808, 66, 66, 812, 66, - 66, 807, 809, 806, 66, 66, 811, 66, 66, 813, - 816, 810, 815, 817, 66, 66, 818, 819, 66, 66, - 820, 66, 66, 814, 66, 66, 822, 821, 823, 66, - 66, 66, 66, 66, 66, 66, 830, 824, 71, 66, - 66, 833, 66, 828, 825, 834, 66, 831, 826, 835, + 66, 66, 785, 786, 66, 66, 788, 66, 66, 783, + 66, 66, 66, 66, 66, 66, 787, 796, 795, 790, + 791, 66, 789, 792, 66, 793, 799, 66, 66, 66, + 802, 66, 794, 798, 801, 66, 803, 66, 66, 797, + 800, 807, 804, 66, 66, 66, 66, 66, 808, 66, + 66, 66, 66, 805, 66, 66, 814, 66, 806, 810, + 66, 811, 815, 809, 812, 816, 819, 813, 66, 66, + 818, 817, 823, 66, 820, 66, 66, 66, 822, 66, + 66, 826, 821, 66, 824, 827, 828, 66, 829, 830, + 66, 66, 831, 66, 66, 825, 66, 66, 835, 833, - 66, 827, 832, 829, 839, 836, 837, 66, 838, 66, - 840, 66, 66, 842, 66, 66, 66, 841, 844, 66, - 66, 66, 846, 66, 847, 66, 848, 850, 66, 852, - 66, 853, 66, 66, 843, 66, 855, 66, 845, 66, - 66, 849, 851, 66, 857, 66, 66, 66, 859, 856, - 66, 66, 863, 66, 864, 861, 862, 66, 66, 854, - 860, 858, 866, 66, 867, 868, 66, 66, 66, 66, - 66, 865, 870, 871, 872, 66, 66, 66, 869, 66, - 873, 66, 874, 878, 66, 66, 877, 875, 66, 66, - 879, 66, 66, 66, 881, 883, 66, 876, 66, 882, + 834, 66, 66, 66, 66, 832, 66, 66, 66, 841, + 859, 66, 66, 844, 66, 839, 836, 845, 66, 66, + 837, 842, 66, 838, 843, 840, 846, 66, 848, 66, + 849, 66, 847, 850, 851, 66, 852, 66, 66, 854, + 66, 855, 66, 853, 856, 66, 66, 66, 860, 862, + 66, 66, 858, 864, 66, 865, 66, 66, 66, 867, + 857, 66, 66, 861, 66, 66, 66, 869, 66, 66, + 863, 871, 66, 868, 875, 66, 876, 873, 874, 66, + 872, 66, 66, 866, 880, 870, 66, 879, 66, 66, + 878, 882, 66, 66, 881, 877, 66, 883, 884, 66, - 937, 880, 66, 884, 885, 66, 886, 66, 887, 66, - 888, 66, 889, 66, 890, 66, 66, 66, 891, 893, - 66, 892, 894, 66, 66, 895, 897, 66, 66, 896, - 66, 899, 66, 66, 66, 904, 66, 66, 66, 66, - 898, 119, 900, 66, 901, 902, 905, 66, 66, 911, - 66, 66, 909, 910, 903, 66, 908, 66, 913, 907, - 66, 66, 66, 66, 906, 919, 66, 920, 66, 912, - 914, 66, 66, 915, 66, 66, 66, 66, 916, 917, - 925, 918, 66, 921, 926, 66, 929, 66, 66, 66, - 922, 927, 931, 66, 923, 924, 66, 932, 66, 66, + 885, 66, 66, 66, 886, 890, 66, 66, 889, 66, + 66, 66, 891, 887, 893, 66, 66, 895, 66, 894, + 66, 896, 888, 892, 897, 66, 898, 66, 899, 66, + 900, 66, 901, 66, 902, 66, 66, 66, 903, 905, + 66, 904, 906, 66, 66, 907, 909, 66, 66, 908, + 66, 911, 66, 66, 66, 916, 66, 66, 66, 66, + 910, 66, 912, 66, 913, 914, 917, 66, 66, 923, + 66, 66, 921, 922, 915, 66, 920, 66, 925, 919, + 66, 66, 66, 66, 918, 931, 66, 932, 66, 924, + 926, 66, 66, 927, 66, 66, 66, 66, 928, 929, - 928, 66, 66, 935, 66, 66, 936, 930, 934, 939, - 940, 933, 66, 942, 66, 943, 66, 938, 66, 66, - 66, 66, 66, 944, 946, 66, 66, 941, 66, 947, - 66, 945, 66, 949, 948, 950, 953, 66, 66, 954, - 66, 951, 66, 66, 66, 956, 955, 952, 959, 66, - 66, 957, 66, 961, 66, 66, 958, 962, 963, 66, - 964, 66, 967, 66, 960, 968, 66, 66, 965, 966, - 66, 66, 66, 66, 969, 66, 66, 66, 66, 971, - 974, 66, 970, 66, 66, 117, 979, 977, 66, 973, - 66, 972, 981, 66, 982, 66, 975, 983, 66, 66, + 937, 930, 66, 933, 938, 66, 941, 66, 66, 66, + 934, 939, 943, 66, 935, 936, 66, 944, 66, 66, + 940, 66, 66, 947, 66, 66, 948, 942, 946, 66, + 949, 945, 66, 66, 951, 954, 66, 952, 956, 950, + 953, 955, 66, 66, 66, 66, 66, 958, 66, 66, + 961, 66, 66, 66, 959, 957, 66, 960, 965, 66, + 962, 66, 966, 66, 967, 963, 968, 66, 971, 66, + 66, 964, 969, 66, 973, 66, 975, 66, 974, 66, + 970, 976, 66, 979, 66, 980, 66, 66, 66, 66, + 972, 981, 66, 66, 66, 66, 66, 977, 978, 66, - 66, 978, 980, 976, 984, 987, 66, 988, 66, 66, - 985, 66, 66, 66, 990, 993, 66, 989, 66, 66, - 66, 66, 66, 66, 986, 66, 997, 992, 996, 994, - 991, 1000, 66, 66, 1002, 66, 66, 995, 1001, 1005, - 66, 999, 66, 1003, 66, 998, 66, 1004, 1006, 66, - 1010, 66, 1011, 66, 1008, 1007, 66, 1014, 66, 1015, - 66, 1013, 1016, 66, 1009, 1012, 66, 1018, 66, 66, - 1019, 1017, 1020, 66, 66, 66, 1023, 66, 66, 1021, - 66, 66, 66, 1022, 66, 1024, 1026, 1027, 66, 66, - 1029, 66, 66, 1028, 1032, 66, 1030, 66, 1025, 1033, + 983, 986, 66, 66, 66, 66, 66, 991, 982, 994, + 985, 989, 984, 993, 66, 987, 66, 66, 66, 66, + 66, 1000, 66, 990, 992, 988, 995, 996, 997, 66, + 66, 1001, 66, 66, 999, 1002, 1005, 66, 66, 66, + 66, 66, 66, 66, 998, 1009, 1012, 66, 1004, 1008, + 66, 1003, 1014, 66, 1006, 1013, 66, 66, 1007, 1017, + 66, 66, 1011, 1018, 66, 66, 66, 66, 1010, 1022, + 66, 1023, 66, 66, 1026, 66, 1015, 1020, 66, 1016, + 1019, 1027, 66, 1025, 1028, 66, 1021, 1037, 66, 1030, + 66, 66, 1024, 1029, 66, 1031, 1032, 66, 66, 1034, - 66, 66, 1031, 1034, 66, 66, 1036, 66, 66, 1035, - 1040, 1037, 1038, 1039, 66, 66, 66, 1044, 66, 115, - 114, 112, 110, 1041, 66, 1045, 1045, 1045, 1045, 1042, - 1045, 1045, 1045, 1045, 1045, 1043, 40, 40, 40, 40, + 1035, 66, 66, 1033, 66, 1039, 66, 1036, 1038, 66, + 1041, 66, 66, 1040, 66, 1044, 66, 1045, 66, 1046, + 66, 66, 66, 1048, 66, 66, 66, 1042, 1049, 1051, + 66, 66, 1043, 1047, 66, 1052, 66, 1056, 66, 119, + 117, 115, 114, 112, 110, 1050, 1053, 66, 1054, 1057, + 1057, 1057, 1057, 1057, 1057, 1055, 40, 40, 40, 40, 40, 40, 44, 44, 44, 44, 44, 44, 48, 48, 48, 48, 48, 48, 54, 54, 54, 54, 54, 54, 58, 58, 58, 58, 58, 58, 69, 69, 69, 69, - 69, 69, 109, 109, 1045, 1045, 109, 109, 111, 111, - 1045, 111, 1045, 111, 113, 1045, 1045, 1045, 1045, 113, - 116, 116, 1045, 1045, 116, 116, 118, 1045, 1045, 1045, + 69, 69, 109, 109, 1057, 1057, 109, 109, 111, 111, - 1045, 118, 120, 120, 120, 120, 120, 120, 70, 70, - 70, 70, 70, 70, 13, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045 + 1057, 111, 1057, 111, 113, 1057, 1057, 1057, 1057, 113, + 116, 116, 1057, 1057, 116, 116, 118, 1057, 1057, 1057, + 1057, 118, 120, 120, 120, 120, 120, 120, 70, 70, + 70, 70, 70, 70, 13, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057 } ; -static yyconst flex_int16_t yy_chk[2155] = +static yyconst flex_int16_t yy_chk[2175] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1021,7 +1028,7 @@ static yyconst flex_int16_t yy_chk[2155] = 9, 24, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 26, 26, 7, 8, 8, 8, 8, 10, 8, 26, 33, 107, 24, 25, 8, 11, 11, - 11, 11, 11, 11, 1051, 20, 107, 20, 20, 11, + 11, 11, 11, 11, 1063, 20, 107, 20, 20, 11, 20, 25, 64, 27, 28, 20, 23, 27, 11, 12, 12, 12, 12, 12, 12, 23, 64, 27, 23, 28, @@ -1029,7 +1036,7 @@ static yyconst flex_int16_t yy_chk[2155] = 19, 19, 19, 19, 75, 19, 22, 22, 30, 31, 19, 19, 76, 31, 22, 32, 32, 34, 36, 35, 32, 22, 75, 36, 35, 38, 34, 37, 37, 86, - 47, 450, 34, 47, 35, 34, 32, 35, 36, 38, + 47, 455, 34, 47, 35, 34, 32, 35, 36, 38, 73, 39, 39, 73, 38, 37, 39, 53, 86, 53, 53, 59, 53, 57, 57, 59, 61, 61, 61, 61, 63, 61, 63, 63, 78, 63, 66, 61, 66, 66, @@ -1046,209 +1053,211 @@ static yyconst flex_int16_t yy_chk[2155] = 114, 119, 114, 119, 119, 124, 119, 120, 120, 120, 120, 125, 120, 124, 127, 126, 128, 130, 120, 127, - 131, 128, 130, 134, 132, 133, 125, 129, 132, 118, + 131, 128, 130, 134, 132, 133, 125, 129, 132, 181, 133, 129, 136, 137, 135, 138, 129, 134, 137, 139, - 142, 129, 163, 131, 139, 150, 135, 129, 129, 135, - 136, 140, 140, 141, 163, 138, 149, 143, 144, 141, - 145, 142, 143, 144, 146, 145, 147, 150, 148, 146, - 151, 152, 153, 147, 148, 154, 149, 153, 155, 156, + 142, 129, 181, 131, 139, 150, 135, 129, 129, 135, + 136, 140, 140, 141, 143, 138, 149, 144, 141, 143, + 145, 142, 144, 146, 141, 145, 147, 150, 146, 148, + 151, 152, 153, 147, 154, 148, 149, 153, 155, 156, 157, 156, 158, 159, 159, 151, 164, 157, 160, 161, - 162, 152, 162, 160, 161, 165, 116, 154, 155, 166, - 165, 158, 167, 168, 172, 164, 168, 169, 169, 162, + 162, 152, 162, 160, 161, 163, 154, 165, 155, 166, + 167, 158, 165, 168, 171, 164, 168, 163, 172, 162, - 171, 160, 170, 170, 166, 173, 175, 174, 173, 172, - 167, 174, 176, 176, 177, 179, 171, 178, 180, 177, - 175, 181, 178, 182, 182, 183, 184, 185, 186, 584, - 185, 584, 187, 188, 181, 179, 190, 190, 184, 180, - 186, 187, 192, 183, 189, 188, 189, 189, 191, 193, - 197, 191, 194, 195, 195, 196, 196, 199, 198, 192, - 200, 194, 192, 198, 193, 200, 201, 202, 203, 204, - 197, 205, 202, 203, 207, 201, 206, 199, 209, 206, - 211, 210, 213, 212, 214, 205, 217, 213, 207, 204, - 210, 215, 218, 209, 216, 206, 208, 218, 208, 208, + 175, 160, 169, 169, 166, 170, 170, 174, 167, 173, + 171, 174, 173, 172, 175, 176, 176, 177, 178, 179, + 180, 184, 177, 178, 182, 182, 183, 185, 186, 187, + 185, 191, 191, 184, 188, 189, 193, 194, 118, 179, + 186, 180, 192, 188, 183, 192, 195, 189, 190, 187, + 190, 190, 194, 193, 198, 195, 193, 196, 196, 197, + 197, 199, 200, 201, 202, 203, 199, 204, 201, 205, + 203, 206, 204, 202, 198, 207, 208, 210, 207, 211, + 212, 213, 200, 215, 216, 206, 214, 217, 211, 205, + 208, 214, 210, 116, 207, 209, 222, 209, 209, 216, - 217, 211, 212, 220, 214, 221, 215, 224, 222, 223, - 208, 208, 208, 223, 216, 219, 219, 225, 219, 226, - 227, 221, 228, 220, 222, 224, 228, 229, 226, 227, - 230, 225, 231, 237, 232, 230, 229, 235, 231, 232, - 234, 226, 233, 233, 241, 234, 236, 238, 238, 235, - 242, 236, 240, 240, 237, 243, 244, 246, 242, 248, - 250, 247, 251, 253, 243, 241, 247, 248, 244, 249, - 254, 252, 252, 255, 249, 254, 257, 246, 250, 252, - 254, 251, 260, 253, 256, 256, 262, 252, 258, 258, - 259, 261, 264, 255, 260, 263, 268, 252, 265, 266, + 213, 212, 218, 215, 221, 223, 226, 217, 219, 209, + 209, 209, 222, 219, 220, 220, 218, 220, 224, 225, + 226, 223, 224, 227, 221, 228, 229, 230, 231, 232, + 229, 115, 227, 231, 228, 232, 230, 225, 233, 234, + 234, 235, 236, 233, 237, 227, 235, 238, 239, 240, + 240, 236, 238, 242, 242, 243, 237, 244, 245, 246, + 248, 249, 250, 251, 252, 244, 249, 245, 251, 239, + 250, 246, 253, 254, 254, 255, 243, 257, 256, 259, + 248, 254, 252, 256, 258, 258, 260, 260, 256, 254, + 261, 253, 263, 264, 262, 255, 265, 257, 266, 254, - 263, 257, 267, 266, 270, 259, 271, 267, 262, 268, - 261, 264, 273, 265, 269, 269, 270, 272, 274, 274, - 272, 271, 275, 275, 276, 273, 277, 277, 279, 276, - 278, 278, 280, 279, 281, 283, 280, 282, 284, 281, - 283, 282, 285, 286, 288, 288, 294, 285, 287, 289, - 290, 287, 294, 290, 289, 291, 287, 286, 284, 291, - 287, 292, 293, 299, 298, 295, 292, 293, 295, 296, - 297, 300, 296, 301, 302, 297, 300, 299, 301, 302, - 303, 291, 298, 304, 306, 308, 304, 305, 309, 303, - 307, 305, 305, 310, 307, 313, 311, 312, 312, 313, + 270, 265, 269, 267, 259, 261, 262, 269, 268, 271, + 271, 263, 268, 270, 272, 264, 273, 266, 267, 274, + 275, 301, 274, 276, 276, 278, 272, 277, 277, 113, + 278, 273, 286, 275, 279, 279, 280, 280, 281, 301, + 282, 283, 285, 281, 282, 284, 283, 285, 287, 284, + 288, 289, 286, 287, 289, 290, 290, 291, 292, 289, + 294, 292, 291, 289, 288, 293, 295, 296, 297, 293, + 302, 295, 296, 294, 297, 298, 299, 300, 298, 299, + 303, 304, 300, 305, 302, 303, 304, 306, 305, 307, + 308, 293, 307, 309, 308, 308, 306, 310, 312, 311, - 308, 311, 314, 315, 306, 316, 309, 314, 310, 317, - 318, 319, 322, 320, 323, 321, 319, 318, 320, 315, - 321, 324, 317, 323, 316, 326, 325, 330, 326, 329, - 322, 325, 327, 327, 329, 324, 331, 332, 335, 338, - 342, 339, 341, 338, 331, 330, 339, 341, 343, 344, - 344, 347, 332, 115, 345, 335, 340, 350, 342, 349, - 340, 345, 349, 340, 346, 346, 347, 353, 340, 348, - 348, 351, 356, 343, 340, 340, 113, 350, 356, 351, - 352, 352, 353, 354, 354, 355, 357, 358, 355, 359, - 361, 360, 362, 362, 357, 358, 360, 361, 363, 364, + 313, 310, 314, 315, 315, 316, 317, 314, 318, 316, + 319, 317, 320, 309, 311, 313, 312, 322, 323, 321, + 325, 326, 322, 323, 318, 320, 321, 324, 327, 319, + 326, 328, 324, 333, 329, 334, 328, 329, 325, 330, + 330, 332, 327, 334, 335, 338, 332, 345, 341, 342, + 344, 333, 341, 346, 342, 344, 347, 347, 350, 335, + 353, 348, 338, 343, 111, 345, 352, 343, 348, 352, + 343, 349, 349, 350, 356, 343, 351, 351, 346, 354, + 353, 343, 343, 355, 355, 357, 363, 354, 360, 356, + 357, 358, 358, 359, 360, 361, 359, 362, 366, 366, - 365, 369, 364, 363, 366, 366, 367, 359, 370, 367, - 369, 371, 370, 372, 365, 373, 376, 367, 374, 375, - 378, 376, 372, 377, 374, 379, 380, 377, 381, 373, - 371, 380, 384, 375, 382, 382, 386, 379, 383, 378, - 385, 383, 387, 387, 388, 388, 389, 390, 392, 381, - 384, 393, 396, 385, 394, 395, 386, 396, 399, 397, - 397, 389, 400, 400, 398, 404, 393, 397, 394, 401, - 399, 390, 391, 392, 401, 391, 395, 391, 398, 402, - 403, 391, 409, 391, 404, 397, 407, 402, 391, 405, - 405, 407, 408, 410, 403, 408, 412, 411, 413, 414, + 365, 364, 369, 361, 363, 362, 364, 365, 367, 368, + 370, 370, 368, 367, 371, 373, 369, 371, 374, 375, + 376, 377, 374, 379, 373, 371, 378, 381, 380, 376, + 382, 381, 378, 380, 383, 377, 384, 379, 375, 385, + 388, 384, 386, 386, 387, 390, 383, 387, 389, 382, + 391, 391, 392, 392, 393, 394, 396, 397, 388, 398, + 385, 389, 400, 399, 402, 390, 109, 400, 416, 393, + 404, 404, 397, 398, 401, 401, 403, 416, 402, 394, + 395, 396, 401, 395, 399, 395, 406, 405, 403, 395, + 407, 395, 405, 408, 406, 413, 395, 409, 409, 412, - 415, 409, 411, 413, 418, 412, 410, 417, 419, 418, - 420, 421, 426, 419, 415, 420, 422, 422, 423, 414, - 421, 427, 417, 423, 425, 425, 428, 426, 425, 428, - 429, 430, 432, 433, 431, 429, 430, 431, 434, 435, - 436, 427, 443, 437, 435, 436, 437, 438, 441, 439, - 432, 434, 440, 433, 439, 442, 442, 440, 438, 444, - 445, 443, 446, 441, 445, 447, 448, 451, 454, 455, - 452, 453, 456, 444, 447, 452, 453, 456, 457, 459, - 446, 451, 454, 455, 458, 458, 460, 461, 462, 464, - 463, 448, 461, 457, 463, 460, 465, 459, 466, 467, + 401, 411, 412, 414, 407, 415, 411, 418, 417, 419, + 415, 422, 408, 417, 413, 420, 414, 423, 431, 424, + 420, 432, 423, 419, 424, 425, 422, 418, 426, 428, + 425, 427, 427, 431, 428, 430, 430, 426, 437, 430, + 433, 432, 434, 433, 435, 436, 438, 434, 436, 435, + 439, 442, 440, 441, 442, 444, 437, 440, 441, 443, + 444, 446, 445, 439, 447, 447, 438, 445, 448, 449, + 443, 450, 451, 452, 453, 450, 446, 456, 459, 457, + 458, 460, 452, 449, 457, 458, 462, 448, 461, 464, + 451, 456, 459, 461, 465, 460, 463, 463, 467, 453, - 468, 470, 469, 471, 464, 472, 476, 462, 469, 569, - 474, 465, 569, 475, 472, 479, 470, 466, 468, 484, - 467, 475, 477, 471, 474, 478, 476, 477, 479, 478, - 478, 480, 481, 481, 482, 483, 480, 484, 485, 482, - 486, 487, 489, 485, 488, 486, 487, 491, 488, 483, - 490, 489, 492, 493, 490, 494, 489, 495, 489, 496, - 489, 497, 491, 494, 498, 498, 492, 499, 499, 500, - 501, 501, 493, 502, 500, 495, 504, 503, 505, 507, - 497, 504, 506, 513, 496, 503, 507, 509, 506, 510, - 511, 512, 509, 502, 510, 511, 505, 514, 514, 515, + 466, 462, 468, 465, 469, 466, 468, 464, 470, 471, + 472, 473, 474, 476, 480, 475, 477, 467, 474, 469, + 479, 481, 480, 470, 484, 477, 72, 482, 471, 473, + 475, 472, 482, 476, 479, 483, 489, 484, 485, 483, + 483, 481, 487, 485, 486, 486, 490, 487, 488, 488, + 489, 491, 492, 493, 495, 494, 491, 492, 493, 494, + 497, 496, 498, 495, 490, 496, 499, 502, 495, 500, + 495, 501, 495, 511, 503, 497, 498, 500, 504, 504, + 505, 505, 506, 507, 507, 499, 508, 506, 509, 501, + 510, 511, 502, 503, 512, 510, 509, 513, 515, 518, - 512, 516, 513, 519, 517, 518, 518, 520, 521, 523, - 524, 525, 527, 523, 523, 526, 527, 529, 528, 515, - 530, 516, 517, 519, 534, 531, 521, 532, 533, 525, - 531, 529, 520, 533, 532, 526, 524, 528, 535, 530, - 536, 537, 534, 538, 539, 540, 544, 535, 538, 539, - 540, 541, 541, 543, 548, 536, 545, 549, 543, 548, - 545, 545, 537, 546, 546, 544, 547, 550, 551, 552, - 553, 554, 547, 111, 555, 557, 549, 556, 556, 557, - 558, 559, 560, 560, 553, 561, 550, 551, 552, 555, - 561, 562, 554, 558, 563, 564, 567, 567, 570, 563, + 512, 519, 516, 515, 513, 517, 508, 516, 518, 521, + 517, 520, 520, 522, 523, 524, 524, 525, 526, 529, + 519, 527, 530, 529, 529, 532, 531, 533, 534, 521, + 70, 533, 523, 522, 536, 535, 537, 525, 540, 527, + 542, 537, 543, 526, 531, 532, 539, 534, 530, 535, + 538, 539, 541, 536, 544, 542, 540, 538, 550, 544, + 545, 541, 546, 543, 553, 545, 549, 546, 547, 547, + 551, 549, 552, 552, 551, 551, 554, 550, 556, 555, + 557, 558, 554, 553, 555, 559, 561, 560, 562, 563, + 563, 564, 565, 566, 569, 564, 578, 556, 585, 557, - 564, 559, 571, 572, 573, 574, 574, 577, 572, 575, - 581, 562, 578, 570, 576, 576, 578, 579, 577, 573, - 582, 583, 587, 591, 109, 585, 586, 571, 581, 575, - 585, 586, 588, 593, 590, 594, 579, 600, 588, 590, - 582, 583, 587, 592, 592, 595, 599, 596, 591, 601, - 595, 593, 596, 597, 597, 594, 598, 600, 602, 605, - 603, 598, 604, 606, 599, 607, 608, 604, 609, 601, - 614, 610, 602, 603, 619, 613, 615, 609, 72, 605, - 609, 608, 616, 606, 613, 615, 607, 610, 615, 614, - 617, 616, 618, 618, 619, 617, 620, 621, 622, 623, + 558, 560, 585, 562, 559, 565, 568, 561, 567, 567, + 570, 568, 571, 566, 569, 570, 577, 571, 574, 574, + 576, 578, 579, 576, 580, 581, 581, 579, 582, 583, + 583, 577, 584, 586, 589, 588, 590, 592, 591, 580, + 591, 593, 592, 584, 594, 595, 593, 598, 582, 600, + 597, 595, 586, 588, 589, 597, 590, 599, 599, 601, + 602, 603, 604, 604, 594, 602, 603, 600, 605, 606, + 607, 608, 598, 605, 609, 611, 610, 612, 613, 601, + 611, 614, 68, 616, 615, 617, 622, 606, 609, 610, + 607, 608, 616, 620, 621, 616, 620, 612, 613, 615, - 624, 624, 625, 627, 633, 628, 632, 629, 627, 620, - 628, 634, 622, 629, 632, 621, 630, 623, 635, 630, - 625, 636, 633, 638, 639, 630, 640, 641, 639, 642, - 634, 640, 641, 643, 635, 644, 645, 646, 642, 636, - 647, 645, 650, 638, 648, 649, 649, 644, 643, 646, - 648, 650, 651, 651, 652, 653, 654, 654, 647, 652, - 655, 655, 656, 656, 657, 659, 660, 657, 661, 662, - 659, 663, 663, 661, 664, 653, 665, 666, 667, 664, - 668, 669, 670, 672, 660, 671, 671, 675, 665, 673, - 665, 677, 674, 678, 662, 665, 673, 666, 667, 682, + 623, 617, 614, 621, 624, 622, 625, 626, 626, 623, + 627, 625, 623, 624, 628, 629, 631, 630, 632, 632, + 633, 635, 641, 636, 640, 642, 635, 628, 636, 637, + 627, 630, 640, 629, 631, 637, 638, 643, 633, 638, + 641, 644, 646, 647, 642, 638, 648, 647, 650, 649, + 651, 648, 652, 643, 649, 653, 654, 650, 655, 644, + 653, 656, 646, 658, 652, 651, 660, 656, 654, 657, + 657, 660, 658, 659, 659, 661, 655, 662, 662, 663, + 663, 664, 664, 665, 667, 668, 665, 669, 670, 667, + 671, 671, 669, 672, 674, 661, 673, 675, 672, 676, - 668, 674, 669, 672, 676, 676, 680, 681, 670, 678, - 684, 680, 681, 675, 683, 684, 685, 677, 686, 682, - 687, 683, 688, 689, 690, 685, 691, 699, 688, 692, - 70, 693, 689, 686, 692, 693, 693, 694, 695, 687, - 691, 696, 694, 697, 698, 690, 696, 701, 698, 700, - 695, 702, 699, 704, 700, 697, 703, 703, 706, 704, - 705, 707, 709, 702, 706, 705, 711, 711, 712, 701, - 707, 716, 717, 719, 709, 719, 716, 712, 711, 718, - 718, 720, 720, 722, 723, 723, 724, 725, 726, 717, - 727, 728, 729, 730, 731, 732, 731, 734, 730, 725, + 677, 678, 680, 668, 679, 679, 684, 681, 673, 686, + 673, 682, 687, 670, 674, 673, 681, 675, 682, 676, + 683, 677, 680, 685, 685, 689, 690, 678, 687, 683, + 689, 690, 684, 691, 692, 686, 694, 693, 696, 695, + 697, 692, 693, 698, 699, 694, 697, 700, 704, 708, + 701, 703, 698, 691, 695, 701, 703, 696, 702, 705, + 704, 700, 702, 702, 705, 699, 706, 707, 709, 710, + 711, 707, 716, 709, 708, 712, 712, 713, 706, 714, + 715, 716, 711, 713, 714, 718, 715, 720, 720, 721, + 725, 710, 726, 727, 727, 725, 731, 718, 721, 720, - 726, 739, 727, 722, 733, 733, 728, 724, 736, 735, - 736, 737, 729, 732, 735, 738, 737, 740, 744, 739, - 738, 741, 742, 734, 743, 747, 741, 742, 745, 746, - 748, 749, 744, 750, 747, 751, 755, 740, 746, 752, - 745, 746, 748, 743, 749, 752, 754, 756, 757, 757, - 758, 751, 754, 750, 759, 761, 756, 764, 760, 758, - 761, 755, 760, 762, 762, 767, 764, 765, 765, 766, - 766, 768, 770, 759, 769, 771, 768, 767, 769, 772, - 773, 774, 775, 777, 778, 786, 777, 770, 68, 779, - 780, 780, 783, 774, 771, 781, 781, 778, 772, 782, + 728, 733, 728, 729, 729, 732, 732, 734, 735, 726, + 737, 736, 738, 739, 744, 740, 731, 740, 739, 734, + 735, 741, 733, 736, 742, 737, 743, 743, 746, 745, + 746, 747, 738, 742, 745, 749, 747, 748, 750, 741, + 744, 751, 748, 752, 753, 754, 751, 757, 752, 755, + 758, 760, 759, 749, 761, 756, 757, 765, 750, 754, + 762, 755, 758, 753, 756, 759, 762, 756, 764, 766, + 761, 760, 767, 767, 764, 768, 769, 770, 766, 774, + 771, 770, 765, 780, 768, 771, 772, 772, 774, 775, + 775, 776, 776, 777, 778, 769, 779, 781, 780, 778, - 782, 773, 779, 775, 786, 783, 784, 784, 785, 785, - 787, 787, 789, 790, 790, 791, 794, 789, 792, 792, - 793, 795, 794, 798, 795, 796, 796, 797, 797, 799, - 799, 800, 800, 801, 791, 802, 802, 803, 793, 804, - 805, 796, 798, 806, 804, 807, 808, 809, 806, 803, - 811, 813, 810, 814, 811, 808, 809, 810, 65, 801, - 807, 805, 814, 815, 815, 816, 818, 825, 821, 820, - 816, 813, 820, 821, 822, 822, 823, 826, 818, 824, - 823, 827, 824, 828, 829, 830, 827, 825, 828, 831, - 829, 832, 903, 833, 831, 833, 848, 826, 847, 832, + 779, 782, 783, 784, 785, 777, 787, 806, 788, 787, + 806, 789, 790, 790, 796, 784, 781, 791, 791, 793, + 782, 788, 802, 783, 789, 785, 792, 792, 794, 794, + 795, 795, 793, 796, 797, 797, 798, 798, 800, 801, + 801, 802, 804, 800, 803, 803, 805, 807, 807, 808, + 808, 809, 805, 810, 810, 811, 811, 812, 813, 813, + 804, 814, 815, 807, 816, 818, 817, 815, 819, 820, + 809, 817, 822, 814, 821, 824, 822, 819, 820, 821, + 818, 825, 829, 812, 827, 816, 826, 826, 831, 827, + 825, 831, 832, 836, 829, 824, 834, 832, 833, 833, - 903, 830, 836, 836, 839, 839, 841, 841, 843, 843, - 845, 846, 846, 859, 847, 845, 849, 854, 848, 851, - 851, 849, 854, 855, 856, 855, 857, 857, 858, 856, - 860, 859, 861, 862, 863, 864, 864, 865, 866, 867, - 858, 58, 860, 868, 861, 862, 865, 869, 870, 871, - 871, 873, 869, 870, 863, 876, 868, 874, 874, 867, - 877, 875, 879, 878, 866, 880, 880, 881, 882, 873, - 875, 883, 881, 876, 884, 888, 891, 889, 877, 878, - 889, 879, 892, 882, 890, 890, 894, 894, 895, 899, - 883, 891, 896, 896, 884, 888, 898, 898, 901, 900, + 834, 835, 837, 838, 835, 839, 840, 841, 838, 842, + 839, 843, 840, 836, 842, 844, 860, 844, 859, 843, + 847, 847, 837, 841, 850, 850, 853, 853, 855, 855, + 857, 858, 858, 871, 859, 857, 861, 866, 860, 863, + 863, 861, 866, 867, 868, 867, 869, 869, 870, 868, + 872, 871, 873, 874, 875, 876, 876, 877, 878, 879, + 870, 65, 872, 880, 873, 874, 877, 881, 882, 883, + 883, 885, 881, 882, 875, 888, 880, 886, 886, 879, + 889, 887, 891, 890, 878, 892, 892, 893, 894, 885, + 887, 895, 893, 888, 896, 900, 903, 901, 889, 890, - 892, 902, 905, 901, 906, 907, 902, 895, 900, 906, - 907, 899, 908, 909, 909, 910, 910, 905, 912, 913, - 915, 914, 920, 912, 914, 916, 918, 908, 921, 915, - 923, 913, 917, 917, 916, 918, 922, 922, 924, 923, - 925, 920, 927, 928, 932, 925, 924, 921, 930, 930, - 937, 927, 933, 933, 934, 938, 928, 934, 935, 935, - 936, 936, 939, 944, 932, 940, 940, 939, 937, 938, - 941, 945, 946, 947, 941, 948, 949, 950, 951, 945, - 948, 952, 944, 954, 955, 54, 954, 951, 958, 947, - 957, 946, 956, 956, 957, 960, 949, 958, 961, 962, + 901, 891, 904, 894, 902, 902, 906, 906, 907, 911, + 895, 903, 908, 908, 896, 900, 910, 910, 913, 912, + 904, 914, 915, 913, 917, 920, 914, 907, 912, 918, + 915, 911, 919, 924, 918, 921, 921, 919, 924, 917, + 920, 922, 922, 925, 926, 927, 932, 926, 928, 929, + 929, 930, 933, 935, 927, 925, 936, 928, 934, 934, + 930, 937, 935, 939, 936, 932, 937, 940, 942, 942, + 944, 933, 939, 945, 945, 946, 947, 947, 946, 949, + 940, 948, 948, 951, 950, 952, 952, 953, 951, 956, + 944, 953, 957, 958, 959, 961, 960, 949, 950, 962, - 965, 952, 955, 950, 960, 965, 966, 966, 967, 969, - 961, 970, 971, 973, 969, 972, 972, 967, 974, 977, - 975, 976, 978, 983, 962, 984, 976, 971, 975, 973, - 970, 979, 979, 980, 982, 982, 987, 974, 980, 985, - 985, 978, 988, 983, 989, 977, 992, 984, 986, 986, - 990, 990, 991, 991, 988, 987, 994, 995, 995, 996, - 996, 994, 997, 997, 989, 992, 998, 999, 999, 1001, - 1001, 998, 1003, 1003, 1004, 1007, 1008, 1008, 1012, 1004, - 1009, 1022, 1013, 1007, 1024, 1009, 1013, 1017, 1017, 1019, - 1021, 1021, 1036, 1019, 1025, 1025, 1022, 1030, 1012, 1026, + 957, 960, 963, 964, 966, 969, 967, 966, 956, 969, + 959, 963, 958, 968, 968, 961, 973, 970, 972, 974, + 978, 978, 979, 964, 967, 962, 970, 972, 973, 977, + 981, 979, 982, 983, 977, 981, 984, 984, 985, 986, + 988, 987, 989, 990, 974, 988, 991, 991, 983, 987, + 992, 982, 994, 994, 985, 992, 995, 996, 986, 997, + 997, 999, 990, 998, 998, 1000, 1001, 1024, 989, 1002, + 1002, 1003, 1003, 1004, 1007, 1007, 995, 1000, 1006, 996, + 999, 1008, 1008, 1006, 1009, 1009, 1001, 1024, 1010, 1011, + 1011, 1019, 1004, 1010, 1013, 1013, 1015, 1015, 1016, 1019, - 1026, 1038, 1024, 1028, 1028, 1031, 1031, 1035, 1040, 1030, - 1038, 1035, 1036, 1037, 1037, 1041, 1042, 1043, 1043, 49, - 48, 44, 40, 1040, 14, 13, 0, 0, 0, 1041, - 0, 0, 0, 0, 0, 1042, 1046, 1046, 1046, 1046, - 1046, 1046, 1047, 1047, 1047, 1047, 1047, 1047, 1048, 1048, - 1048, 1048, 1048, 1048, 1049, 1049, 1049, 1049, 1049, 1049, - 1050, 1050, 1050, 1050, 1050, 1050, 1052, 1052, 1052, 1052, - 1052, 1052, 1053, 1053, 0, 0, 1053, 1053, 1054, 1054, - 0, 1054, 0, 1054, 1055, 0, 0, 0, 0, 1055, - 1056, 1056, 0, 0, 1056, 1056, 1057, 0, 0, 0, + 1020, 1020, 1021, 1016, 1025, 1029, 1029, 1021, 1025, 1031, + 1033, 1033, 1034, 1031, 1036, 1037, 1037, 1038, 1038, 1040, + 1040, 1042, 1043, 1043, 1047, 1048, 1050, 1034, 1047, 1049, + 1049, 1052, 1036, 1042, 1053, 1050, 1054, 1055, 1055, 58, + 54, 49, 48, 44, 40, 1048, 1052, 14, 1053, 13, + 0, 0, 0, 0, 0, 1054, 1058, 1058, 1058, 1058, + 1058, 1058, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, + 1060, 1060, 1060, 1060, 1061, 1061, 1061, 1061, 1061, 1061, + 1062, 1062, 1062, 1062, 1062, 1062, 1064, 1064, 1064, 1064, + 1064, 1064, 1065, 1065, 0, 0, 1065, 1065, 1066, 1066, - 0, 1057, 1058, 1058, 1058, 1058, 1058, 1058, 1059, 1059, - 1059, 1059, 1059, 1059, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045 + 0, 1066, 0, 1066, 1067, 0, 0, 0, 0, 1067, + 1068, 1068, 0, 0, 1068, 1068, 1069, 0, 0, 0, + 0, 1069, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, + 1071, 1071, 1071, 1071, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, + 1057, 1057, 1057, 1057 } ; static yy_state_type yy_last_accepting_state; @@ -1372,7 +1381,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1375 "" +#line 1384 "" #define INITIAL 0 #define quotedstring 1 @@ -1559,7 +1568,7 @@ YY_DECL #line 120 "util/configlexer.lex" -#line 1562 "" +#line 1571 "" if ( !(yy_init) ) { @@ -1618,13 +1627,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1046 ) + if ( yy_current_state >= 1058 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2115 ); + while ( yy_base[yy_current_state] != 2135 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2047,108 +2056,113 @@ YY_RULE_SETUP case 79: YY_RULE_SETUP #line 202 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 80: YY_RULE_SETUP #line 203 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 81: YY_RULE_SETUP #line 204 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 82: YY_RULE_SETUP #line 205 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 83: YY_RULE_SETUP #line 206 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 84: YY_RULE_SETUP #line 207 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 85: YY_RULE_SETUP #line 208 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 86: YY_RULE_SETUP #line 209 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 87: YY_RULE_SETUP #line 210 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 88: YY_RULE_SETUP #line 211 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 89: YY_RULE_SETUP #line 212 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 90: YY_RULE_SETUP #line 213 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 91: YY_RULE_SETUP #line 214 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 92: YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 93: -/* rule 93 can match eol */ YY_RULE_SETUP #line 216 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } + YY_BREAK +case 94: +/* rule 94 can match eol */ +YY_RULE_SETUP +#line 217 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 94: +case 95: YY_RULE_SETUP -#line 219 "util/configlexer.lex" +#line 220 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 220 "util/configlexer.lex" +#line 221 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 95: -YY_RULE_SETUP -#line 225 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 96: -/* rule 96 can match eol */ YY_RULE_SETUP #line 226 "util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 97: +/* rule 97 can match eol */ +YY_RULE_SETUP +#line 227 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 228 "util/configlexer.lex" +#line 229 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2161,34 +2175,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 98: +case 99: YY_RULE_SETUP -#line 240 "util/configlexer.lex" +#line 241 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 241 "util/configlexer.lex" +#line 242 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 99: -YY_RULE_SETUP -#line 246 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 100: -/* rule 100 can match eol */ YY_RULE_SETUP #line 247 "util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 101: +/* rule 101 can match eol */ +YY_RULE_SETUP +#line 248 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 249 "util/configlexer.lex" +#line 250 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2201,38 +2215,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 102: +case 103: YY_RULE_SETUP -#line 261 "util/configlexer.lex" +#line 262 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 263 "util/configlexer.lex" +#line 264 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 103: -YY_RULE_SETUP -#line 267 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 104: -/* rule 104 can match eol */ YY_RULE_SETUP #line 268 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 105: +/* rule 105 can match eol */ YY_RULE_SETUP #line 269 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 106: YY_RULE_SETUP #line 270 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 107: +YY_RULE_SETUP +#line 271 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2240,27 +2254,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 275 "util/configlexer.lex" +#line 276 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 107: -YY_RULE_SETUP -#line 279 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 108: -/* rule 108 can match eol */ YY_RULE_SETUP #line 280 "util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 109: +/* rule 109 can match eol */ +YY_RULE_SETUP +#line 281 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 282 "util/configlexer.lex" +#line 283 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2270,7 +2284,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 288 "util/configlexer.lex" +#line 289 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2281,33 +2295,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 298 "util/configlexer.lex" +#line 299 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 302 "util/configlexer.lex" +#line 303 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 305 "util/configlexer.lex" +#line 306 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 309 "util/configlexer.lex" +#line 310 "util/configlexer.lex" ECHO; YY_BREAK -#line 2310 "" +#line 2324 "" case YY_END_OF_BUFFER: { @@ -2597,7 +2611,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1046 ) + if ( yy_current_state >= 1058 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2625,11 +2639,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1046 ) + if ( yy_current_state >= 1058 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1045); + yy_is_jam = (yy_current_state == 1057); return yy_is_jam ? 0 : yy_current_state; } @@ -3266,7 +3280,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 309 "util/configlexer.lex" +#line 310 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 294f48a08..18c1c3008 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -199,6 +199,7 @@ neg-cache-size{COLON} { YDVAR(1, VAR_NEG_CACHE_SIZE) } val-nsec3-keysize-iterations{COLON} { YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } use-syslog{COLON} { YDVAR(1, VAR_USE_SYSLOG) } +log-time-ascii{COLON} { YDVAR(1, VAR_LOG_TIME_ASCII) } local-zone{COLON} { YDVAR(2, VAR_LOCAL_ZONE) } local-data{COLON} { YDVAR(1, VAR_LOCAL_DATA) } local-data-ptr{COLON} { YDVAR(1, VAR_LOCAL_DATA_PTR) } diff --git a/util/configparser.c b/util/configparser.c index d4090d7d6..114c3ec1e 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -163,7 +163,8 @@ VAR_LOCAL_DATA_PTR = 352, VAR_JOSTLE_TIMEOUT = 353, VAR_STUB_PRIME = 354, - VAR_UNWANTED_REPLY_THRESHOLD = 355 + VAR_UNWANTED_REPLY_THRESHOLD = 355, + VAR_LOG_TIME_ASCII = 356 }; #endif /* Tokens. */ @@ -265,6 +266,7 @@ #define VAR_JOSTLE_TIMEOUT 353 #define VAR_STUB_PRIME 354 #define VAR_UNWANTED_REPLY_THRESHOLD 355 +#define VAR_LOG_TIME_ASCII 356 @@ -323,7 +325,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 327 "util/configparser.c" +#line 329 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -336,7 +338,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 340 "util/configparser.c" +#line 342 "util/configparser.c" #ifdef short # undef short @@ -551,20 +553,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 180 +#define YYLAST 182 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 101 +#define YYNTOKENS 102 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 102 +#define YYNNTS 103 /* YYNRULES -- Number of rules. */ -#define YYNRULES 193 +#define YYNRULES 195 /* YYNRULES -- Number of states. */ -#define YYNSTATES 283 +#define YYNSTATES 286 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 355 +#define YYMAXUTOK 356 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -607,7 +609,7 @@ static const yytype_uint8 yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100 + 95, 96, 97, 98, 99, 100, 101 }; #if YYDEBUG @@ -623,71 +625,72 @@ static const yytype_uint16 yyprhs[] = 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, - 163, 165, 167, 169, 171, 173, 176, 177, 179, 181, - 183, 185, 187, 190, 191, 193, 195, 197, 200, 203, - 206, 209, 212, 215, 218, 221, 224, 227, 230, 233, - 236, 239, 242, 245, 248, 251, 254, 257, 260, 263, - 266, 269, 272, 275, 278, 281, 284, 287, 290, 293, - 296, 299, 302, 305, 308, 311, 314, 317, 320, 323, - 326, 329, 332, 335, 338, 341, 344, 347, 350, 353, - 356, 359, 362, 365, 368, 371, 374, 378, 381, 384, - 387, 390, 393, 396, 399, 402, 405, 408, 412, 415, - 418, 421, 424, 427, 430, 433, 436, 439, 441, 444, - 445, 447, 449, 451, 453, 455, 457, 459, 462, 465, - 468, 471, 474, 477 + 163, 165, 167, 169, 171, 173, 175, 178, 179, 181, + 183, 185, 187, 189, 192, 193, 195, 197, 199, 202, + 205, 208, 211, 214, 217, 220, 223, 226, 229, 232, + 235, 238, 241, 244, 247, 250, 253, 256, 259, 262, + 265, 268, 271, 274, 277, 280, 283, 286, 289, 292, + 295, 298, 301, 304, 307, 310, 313, 316, 319, 322, + 325, 328, 331, 334, 337, 340, 343, 346, 349, 352, + 355, 358, 361, 364, 367, 370, 373, 376, 379, 383, + 386, 389, 392, 395, 398, 401, 404, 407, 410, 413, + 417, 420, 423, 426, 429, 432, 435, 438, 441, 444, + 446, 449, 450, 452, 454, 456, 458, 460, 462, 464, + 467, 470, 473, 476, 479, 482 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 102, 0, -1, -1, 102, 103, -1, 104, 105, -1, - 107, 108, -1, 110, 111, -1, 193, 194, -1, 11, - -1, 105, 106, -1, -1, 113, -1, 114, -1, 118, - -1, 121, -1, 127, -1, 128, -1, 129, -1, 130, - -1, 119, -1, 133, -1, 134, -1, 135, -1, 136, - -1, 137, -1, 149, -1, 150, -1, 151, -1, 153, - -1, 154, -1, 124, -1, 155, -1, 156, -1, 159, - -1, 157, -1, 158, -1, 160, -1, 161, -1, 162, - -1, 170, -1, 144, -1, 145, -1, 146, -1, 147, - -1, 163, -1, 173, -1, 141, -1, 143, -1, 174, - -1, 176, -1, 177, -1, 178, -1, 125, -1, 148, - -1, 180, -1, 181, -1, 142, -1, 179, -1, 132, - -1, 120, -1, 138, -1, 171, -1, 175, -1, 164, - -1, 172, -1, 183, -1, 184, -1, 126, -1, 115, - -1, 131, -1, 166, -1, 116, -1, 122, -1, 123, - -1, 139, -1, 140, -1, 182, -1, 165, -1, 167, - -1, 168, -1, 117, -1, 185, -1, 152, -1, 169, - -1, 38, -1, 108, 109, -1, -1, 186, -1, 187, - -1, 188, -1, 189, -1, 44, -1, 111, 112, -1, - -1, 190, -1, 191, -1, 192, -1, 13, 10, -1, - 12, 10, -1, 76, 10, -1, 79, 10, -1, 96, - 10, -1, 14, 10, -1, 16, 10, -1, 67, 10, - -1, 15, 10, -1, 80, 10, -1, 81, 10, -1, - 31, 10, -1, 60, 10, -1, 75, 10, -1, 17, - 10, -1, 18, 10, -1, 19, 10, -1, 20, 10, - -1, 77, 10, -1, 66, 10, -1, 21, 10, -1, - 22, 10, -1, 23, 10, -1, 24, 10, -1, 25, - 10, -1, 68, 10, -1, 82, 10, -1, 83, 10, - -1, 54, 10, -1, 64, 10, -1, 55, 10, -1, - 48, 10, -1, 49, 10, -1, 50, 10, -1, 51, - 10, -1, 61, 10, -1, 26, 10, -1, 27, 10, - -1, 28, 10, -1, 98, 10, -1, 29, 10, -1, - 30, 10, -1, 32, 10, -1, 33, 10, -1, 35, - 10, -1, 36, 10, -1, 34, 10, -1, 41, 10, - -1, 42, 10, -1, 43, 10, -1, 52, 10, -1, - 71, 10, -1, 85, 10, -1, 78, 10, -1, 86, - 10, -1, 87, 10, -1, 100, 10, -1, 47, 10, - -1, 69, 10, -1, 72, 10, 10, -1, 53, 10, - -1, 56, 10, -1, 70, 10, -1, 57, 10, -1, - 58, 10, -1, 59, 10, -1, 65, 10, -1, 62, - 10, -1, 63, 10, -1, 84, 10, -1, 73, 10, - 10, -1, 74, 10, -1, 97, 10, -1, 37, 10, - -1, 39, 10, -1, 40, 10, -1, 99, 10, -1, - 37, 10, -1, 45, 10, -1, 46, 10, -1, 88, - -1, 194, 195, -1, -1, 196, -1, 198, -1, 197, - -1, 199, -1, 200, -1, 201, -1, 202, -1, 89, - 10, -1, 91, 10, -1, 90, 10, -1, 92, 10, - -1, 93, 10, -1, 94, 10, -1, 95, 10, -1 + 103, 0, -1, -1, 103, 104, -1, 105, 106, -1, + 108, 109, -1, 111, 112, -1, 195, 196, -1, 11, + -1, 106, 107, -1, -1, 114, -1, 115, -1, 119, + -1, 122, -1, 128, -1, 129, -1, 130, -1, 131, + -1, 120, -1, 135, -1, 136, -1, 137, -1, 138, + -1, 139, -1, 151, -1, 152, -1, 153, -1, 155, + -1, 156, -1, 125, -1, 157, -1, 158, -1, 161, + -1, 159, -1, 160, -1, 162, -1, 163, -1, 164, + -1, 172, -1, 146, -1, 147, -1, 148, -1, 149, + -1, 165, -1, 175, -1, 143, -1, 145, -1, 176, + -1, 178, -1, 179, -1, 180, -1, 126, -1, 150, + -1, 182, -1, 183, -1, 144, -1, 181, -1, 133, + -1, 121, -1, 140, -1, 173, -1, 177, -1, 166, + -1, 174, -1, 185, -1, 186, -1, 127, -1, 116, + -1, 132, -1, 168, -1, 117, -1, 123, -1, 124, + -1, 141, -1, 142, -1, 184, -1, 167, -1, 169, + -1, 170, -1, 118, -1, 187, -1, 154, -1, 171, + -1, 134, -1, 38, -1, 109, 110, -1, -1, 188, + -1, 189, -1, 190, -1, 191, -1, 44, -1, 112, + 113, -1, -1, 192, -1, 193, -1, 194, -1, 13, + 10, -1, 12, 10, -1, 76, 10, -1, 79, 10, + -1, 96, 10, -1, 14, 10, -1, 16, 10, -1, + 67, 10, -1, 15, 10, -1, 80, 10, -1, 81, + 10, -1, 31, 10, -1, 60, 10, -1, 75, 10, + -1, 17, 10, -1, 18, 10, -1, 19, 10, -1, + 20, 10, -1, 77, 10, -1, 66, 10, -1, 101, + 10, -1, 21, 10, -1, 22, 10, -1, 23, 10, + -1, 24, 10, -1, 25, 10, -1, 68, 10, -1, + 82, 10, -1, 83, 10, -1, 54, 10, -1, 64, + 10, -1, 55, 10, -1, 48, 10, -1, 49, 10, + -1, 50, 10, -1, 51, 10, -1, 61, 10, -1, + 26, 10, -1, 27, 10, -1, 28, 10, -1, 98, + 10, -1, 29, 10, -1, 30, 10, -1, 32, 10, + -1, 33, 10, -1, 35, 10, -1, 36, 10, -1, + 34, 10, -1, 41, 10, -1, 42, 10, -1, 43, + 10, -1, 52, 10, -1, 71, 10, -1, 85, 10, + -1, 78, 10, -1, 86, 10, -1, 87, 10, -1, + 100, 10, -1, 47, 10, -1, 69, 10, -1, 72, + 10, 10, -1, 53, 10, -1, 56, 10, -1, 70, + 10, -1, 57, 10, -1, 58, 10, -1, 59, 10, + -1, 65, 10, -1, 62, 10, -1, 63, 10, -1, + 84, 10, -1, 73, 10, 10, -1, 74, 10, -1, + 97, 10, -1, 37, 10, -1, 39, 10, -1, 40, + 10, -1, 99, 10, -1, 37, 10, -1, 45, 10, + -1, 46, 10, -1, 88, -1, 196, 197, -1, -1, + 198, -1, 200, -1, 199, -1, 201, -1, 202, -1, + 203, -1, 204, -1, 89, 10, -1, 91, 10, -1, + 90, 10, -1, 92, 10, -1, 93, 10, -1, 94, + 10, -1, 95, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -701,18 +704,18 @@ static const yytype_uint16 yyrline[] = 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 135, 136, 136, 137, 137, 138, 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 142, 143, 143, 144, - 144, 145, 145, 146, 148, 160, 161, 162, 162, 162, - 162, 164, 176, 177, 178, 178, 178, 180, 189, 198, - 209, 218, 227, 236, 249, 264, 273, 282, 291, 300, - 309, 318, 327, 336, 345, 354, 363, 377, 384, 391, - 398, 406, 413, 420, 427, 434, 442, 450, 457, 466, - 475, 482, 489, 500, 508, 521, 530, 539, 547, 560, - 569, 578, 587, 596, 609, 616, 626, 636, 646, 656, - 666, 676, 683, 690, 699, 706, 716, 730, 737, 755, - 764, 773, 783, 793, 800, 808, 821, 829, 849, 856, - 871, 878, 885, 892, 902, 909, 916, 923, 928, 929, - 930, 930, 930, 931, 931, 931, 932, 934, 944, 953, - 960, 967, 974, 981 + 144, 145, 145, 146, 146, 148, 160, 161, 162, 162, + 162, 162, 164, 176, 177, 178, 178, 178, 180, 189, + 198, 209, 218, 227, 236, 249, 264, 273, 282, 291, + 300, 309, 318, 327, 336, 345, 354, 363, 377, 386, + 393, 400, 407, 415, 422, 429, 436, 443, 451, 459, + 466, 475, 484, 491, 498, 509, 517, 530, 539, 548, + 556, 569, 578, 587, 596, 605, 618, 625, 635, 645, + 655, 665, 675, 685, 692, 699, 708, 715, 725, 739, + 746, 764, 773, 782, 792, 802, 809, 817, 830, 838, + 858, 865, 880, 887, 894, 901, 911, 918, 925, 932, + 937, 938, 939, 939, 939, 940, 940, 940, 941, 943, + 953, 962, 969, 976, 983, 990 }; #endif @@ -752,10 +755,10 @@ static const char *const yytname[] = "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", - "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", + "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", + "$accept", "toplevelvars", "toplevelvar", "serverstart", + "contents_server", "content_server", "stubstart", "contents_stub", + "content_stub", "forwardstart", "contents_forward", "content_forward", "server_num_threads", "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_port", "server_interface", "server_outgoing_interface", @@ -763,34 +766,35 @@ static const char *const yytname[] = "server_outgoing_port_avoid", "server_outgoing_num_tcp", "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", - "server_use_syslog", "server_chroot", "server_username", - "server_directory", "server_logfile", "server_pidfile", - "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", - "server_trust_anchor_file", "server_trusted_keys_file", - "server_trust_anchor", "server_hide_identity", "server_hide_version", - "server_identity", "server_version", "server_msg_buffer_size", - "server_msg_cache_size", "server_msg_cache_slabs", - "server_num_queries_per_thread", "server_jostle_timeout", - "server_rrset_cache_size", "server_rrset_cache_slabs", - "server_infra_host_ttl", "server_infra_lame_ttl", - "server_infra_cache_numhosts", "server_infra_cache_lame_size", - "server_infra_cache_slabs", "server_target_fetch_policy", - "server_harden_short_bufsize", "server_harden_large_queries", - "server_harden_glue", "server_harden_dnssec_stripped", - "server_harden_referral_path", "server_use_caps_for_id", - "server_private_address", "server_private_domain", - "server_unwanted_reply_threshold", "server_do_not_query_address", - "server_do_not_query_localhost", "server_access_control", - "server_module_conf", "server_val_override_date", "server_cache_max_ttl", - "server_bogus_ttl", "server_val_clean_additional", - "server_val_permissive_mode", "server_val_nsec3_keysize_iterations", - "server_key_cache_size", "server_key_cache_slabs", - "server_neg_cache_size", "server_local_zone", "server_local_data", - "server_local_data_ptr", "stub_name", "stub_host", "stub_addr", - "stub_prime", "forward_name", "forward_host", "forward_addr", "rcstart", - "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", - "rc_control_interface", "rc_server_key_file", "rc_server_cert_file", - "rc_control_key_file", "rc_control_cert_file", 0 + "server_use_syslog", "server_log_time_ascii", "server_chroot", + "server_username", "server_directory", "server_logfile", + "server_pidfile", "server_root_hints", "server_dlv_anchor_file", + "server_dlv_anchor", "server_trust_anchor_file", + "server_trusted_keys_file", "server_trust_anchor", + "server_hide_identity", "server_hide_version", "server_identity", + "server_version", "server_msg_buffer_size", "server_msg_cache_size", + "server_msg_cache_slabs", "server_num_queries_per_thread", + "server_jostle_timeout", "server_rrset_cache_size", + "server_rrset_cache_slabs", "server_infra_host_ttl", + "server_infra_lame_ttl", "server_infra_cache_numhosts", + "server_infra_cache_lame_size", "server_infra_cache_slabs", + "server_target_fetch_policy", "server_harden_short_bufsize", + "server_harden_large_queries", "server_harden_glue", + "server_harden_dnssec_stripped", "server_harden_referral_path", + "server_use_caps_for_id", "server_private_address", + "server_private_domain", "server_unwanted_reply_threshold", + "server_do_not_query_address", "server_do_not_query_localhost", + "server_access_control", "server_module_conf", + "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl", + "server_val_clean_additional", "server_val_permissive_mode", + "server_val_nsec3_keysize_iterations", "server_key_cache_size", + "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", + "server_local_data", "server_local_data_ptr", "stub_name", "stub_host", + "stub_addr", "stub_prime", "forward_name", "forward_host", + "forward_addr", "rcstart", "contents_rc", "content_rc", + "rc_control_enable", "rc_control_port", "rc_control_interface", + "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", + "rc_control_cert_file", 0 }; #endif @@ -809,23 +813,23 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355 + 355, 356 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 101, 102, 102, 103, 103, 103, 103, 104, 105, - 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 107, 108, 108, 109, 109, 109, - 109, 110, 111, 111, 112, 112, 112, 113, 114, 115, + 0, 102, 103, 103, 104, 104, 104, 104, 105, 106, + 106, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 108, 109, 109, 110, 110, + 110, 110, 111, 112, 112, 113, 113, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, @@ -833,9 +837,9 @@ static const yytype_uint8 yyr1[] = 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 194, - 195, 195, 195, 195, 195, 195, 195, 196, 197, 198, - 199, 200, 201, 202 + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 196, 197, 197, 197, 197, 197, 197, 197, 198, + 199, 200, 201, 202, 203, 204 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -849,18 +853,18 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 2, 2, 2 + 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -868,51 +872,51 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 8, 84, 91, 177, 3, 10, 86, - 93, 179, 4, 5, 6, 7, 0, 0, 0, 0, + 2, 0, 1, 8, 85, 92, 179, 3, 10, 87, + 94, 181, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11, 12, 68, 71, 80, 13, 19, 59, 14, 72, - 73, 30, 52, 67, 15, 16, 17, 18, 69, 58, - 20, 21, 22, 23, 24, 60, 74, 75, 46, 56, - 47, 40, 41, 42, 43, 53, 25, 26, 27, 82, - 28, 29, 31, 32, 34, 35, 33, 36, 37, 38, - 44, 63, 77, 70, 78, 79, 83, 39, 61, 64, - 45, 48, 62, 49, 50, 51, 57, 54, 55, 76, - 65, 66, 81, 0, 0, 0, 0, 85, 87, 88, - 89, 90, 0, 0, 0, 92, 94, 95, 96, 0, - 0, 0, 0, 0, 0, 0, 178, 180, 182, 181, - 183, 184, 185, 186, 98, 97, 102, 105, 103, 111, - 112, 113, 114, 117, 118, 119, 120, 121, 133, 134, - 135, 137, 138, 108, 139, 140, 143, 141, 142, 144, - 145, 146, 154, 128, 129, 130, 131, 147, 157, 125, - 127, 158, 160, 161, 162, 109, 132, 164, 165, 126, - 163, 116, 104, 122, 155, 159, 148, 0, 0, 168, - 110, 99, 115, 150, 100, 106, 107, 123, 124, 166, - 149, 151, 152, 101, 169, 136, 153, 170, 171, 172, - 173, 174, 175, 176, 187, 189, 188, 190, 191, 192, - 193, 156, 167 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 11, 12, 68, 71, 80, 13, 19, 59, 14, + 72, 73, 30, 52, 67, 15, 16, 17, 18, 69, + 58, 84, 20, 21, 22, 23, 24, 60, 74, 75, + 46, 56, 47, 40, 41, 42, 43, 53, 25, 26, + 27, 82, 28, 29, 31, 32, 34, 35, 33, 36, + 37, 38, 44, 63, 77, 70, 78, 79, 83, 39, + 61, 64, 45, 48, 62, 49, 50, 51, 57, 54, + 55, 76, 65, 66, 81, 0, 0, 0, 0, 86, + 88, 89, 90, 91, 0, 0, 0, 93, 95, 96, + 97, 0, 0, 0, 0, 0, 0, 0, 180, 182, + 184, 183, 185, 186, 187, 188, 99, 98, 103, 106, + 104, 112, 113, 114, 115, 119, 120, 121, 122, 123, + 135, 136, 137, 139, 140, 109, 141, 142, 145, 143, + 144, 146, 147, 148, 156, 130, 131, 132, 133, 149, + 159, 127, 129, 160, 162, 163, 164, 110, 134, 166, + 167, 128, 165, 117, 105, 124, 157, 161, 150, 0, + 0, 170, 111, 100, 116, 152, 101, 107, 108, 125, + 126, 168, 151, 153, 154, 102, 171, 138, 155, 118, + 172, 173, 174, 175, 176, 177, 178, 189, 191, 190, + 192, 193, 194, 195, 158, 169 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 8, 12, 89, 9, 13, 167, 10, - 14, 175, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 168, 169, 170, 171, 176, - 177, 178, 11, 15, 186, 187, 188, 189, 190, 191, - 192, 193 + -1, 1, 7, 8, 12, 90, 9, 13, 169, 10, + 14, 177, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 170, 171, 172, 173, + 178, 179, 180, 11, 15, 188, 189, 190, 191, 192, + 193, 194, 195 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -921,14 +925,14 @@ static const yytype_int16 yydefgoto[] = static const yytype_int16 yypact[] = { -13, 76, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -12, 40, 44, 2, 15, 16, 17, 18, - 22, 23, 24, 68, 72, 73, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 105, 106, 107, 108, 109, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, -13, + -13, -13, -12, 40, 45, 3, 15, 16, 17, 18, + 22, 23, 24, 68, 71, 73, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 105, 106, 107, 108, 109, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, @@ -936,19 +940,19 @@ static const yytype_int16 yypact[] = -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, 155, 156, 157, 158, -13, -13, -13, - -13, -13, 159, 160, 161, -13, -13, -13, -13, 162, - 163, 164, 165, 166, 167, 168, -13, -13, -13, -13, + -13, -13, -13, -13, -13, 157, 158, 159, 160, -13, + -13, -13, -13, -13, 161, 162, 163, -13, -13, -13, + -13, 164, 165, 166, 167, 168, 169, 170, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, 169, 170, -13, + -13, -13, -13, -13, -13, -13, -13, -13, -13, 171, + 172, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13 + -13, -13, -13, -13, -13, -13 }; /* YYPGOTO[NTERM-NUM]. */ @@ -964,7 +968,7 @@ static const yytype_int8 yypgoto[] = -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13 + -13, -13, -13 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -976,23 +980,23 @@ static const yytype_uint16 yytable[] = { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 194, 195, 196, 197, 41, - 42, 43, 198, 199, 200, 44, 45, 46, 47, 48, + 36, 37, 38, 39, 40, 196, 197, 198, 199, 41, + 42, 43, 200, 201, 202, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 2, 163, 201, 164, - 165, 172, 202, 203, 85, 86, 87, 3, 88, 173, - 174, 179, 180, 181, 182, 183, 184, 185, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 4, 220, 221, 222, 223, 224, - 5, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 166, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 6, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282 + 79, 80, 81, 82, 83, 84, 2, 165, 203, 166, + 167, 204, 174, 205, 85, 86, 87, 3, 88, 89, + 175, 176, 181, 182, 183, 184, 185, 186, 187, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 4, 221, 222, 223, 224, 225, + 5, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 168, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 6, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 }; static const yytype_uint8 yycheck[] = @@ -1005,8 +1009,8 @@ static const yytype_uint8 yycheck[] = 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 37, 10, 39, - 40, 37, 10, 10, 96, 97, 98, 11, 100, 45, - 46, 89, 90, 91, 92, 93, 94, 95, 10, 10, + 40, 10, 37, 10, 96, 97, 98, 11, 100, 101, + 45, 46, 89, 90, 91, 92, 93, 94, 95, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1015,33 +1019,33 @@ static const yytype_uint8 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 88, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10 + 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 102, 0, 11, 38, 44, 88, 103, 104, 107, - 110, 193, 105, 108, 111, 194, 12, 13, 14, 15, + 0, 103, 0, 11, 38, 44, 88, 104, 105, 108, + 111, 195, 106, 109, 112, 196, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 96, 97, 98, 100, 106, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 83, 84, 85, 86, 87, 96, 97, 98, 100, 101, + 107, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 37, 39, 40, 99, 109, 186, 187, - 188, 189, 37, 45, 46, 112, 190, 191, 192, 89, - 90, 91, 92, 93, 94, 95, 195, 196, 197, 198, - 199, 200, 201, 202, 10, 10, 10, 10, 10, 10, + 183, 184, 185, 186, 187, 37, 39, 40, 99, 110, + 188, 189, 190, 191, 37, 45, 46, 113, 192, 193, + 194, 89, 90, 91, 92, 93, 94, 95, 197, 198, + 199, 200, 201, 202, 203, 204, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1050,7 +1054,7 @@ static const yytype_uint8 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10 + 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1871,7 +1875,7 @@ yyreduce: } break; - case 84: + case 85: #line 149 "util/configparser.y" { struct config_stub* s; @@ -1885,7 +1889,7 @@ yyreduce: } break; - case 91: + case 92: #line 165 "util/configparser.y" { struct config_stub* s; @@ -1899,7 +1903,7 @@ yyreduce: } break; - case 97: + case 98: #line 181 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1910,7 +1914,7 @@ yyreduce: } break; - case 98: + case 99: #line 190 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1921,7 +1925,7 @@ yyreduce: } break; - case 99: + case 100: #line 199 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1934,7 +1938,7 @@ yyreduce: } break; - case 100: + case 101: #line 210 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1945,7 +1949,7 @@ yyreduce: } break; - case 101: + case 102: #line 219 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1956,7 +1960,7 @@ yyreduce: } break; - case 102: + case 103: #line 228 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1967,7 +1971,7 @@ yyreduce: } break; - case 103: + case 104: #line 237 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1982,7 +1986,7 @@ yyreduce: } break; - case 104: + case 105: #line 250 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1999,7 +2003,7 @@ yyreduce: } break; - case 105: + case 106: #line 265 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2010,7 +2014,7 @@ yyreduce: } break; - case 106: + case 107: #line 274 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2021,7 +2025,7 @@ yyreduce: } break; - case 107: + case 108: #line 283 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2032,7 +2036,7 @@ yyreduce: } break; - case 108: + case 109: #line 292 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2043,7 +2047,7 @@ yyreduce: } break; - case 109: + case 110: #line 301 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2054,7 +2058,7 @@ yyreduce: } break; - case 110: + case 111: #line 310 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2065,7 +2069,7 @@ yyreduce: } break; - case 111: + case 112: #line 319 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2076,7 +2080,7 @@ yyreduce: } break; - case 112: + case 113: #line 328 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2087,7 +2091,7 @@ yyreduce: } break; - case 113: + case 114: #line 337 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2098,7 +2102,7 @@ yyreduce: } break; - case 114: + case 115: #line 346 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2109,7 +2113,7 @@ yyreduce: } break; - case 115: + case 116: #line 355 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2120,7 +2124,7 @@ yyreduce: } break; - case 116: + case 117: #line 364 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2136,8 +2140,19 @@ yyreduce: } break; - case 117: + case 118: #line 378 "util/configparser.y" + { + OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 119: +#line 387 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2145,8 +2160,8 @@ yyreduce: } break; - case 118: -#line 385 "util/configparser.y" + case 120: +#line 394 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2154,8 +2169,8 @@ yyreduce: } break; - case 119: -#line 392 "util/configparser.y" + case 121: +#line 401 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2163,8 +2178,8 @@ yyreduce: } break; - case 120: -#line 399 "util/configparser.y" + case 122: +#line 408 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2173,8 +2188,8 @@ yyreduce: } break; - case 121: -#line 407 "util/configparser.y" + case 123: +#line 416 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2182,8 +2197,8 @@ yyreduce: } break; - case 122: -#line 414 "util/configparser.y" + case 124: +#line 423 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2191,8 +2206,8 @@ yyreduce: } break; - case 123: -#line 421 "util/configparser.y" + case 125: +#line 430 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2200,8 +2215,8 @@ yyreduce: } break; - case 124: -#line 428 "util/configparser.y" + case 126: +#line 437 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2209,8 +2224,8 @@ yyreduce: } break; - case 125: -#line 435 "util/configparser.y" + case 127: +#line 444 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2219,8 +2234,8 @@ yyreduce: } break; - case 126: -#line 443 "util/configparser.y" + case 128: +#line 452 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2229,8 +2244,8 @@ yyreduce: } break; - case 127: -#line 451 "util/configparser.y" + case 129: +#line 460 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2238,8 +2253,8 @@ yyreduce: } break; - case 128: -#line 458 "util/configparser.y" + case 130: +#line 467 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2249,8 +2264,8 @@ yyreduce: } break; - case 129: -#line 467 "util/configparser.y" + case 131: +#line 476 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2260,8 +2275,8 @@ yyreduce: } break; - case 130: -#line 476 "util/configparser.y" + case 132: +#line 485 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2269,8 +2284,8 @@ yyreduce: } break; - case 131: -#line 483 "util/configparser.y" + case 133: +#line 492 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2278,8 +2293,8 @@ yyreduce: } break; - case 132: -#line 490 "util/configparser.y" + case 134: +#line 499 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2291,8 +2306,8 @@ yyreduce: } break; - case 133: -#line 501 "util/configparser.y" + case 135: +#line 510 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2301,8 +2316,8 @@ yyreduce: } break; - case 134: -#line 509 "util/configparser.y" + case 136: +#line 518 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2316,8 +2331,8 @@ yyreduce: } break; - case 135: -#line 522 "util/configparser.y" + case 137: +#line 531 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2327,8 +2342,8 @@ yyreduce: } break; - case 136: -#line 531 "util/configparser.y" + case 138: +#line 540 "util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2338,8 +2353,8 @@ yyreduce: } break; - case 137: -#line 540 "util/configparser.y" + case 139: +#line 549 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2348,8 +2363,8 @@ yyreduce: } break; - case 138: -#line 548 "util/configparser.y" + case 140: +#line 557 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2363,8 +2378,8 @@ yyreduce: } break; - case 139: -#line 561 "util/configparser.y" + case 141: +#line 570 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2374,8 +2389,8 @@ yyreduce: } break; - case 140: -#line 570 "util/configparser.y" + case 142: +#line 579 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2385,8 +2400,8 @@ yyreduce: } break; - case 141: -#line 579 "util/configparser.y" + case 143: +#line 588 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2396,8 +2411,8 @@ yyreduce: } break; - case 142: -#line 588 "util/configparser.y" + case 144: +#line 597 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> @@ -2407,8 +2422,8 @@ yyreduce: } break; - case 143: -#line 597 "util/configparser.y" + case 145: +#line 606 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2422,8 +2437,8 @@ yyreduce: } break; - case 144: -#line 610 "util/configparser.y" + case 146: +#line 619 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2431,8 +2446,8 @@ yyreduce: } break; - case 145: -#line 617 "util/configparser.y" + case 147: +#line 626 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2443,8 +2458,8 @@ yyreduce: } break; - case 146: -#line 627 "util/configparser.y" + case 148: +#line 636 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2455,8 +2470,8 @@ yyreduce: } break; - case 147: -#line 637 "util/configparser.y" + case 149: +#line 646 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2467,8 +2482,8 @@ yyreduce: } break; - case 148: -#line 647 "util/configparser.y" + case 150: +#line 656 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2479,8 +2494,8 @@ yyreduce: } break; - case 149: -#line 657 "util/configparser.y" + case 151: +#line 666 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2491,8 +2506,8 @@ yyreduce: } break; - case 150: -#line 667 "util/configparser.y" + case 152: +#line 676 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2503,8 +2518,8 @@ yyreduce: } break; - case 151: -#line 677 "util/configparser.y" + case 153: +#line 686 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2512,8 +2527,8 @@ yyreduce: } break; - case 152: -#line 684 "util/configparser.y" + case 154: +#line 693 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2521,8 +2536,8 @@ yyreduce: } break; - case 153: -#line 691 "util/configparser.y" + case 155: +#line 700 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2532,8 +2547,8 @@ yyreduce: } break; - case 154: -#line 700 "util/configparser.y" + case 156: +#line 709 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2541,8 +2556,8 @@ yyreduce: } break; - case 155: -#line 707 "util/configparser.y" + case 157: +#line 716 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2553,8 +2568,8 @@ yyreduce: } break; - case 156: -#line 717 "util/configparser.y" + case 158: +#line 726 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2569,8 +2584,8 @@ yyreduce: } break; - case 157: -#line 731 "util/configparser.y" + case 159: +#line 740 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2578,8 +2593,8 @@ yyreduce: } break; - case 158: -#line 738 "util/configparser.y" + case 160: +#line 747 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2598,8 +2613,8 @@ yyreduce: } break; - case 159: -#line 756 "util/configparser.y" + case 161: +#line 765 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2609,8 +2624,8 @@ yyreduce: } break; - case 160: -#line 765 "util/configparser.y" + case 162: +#line 774 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2620,8 +2635,8 @@ yyreduce: } break; - case 161: -#line 774 "util/configparser.y" + case 163: +#line 783 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2632,8 +2647,8 @@ yyreduce: } break; - case 162: -#line 784 "util/configparser.y" + case 164: +#line 793 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2644,8 +2659,8 @@ yyreduce: } break; - case 163: -#line 794 "util/configparser.y" + case 165: +#line 803 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2653,8 +2668,8 @@ yyreduce: } break; - case 164: -#line 801 "util/configparser.y" + case 166: +#line 810 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -2663,8 +2678,8 @@ yyreduce: } break; - case 165: -#line 809 "util/configparser.y" + case 167: +#line 818 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2678,8 +2693,8 @@ yyreduce: } break; - case 166: -#line 822 "util/configparser.y" + case 168: +#line 831 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -2688,8 +2703,8 @@ yyreduce: } break; - case 167: -#line 830 "util/configparser.y" + case 169: +#line 839 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -2710,8 +2725,8 @@ yyreduce: } break; - case 168: -#line 850 "util/configparser.y" + case 170: +#line 859 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -2719,8 +2734,8 @@ yyreduce: } break; - case 169: -#line 857 "util/configparser.y" + case 171: +#line 866 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2736,8 +2751,8 @@ yyreduce: } break; - case 170: -#line 872 "util/configparser.y" + case 172: +#line 881 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2745,8 +2760,8 @@ yyreduce: } break; - case 171: -#line 879 "util/configparser.y" + case 173: +#line 888 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -2754,8 +2769,8 @@ yyreduce: } break; - case 172: -#line 886 "util/configparser.y" + case 174: +#line 895 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -2763,8 +2778,8 @@ yyreduce: } break; - case 173: -#line 893 "util/configparser.y" + case 175: +#line 902 "util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2775,8 +2790,8 @@ yyreduce: } break; - case 174: -#line 903 "util/configparser.y" + case 176: +#line 912 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2784,8 +2799,8 @@ yyreduce: } break; - case 175: -#line 910 "util/configparser.y" + case 177: +#line 919 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -2793,8 +2808,8 @@ yyreduce: } break; - case 176: -#line 917 "util/configparser.y" + case 178: +#line 926 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -2802,15 +2817,15 @@ yyreduce: } break; - case 177: -#line 924 "util/configparser.y" + case 179: +#line 933 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 187: -#line 935 "util/configparser.y" + case 189: +#line 944 "util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2821,8 +2836,8 @@ yyreduce: } break; - case 188: -#line 945 "util/configparser.y" + case 190: +#line 954 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2832,8 +2847,8 @@ yyreduce: } break; - case 189: -#line 954 "util/configparser.y" + case 191: +#line 963 "util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -2841,8 +2856,8 @@ yyreduce: } break; - case 190: -#line 961 "util/configparser.y" + case 192: +#line 970 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -2850,8 +2865,8 @@ yyreduce: } break; - case 191: -#line 968 "util/configparser.y" + case 193: +#line 977 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -2859,8 +2874,8 @@ yyreduce: } break; - case 192: -#line 975 "util/configparser.y" + case 194: +#line 984 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -2868,8 +2883,8 @@ yyreduce: } break; - case 193: -#line 982 "util/configparser.y" + case 195: +#line 991 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -2879,7 +2894,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2883 "util/configparser.c" +#line 2898 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3093,7 +3108,7 @@ yyreturn: } -#line 988 "util/configparser.y" +#line 997 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 473492e04..e1e4b4de4 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -136,7 +136,8 @@ VAR_LOCAL_DATA_PTR = 352, VAR_JOSTLE_TIMEOUT = 353, VAR_STUB_PRIME = 354, - VAR_UNWANTED_REPLY_THRESHOLD = 355 + VAR_UNWANTED_REPLY_THRESHOLD = 355, + VAR_LOG_TIME_ASCII = 356 }; #endif /* Tokens. */ @@ -238,6 +239,7 @@ #define VAR_JOSTLE_TIMEOUT 353 #define VAR_STUB_PRIME 354 #define VAR_UNWANTED_REPLY_THRESHOLD 355 +#define VAR_LOG_TIME_ASCII 356 @@ -249,7 +251,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 253 "util/configparser.h" +#line 255 "util/configparser.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/util/configparser.y b/util/configparser.y index 767a4b419..ee9791e1a 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -96,7 +96,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT -%token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD +%token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -143,7 +143,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_harden_referral_path | server_private_address | server_private_domain | server_extended_statistics | server_local_data_ptr | server_jostle_timeout | - server_unwanted_reply_threshold + server_unwanted_reply_threshold | server_log_time_ascii ; stubstart: VAR_STUB_ZONE { @@ -374,6 +374,15 @@ server_use_syslog: VAR_USE_SYSLOG STRING free($2); } ; +server_log_time_ascii: VAR_LOG_TIME_ASCII STRING + { + OUTYY(("P(server_log_time_ascii:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_time_ascii = (strcmp($2, "yes")==0); + free($2); + } + ; server_chroot: VAR_CHROOT STRING { OUTYY(("P(server_chroot:%s)\n", $2)); diff --git a/util/log.c b/util/log.c index 429610e09..b4d2c71d0 100644 --- a/util/log.c +++ b/util/log.c @@ -71,6 +71,8 @@ static int logging_to_syslog = 0; #endif /* HAVE_SYSLOG_H */ /** time to print in log, if NULL, use time(2) */ static uint32_t* log_now = NULL; +/** print time in UTC or in secondsfrom1970 */ +static int log_time_asc = 0; void log_init(const char* filename, int use_syslog, const char* chrootdir) @@ -139,13 +141,20 @@ void log_set_time(uint32_t* t) log_now = t; } +void log_set_time_asc(int use_asc) +{ + log_time_asc = use_asc; +} + void log_vmsg(int pri, const char* type, const char *format, va_list args) { char message[MAXSYSLOGMSGLEN]; + char tmbuf[32]; unsigned int* tid = (unsigned int*)ub_thread_key_get(logkey); - uint32_t now; + time_t now; + struct tm tm; (void)pri; vsnprintf(message, sizeof(message), format, args); #ifdef HAVE_SYSLOG_H @@ -157,8 +166,16 @@ log_vmsg(int pri, const char* type, #endif /* HAVE_SYSLOG_H */ if(!logfile) return; if(log_now) - now = *log_now; - else now = (uint32_t)time(NULL); + now = (time_t)*log_now; + else now = (time_t)time(NULL); +#if defined(HAVE_STRFTIME) && defined(HAVE_LOCALTIME_R) + if(log_time_asc && strftime(tmbuf, sizeof(tmbuf), "%b %d %H:%M:%S", + localtime_r(&now, &tm))%(sizeof(tmbuf)) != 0) { + /* %sizeof buf!=0 because old strftime returned max on error */ + fprintf(logfile, "%s %s[%d:%x] %s: %s\n", tmbuf, + ident, (int)getpid(), tid?*tid:0, type, message); + } else +#endif fprintf(logfile, "[%u] %s[%d:%x] %s: %s\n", (unsigned)now, ident, (int)getpid(), tid?*tid:0, type, message); fflush(logfile); diff --git a/util/log.h b/util/log.h index c61a61268..926a8ab62 100644 --- a/util/log.h +++ b/util/log.h @@ -114,6 +114,14 @@ void log_ident_set(const char* id); */ void log_set_time(uint32_t* t); +/** + * Set if the time value is printed ascii or decimal in log entries. + * @param use_asc: if true, ascii is printed, otherwise decimal. + * If the conversion fails or you have no time functions, + * decimal is printed. + */ +void log_set_time_asc(int use_asc); + /** * Log informational message. * Pass printf formatted arguments. No trailing newline is needed.