diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..35d7ee94f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,41 @@ +--- +name: Bug report +about: Create a report to help us improve Unbound +title: '' +labels: '' +assignees: '' + +--- + + + +**Describe the bug** +A clear and concise description of what the bug is. + +**To reproduce** +Steps to reproduce the behavior: +1. +2. +3. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**System:** + - Unbound version: + - OS: + - `unbound -V` output: + +**Additional information** +Add any other information that you may have gathered about the issue here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..e9ca08b7a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,31 @@ +--- +name: Feature request +about: Suggest an idea for Unbound +title: "[FR]" +labels: '' +assignees: '' + +--- + + + +**Current behavior** +Is there a current behavior that the feature relates to? +If yes, would you wish the current behavior to change? + +**Describe the desired feature** +A clear and concise description of what the feature should be. + +**Potential use-case** +Describe how you see this feature being useful to other Unbound users. diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml new file mode 100644 index 000000000..fbbdd8018 --- /dev/null +++ b/.github/workflows/analysis_ports.yml @@ -0,0 +1,346 @@ +name: Analysis and Ports + +on: + workflow_dispatch: + inputs: + start: + description: 'Start analysis and port workflow' + default: 'yes' + required: true + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - name: GCC on Linux + os: ubuntu-latest + config: "--enable-debug --disable-flto" + make_test: "yes" + - name: Clang-analyzer + os: ubuntu-latest + config: "CC=clang --enable-debug --disable-flto --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: libevent + os: ubuntu-latest + install_libevent: "yes" + config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: OS X + os: macos-latest + install_expat: "yes" + config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" + make_test: "yes" + - name: Clang on OS X + os: macos-latest + install_expat: "yes" + config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: ubsan (gcc undefined behaviour sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' + make_test: "yes" + - name: asan (gcc address sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' + make_test: "yes" + - name: Apple iPhone on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: iPhoneOS + IOS_CPU: armv7s + test_ios: "yes" + config: "no" + make: "no" + - name: Apple iPhone on iOS, arm64 + os: macos-latest + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross + IOS_SDK: iPhoneOS + IOS_CPU: arm64 + test_ios: "yes" + config: "no" + make: "no" + - name: Apple TV on iOS, arm64 + os: macos-latest + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross + IOS_SDK: AppleTVOS + IOS_CPU: arm64 + test_ios: "yes" + config: "no" + make: "no" + - name: Apple Watch on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: WatchOS + IOS_CPU: armv7k + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: iPhoneSimulator + IOS_CPU: i386 + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: iPhoneSimulator + IOS_CPU: x86_64 + test_ios: "yes" + config: "no" + make: "no" + - name: AppleTVSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: AppleTVSimulator + IOS_CPU: x86_64 + test_ios: "yes" + config: "no" + make: "no" + - name: WatchSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: WatchSimulator + IOS_CPU: i386 + test_ios: "yes" + config: "no" + make: "no" + - name: Android armv7a + os: ubuntu-latest + AUTOTOOLS_HOST: armv7a-linux-androidabi + OPENSSL_HOST: android-arm + ANDROID_CPU: armv7a + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android aarch64 + os: ubuntu-latest + AUTOTOOLS_HOST: aarch64-linux-android + OPENSSL_HOST: android-arm64 + ANDROID_CPU: aarch64 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android x86 + os: ubuntu-latest + AUTOTOOLS_HOST: i686-linux-android + OPENSSL_HOST: android-x86 + ANDROID_CPU: x86 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android x86_64 + os: ubuntu-latest + AUTOTOOLS_HOST: x86_64-linux-android + OPENSSL_HOST: android-x86_64 + ANDROID_CPU: x86_64 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Windows + os: windows-latest + test_windows: "yes" + config: "no" + make: "no" + + steps: + - uses: actions/checkout@v2 + with: + submodules: false + - name: test_windows + if: ${{ matrix.test_windows == 'yes' }} + shell: bash + run: | + export unboundpath=`pwd` + echo unboundpath=${unboundpath} + cd .. + export prepath=`pwd` + echo prepath=${prepath} + #echo "curl cpanm" + #curl -L -k -s -S -o cpanm https://cpanmin.us/ + #echo "perl cpanm Pod::Usage" + #perl cpanm Pod::Usage + mkdir openssl + echo "curl openssl" + curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz + tar xzf openssl-1.1.1j.tar.gz + cd openssl-1.1.1j + # remove pod::Usage because we do not need -help or -man output + # from the Configure script + echo "Fixup ./Configure by removing use Pod::Usage require" + sed -e 's/use Pod::Usage//' < Configure > Configure.fix + echo "./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix=\""$prepath/openssl\""" + ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="$prepath/openssl" + # make the libs only, build faster + echo "make build_libs" + #make + make build_libs + mv Makefile Makefile.orig + # fixup \\ in the installtop to /. + echo "fixup INSTALLTOP" + sed -e 's?^INSTALLTOP=.*$?INSTALLTOP='"$prepath"'/openssl?' < Makefile.orig > Makefile + # install the includes and libs only, build faster + echo "make install_dev" + #make install_sw + make install_dev + cd .. + mkdir expat + echo "curl expat" + curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz + tar xzf expat-2.2.10.tar.gz + cd expat-2.2.10 + echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + # fixup SHELL is treated specially, but SHELZZ is not by make. + echo "Fixup Makefiles by renaming SHELL to SHELLZZ" + mv Makefile Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < Makefile.orig > Makefile + mv lib/Makefile lib/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < lib/Makefile.orig > lib/Makefile + mv doc/Makefile doc/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < doc/Makefile.orig > doc/Makefile + mv examples/Makefile examples/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < examples/Makefile.orig > examples/Makefile + mv tests/Makefile tests/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < tests/Makefile.orig > tests/Makefile + mv xmlwf/Makefile xmlwf/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < xmlwf/Makefile.orig > xmlwf/Makefile + echo "make" + make + echo "make install" + make install + cd .. + echo "unbound" + cd unbound + echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\" --disable-shared" + ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" --disable-shared + make + # specific test output + #make testbound.exe; ./testbound.exe -s + #make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv + make test + - name: test_android + if: ${{ matrix.test_android == 'yes' }} + env: + AUTOTOOLS_HOST: ${{ matrix.AUTOTOOLS_HOST }} + OPENSSL_HOST: ${{ matrix.OPENSSL_HOST }} + ANDROID_API: ${{ matrix.ANDROID_API }} + ANDROID_CPU: ${{ matrix.ANDROID_CPU }} + run: | + #(already installed) ./contrib/android/install_tools.sh + export ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU" + echo ANDROID_PREFIX=${ANDROID_PREFIX} + export ANDROID_SDK_ROOT="$HOME/android-sdk" + echo ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} + export ANDROID_NDK_ROOT="$HOME/android-ndk" + echo ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT} + export AUTOTOOLS_BUILD="$(./config.guess)" + echo AUTOTOOLS_BUILD=${AUTOTOOLS_BUILD} + export PKG_CONFIG_PATH="$ANDROID_PREFIX/lib/pkgconfig" + echo PKG_CONFIG_PATH=${PKG_CONFIG_PATH} + export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$ANDROID_PREFIX --with-ssl=$ANDROID_PREFIX --disable-gost --with-libexpat=$ANDROID_PREFIX" + echo CONFIG_OPTS=${CONFIG_OPTS} + echo "::group::install_ndk" + echo "./contrib/android/install_ndk.sh" + ./contrib/android/install_ndk.sh + echo "::endgroup::" + echo "::group::setenv_android.sh" + echo "./contrib/android/setenv_android.sh" + source ./contrib/android/setenv_android.sh + echo "::endgroup::" + echo "::group::install_openssl" + echo "./contrib/android/install_openssl.sh" + ./contrib/android/install_openssl.sh + echo "::endgroup::" + echo "::group::install_expat" + echo "./contrib/android/install_expat.sh" + ./contrib/android/install_expat.sh + echo "::endgroup::" + echo "::group::configure" + echo "./configure ${CONFIG_OPTS}" + ./configure ${CONFIG_OPTS} + echo "::endgroup::" + echo "::group::make" + # make is here to preserve environment variables + make + echo "::endgroup::" + echo "::group::make install" + make install + echo "::endgroup::" + - name: test ios + if: ${{ matrix.test_ios == 'yes' }} + env: + AUTOTOOLS_HOST: ${{ matrix.AUTOTOOLS_HOST }} + OPENSSL_HOST: ${{ matrix.OPENSSL_HOST }} + IOS_SDK: ${{ matrix.IOS_SDK }} + IOS_CPU: ${{ matrix.IOS_CPU }} + run: | + #(already installed) ./contrib/ios/install_tools.sh + export AUTOTOOLS_BUILD="$(./config.guess)" + echo AUTOTOOLS_BUILD=${AUTOTOOLS_BUILD} + export IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU" + echo IOS_PREFIX=${IOS_PREFIX} + export PKG_CONFIG_PATH="$IOS_PREFIX/lib/pkgconfig" + echo PKG_CONFIG_PATH=${PKG_CONFIG_PATH} + export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$IOS_PREFIX --with-ssl=$IOS_PREFIX --disable-gost --with-libexpat=$IOS_PREFIX" + echo CONFIG_OPTS=${CONFIG_OPTS} + echo "::group::setenv_ios.sh" + echo "./contrib/ios/setenv_ios.sh" + source ./contrib/ios/setenv_ios.sh + echo "::endgroup::" + echo "::group::install_openssl" + echo "./contrib/ios/install_openssl.sh" + ./contrib/ios/install_openssl.sh + echo "::endgroup::" + echo "::group::install_expat" + echo "./contrib/ios/install_expat.sh" + ./contrib/ios/install_expat.sh + echo "::endgroup::" + echo "::group::configure" + echo "./configure ${CONFIG_OPTS}" + ./configure ${CONFIG_OPTS} + echo "::endgroup::" + echo "::group::make" + # make is here to preserve environment variables + make + echo "::endgroup::" + echo "::group::make install" + make install + echo "::endgroup::" + - name: install libevent + if: ${{ matrix.install_libevent == 'yes' }} + run: sudo apt-get install libevent-dev + - name: install expat + if: ${{ matrix.install_expat == 'yes' }} + run: brew install expat + - name: configure + if: ${{ matrix.config != 'no' }} + run: ./configure ${{ matrix.config }} + - name: make + if: ${{ matrix.make != 'no' }} + run: make + - name: make test + if: ${{ matrix.make_test == 'yes' }} + run: make test + - name: clang-analysis + if: ${{ matrix.clang_analysis == 'yes' }} + run: (cd testdata/clang-analysis.tdir; bash clang-analysis.test) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..73d68fbf3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,21 @@ +name: ci + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: configure + run: ./configure --enable-debug + - name: make + run: make + - name: make test + run: make test diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4 index dd8d8c329..7ce790708 100644 --- a/acx_nlnetlabs.m4 +++ b/acx_nlnetlabs.m4 @@ -2,7 +2,10 @@ # Copyright 2009, Wouter Wijngaards, NLnet Labs. # BSD licensed. # -# Version 38 +# Version 40 +# 2021-06-14 fix nonblocking test to use host instead of target for mingw test. +# 2021-05-17 fix nonblocking socket test from grep on mingw32 to mingw for +# 64bit compatibility. # 2021-03-24 fix ACX_FUNC_DEPRECATED to use CPPFLAGS and CFLAGS. # 2021-01-05 fix defun for aclocal # 2021-01-05 autoconf 2.70 autoupdate and fixes, no AC_TRY_COMPILE @@ -915,7 +918,7 @@ dnl a nonblocking socket do not work, a new call to select is necessary. AC_DEFUN([ACX_CHECK_NONBLOCKING_BROKEN], [ AC_MSG_CHECKING([if nonblocking sockets work]) -if echo $target | grep mingw32 >/dev/null; then +if echo $host | grep mingw >/dev/null; then AC_MSG_RESULT([no (windows)]) AC_DEFINE([NONBLOCKING_IS_BROKEN], 1, [Define if the network stack does not fully support nonblocking io (causes lower performance).]) else diff --git a/compat/ctime_r.c b/compat/ctime_r.c index 87c2609a8..9f2bf15bc 100644 --- a/compat/ctime_r.c +++ b/compat/ctime_r.c @@ -38,5 +38,5 @@ char *ctime_r(const time_t *timep, char *buf) strcpy(buf, result); } lock_basic_unlock(&ctime_lock); - return result; + return buf; } diff --git a/config.h.in b/config.h.in index 103ad9f00..cb27afa4f 100644 --- a/config.h.in +++ b/config.h.in @@ -28,6 +28,9 @@ /* Whether daemon is deprecated */ #undef DEPRECATED_DAEMON +/* Deprecate RSA 1024 bit length, makes that an unsupported key */ +#undef DEPRECATE_RSA_1024 + /* Define this to enable kernel based UDP source port randomization. */ #undef DISABLE_EXPLICIT_PORT_RANDOMISATION @@ -516,6 +519,9 @@ /* Define if you have the SSL libraries installed. */ #undef HAVE_SSL +/* Define to 1 if you have the `SSL_CTX_set_alpn_protos' function. */ +#undef HAVE_SSL_CTX_SET_ALPN_PROTOS + /* Define to 1 if you have the `SSL_CTX_set_alpn_select_cb' function. */ #undef HAVE_SSL_CTX_SET_ALPN_SELECT_CB @@ -529,6 +535,9 @@ function. */ #undef HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB +/* Define to 1 if you have the `SSL_get0_alpn_selected' function. */ +#undef HAVE_SSL_GET0_ALPN_SELECTED + /* Define to 1 if you have the `SSL_get0_peername' function. */ #undef HAVE_SSL_GET0_PEERNAME diff --git a/configure b/configure index 266691d42..3ed5dadda 100755 --- a/configure +++ b/configure @@ -877,6 +877,7 @@ enable_subnet enable_gost enable_ecdsa enable_dsa +with_deprecate_rsa_1024 enable_ed25519 enable_ed448 enable_event_api @@ -1639,6 +1640,10 @@ Optional Packages: /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr) --with-libbsd Use portable libbsd functions + --with-deprecate-rsa-1024 + Deprecate RSA 1024 bit length, makes that an + unsupported key, for use when OpenSSL FIPS refuses + 1024 bit verification --with-libevent=pathname use libevent (will check /usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr or you can specify @@ -4199,9 +4204,9 @@ case "$exec_prefix" in esac # are we on MinGW? -if uname -s 2>&1 | grep MINGW32 >/dev/null; then on_mingw="yes" +if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes" else - if echo $host $target | grep mingw32 >/dev/null; then on_mingw="yes" + if echo $host | grep mingw >/dev/null; then on_mingw="yes" else on_mingw="no"; fi fi @@ -14611,6 +14616,8 @@ CC=$lt_save_CC +# pkg-config is only needed for these options, do not require it otherwise +if test "$enable_systemd" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then @@ -14731,6 +14738,7 @@ $as_echo "no" >&6; } PKG_CONFIG="" fi fi +fi # Checks for header files. for ac_header in stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h @@ -15922,7 +15930,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5 $as_echo_n "checking if nonblocking sockets work... " >&6; } -if echo $target | grep mingw32 >/dev/null; then +if echo $host | grep mingw >/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5 $as_echo "no (windows)" >&6; } @@ -16190,7 +16198,10 @@ done # check if we can use SO_REUSEPORT -if echo "$host" | $GREP -i -e linux -e dragonfly >/dev/null; then +reuseport_default=0 +if echo "$host" | $GREP -i -e linux >/dev/null; then reuseport_default=1; fi +if echo "$host" | $GREP -i -e dragonfly >/dev/null; then reuseport_default=1; fi +if test "$reuseport_default" = 1; then $as_echo "#define REUSEPORT_DEFAULT 1" >>confdefs.h @@ -18418,7 +18429,7 @@ done # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb +for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected SSL_CTX_set_alpn_protos do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -19035,6 +19046,18 @@ _ACEOF ;; esac + +# Check whether --with-deprecate-rsa-1024 was given. +if test "${with_deprecate_rsa_1024+set}" = set; then : + withval=$with_deprecate_rsa_1024; +fi + +if test "$with_deprecate_rsa_1024" = "yes"; then + +$as_echo "#define DEPRECATE_RSA_1024 1" >>confdefs.h + +fi + # Check whether --enable-ed25519 was given. if test "${enable_ed25519+set}" = set; then : enableval=$enable_ed25519; @@ -19161,8 +19184,8 @@ fi case "$enable_tfo_client" in yes) - case `uname` in - Linux) ac_fn_c_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default + case "$host_os" in + linux*) ac_fn_c_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default #include " @@ -19178,8 +19201,8 @@ cat >>confdefs.h <<_ACEOF #define USE_MSG_FASTOPEN 1 _ACEOF - ;; - Darwin) ac_fn_c_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default + ;; + darwin*) ac_fn_c_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default #include " @@ -19195,9 +19218,9 @@ cat >>confdefs.h <<_ACEOF #define USE_OSX_MSG_FASTOPEN 1 _ACEOF - ;; + ;; esac - ;; + ;; no|*) ;; esac @@ -20412,7 +20435,7 @@ done # check if setreuid en setregid fail, on MacOSX10.4(darwin8). -if echo $target_os | grep darwin8 > /dev/null; then +if echo $host_os | grep darwin8 > /dev/null; then $as_echo "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index 43286e2b9..5ffbe6834 100644 --- a/configure.ac +++ b/configure.ac @@ -147,9 +147,9 @@ case "$exec_prefix" in esac # are we on MinGW? -if uname -s 2>&1 | grep MINGW32 >/dev/null; then on_mingw="yes" +if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes" else - if echo $host $target | grep mingw32 >/dev/null; then on_mingw="yes" + if echo $host | grep mingw >/dev/null; then on_mingw="yes" else on_mingw="no"; fi fi @@ -385,7 +385,10 @@ AC_CHECK_PROG(doxygen, doxygen, doxygen) AC_CHECK_TOOL(STRIP, strip) ACX_LIBTOOL_C_ONLY +# pkg-config is only needed for these options, do not require it otherwise +if test "$enable_systemd" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then PKG_PROG_PKG_CONFIG +fi # Checks for header files. AC_CHECK_HEADERS([stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h],,, [AC_INCLUDES_DEFAULT]) @@ -490,7 +493,10 @@ ACX_MKDIR_ONE_ARG AC_CHECK_FUNCS([strptime],[AC_CHECK_STRPTIME_WORKS],[AC_LIBOBJ([strptime])]) # check if we can use SO_REUSEPORT -if echo "$host" | $GREP -i -e linux -e dragonfly >/dev/null; then +reuseport_default=0 +if echo "$host" | $GREP -i -e linux >/dev/null; then reuseport_default=1; fi +if echo "$host" | $GREP -i -e dragonfly >/dev/null; then reuseport_default=1; fi +if test "$reuseport_default" = 1; then AC_DEFINE(REUSEPORT_DEFAULT, 1, [if REUSEPORT is enabled by default]) else AC_DEFINE(REUSEPORT_DEFAULT, 0, [if REUSEPORT is enabled by default]) @@ -859,7 +865,7 @@ AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_C # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb]) +AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected SSL_CTX_set_alpn_protos]) LIBS="$BAKLIBS" AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ @@ -1155,6 +1161,11 @@ AC_INCLUDES_DEFAULT ;; esac +AC_ARG_WITH(deprecate-rsa-1024, AS_HELP_STRING([--with-deprecate-rsa-1024],[Deprecate RSA 1024 bit length, makes that an unsupported key, for use when OpenSSL FIPS refuses 1024 bit verification])) +if test "$with_deprecate_rsa_1024" = "yes"; then + AC_DEFINE([DEPRECATE_RSA_1024], [1], [Deprecate RSA 1024 bit length, makes that an unsupported key]) +fi + AC_ARG_ENABLE(ed25519, AS_HELP_STRING([--disable-ed25519],[Disable ED25519 support])) use_ed25519="no" case "$enable_ed25519" in @@ -1211,23 +1222,23 @@ esac AC_ARG_ENABLE(tfo-client, AS_HELP_STRING([--enable-tfo-client],[Enable TCP Fast Open for client mode])) case "$enable_tfo_client" in yes) - case `uname` in - Linux) AC_CHECK_DECL([MSG_FASTOPEN], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], - [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], - [AC_INCLUDES_DEFAULT + case "$host_os" in + linux*) AC_CHECK_DECL([MSG_FASTOPEN], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], + [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], + [AC_INCLUDES_DEFAULT #include ]) - AC_DEFINE_UNQUOTED([USE_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) - ;; - Darwin) AC_CHECK_DECL([CONNECT_RESUME_ON_READ_WRITE], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], - [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], - [AC_INCLUDES_DEFAULT + AC_DEFINE_UNQUOTED([USE_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) + ;; + darwin*) AC_CHECK_DECL([CONNECT_RESUME_ON_READ_WRITE], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], + [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], + [AC_INCLUDES_DEFAULT #include ]) - AC_DEFINE_UNQUOTED([USE_OSX_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) - ;; + AC_DEFINE_UNQUOTED([USE_OSX_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) + ;; esac - ;; + ;; no|*) ;; esac @@ -1588,7 +1599,7 @@ AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])]) AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])]) # check if setreuid en setregid fail, on MacOSX10.4(darwin8). -if echo $target_os | grep darwin8 > /dev/null; then +if echo $host_os | grep darwin8 > /dev/null; then AC_DEFINE(DARWIN_BROKEN_SETREUID, 1, [Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work]) fi AC_CHECK_DECLS([inet_pton,inet_ntop], [], [], [ diff --git a/contrib/unbound.spec b/contrib/unbound.spec index 6ddc5f18d..17be4ccd0 100644 --- a/contrib/unbound.spec +++ b/contrib/unbound.spec @@ -1,15 +1,14 @@ Summary: Validating, recursive, and caching DNS resolver Name: unbound -Version: 1.4.18 +Version: 1.13.1 Release: 1%{?dist} License: BSD Url: http://www.nlnetlabs.nl/unbound/ -Source: http://www.unbound.net/downloads/%{name}-%{version}.tar.gz +Source: http://www.nlnetlabs.nl/downloads/unbound/%{name}-%{version}.tar.gz #Source1: unbound.init Group: System Environment/Daemons -Requires: ldns BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: flex, openssl-devel, expat-devel, ldns-devel +BuildRequires: flex, openssl-devel, expat-devel %description Unbound is a validating, recursive, and caching DNS resolver. @@ -42,7 +41,7 @@ install -d 0700 %{buildroot}%{_localstatedir}/%{name} install -d 0755 %{buildroot}%{_initrddir} install -m 0755 contrib/unbound.init %{buildroot}%{_initrddir}/unbound # add symbolic link from /etc/unbound.conf -> /var/unbound/unbound.conf -ln -s %{_localstatedir}/unbound/unbound.conf %{buildroot}%{_sysconfdir}/unbound.conf +ln -s ../%{_localstatedir}/unbound/unbound.conf %{buildroot}%{_sysconfdir}/unbound.conf # remove static library from install (fedora packaging guidelines) rm -f %{buildroot}%{_libdir}/libunbound.a %{buildroot}%{_libdir}/libunbound.la @@ -55,11 +54,12 @@ rm -rf ${RPM_BUILD_ROOT} %attr(0755,root,root) %{_initrddir}/%{name} %attr(0700,%{name},%{name}) %dir %{_localstatedir}/%{name} %attr(0644,%{name},%{name}) %config(noreplace) %{_localstatedir}/%{name}/unbound.conf -%attr(0644,%{name},%{name}) %config(noreplace) %{_sysconfdir}/unbound.conf +%config(noreplace) %{_sysconfdir}/unbound.conf %{_sbindir}/* %{_mandir}/*/* %{_includedir}/* %{_libdir}/libunbound* +%{_libdir}/pkgconfig/libunbound* %pre getent group unbound >/dev/null || groupadd -r unbound @@ -89,7 +89,13 @@ if [ "$1" -ge "1" ]; then fi %changelog -* Thu Jul 13 2011 Wouter Wijngaards - 1.4.8 +* Thu Jun 10 2021 Wouter Wijngaards - 1.13.1 +- ldns and ldns-devel no longer required. Fixed date. Version to 1.13.1. +- Removed symlink attr mode, made unbound.conf symlink relative. +- Added pkgconfig/libunbound.pc to the packaged files. +- fixed download url to nlnetlabs.nl download. + +* Wed Jul 13 2011 Wouter Wijngaards - 1.4.8 - ldns required and ldns-devel required for build, no more ldns-builtin. * Thu Mar 17 2011 Wouter Wijngaards - 1.4.8 diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_ index defca291c..503752758 100755 --- a/contrib/unbound_munin_ +++ b/contrib/unbound_munin_ @@ -14,7 +14,6 @@ # Run the command unbound-control-setup to generate the key files. # # Environment variables for this script -# statefile - where to put temporary statefile. # unbound_conf - where the unbound.conf file is located. # unbound_control - where to find unbound-control executable. # spoof_warn - what level to warn about spoofing @@ -24,7 +23,6 @@ # with: # [unbound*] # user root -# env.statefile /usr/local/var/munin/plugin-state/unbound-state # env.unbound_conf /usr/local/etc/unbound/unbound.conf # env.unbound_control /usr/local/sbin/unbound-control # env.spoof_warn 1000 @@ -66,7 +64,6 @@ System with unbound daemon. [unbound*] user root - env.statefile /usr/local/var/munin/plugin-state/unbound-state env.unbound_conf /usr/local/etc/unbound/unbound.conf env.unbound_control /usr/local/sbin/unbound-control env.spoof_warn 1000 @@ -98,7 +95,8 @@ BSD =cut -state=${statefile:-/usr/local/var/munin/plugin-state/unbound-state} +state="${MUNIN_PLUGSTATE}/unbound.state" +seentags="${MUNIN_PLUGSTATE}/unbound-seentags.state" conf=${unbound_conf:-/usr/local/etc/unbound/unbound.conf} ctrl=${unbound_control:-/usr/local/sbin/unbound-control} warn=${spoof_warn:-1000} @@ -121,12 +119,24 @@ get_value ( ) { fi } +# Update list of seen query types etc to seentags file. This is run while +# holding the lock, after the state file is updated. +update_seentags() { + tmplist="$(cat ${seentags} 2> /dev/null) +num.query.type.A +num.query.class.IN +num.query.opcode.QUERY +num.answer.rcode.NOERROR +" + (echo "${tmplist}"; grep ^num ${state} | sed -e 's/=.*//') | sort -u > ${seentags} +} + # download the state from the unbound server. get_state ( ) { # obtain lock for fetching the state # because there is a race condition in fetching and writing to file - # see if the lock is stale, if so, take it + # see if the lock is stale, if so, take it if test -f $lock ; then pid="`cat $lock 2>&1`" kill -0 "$pid" >/dev/null 2>&1 @@ -168,6 +178,7 @@ get_state ( ) { rm -f $lock exit 1 fi + update_seentags rm -f $lock } @@ -232,7 +243,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" for x in `grep "^thread[0-9][0-9]*\.num\.queries=" $state | sed -e 's/=.*//'`; do exist_config $x "queries handled by `basename $x .num.queries`" @@ -256,7 +267,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel number of queries" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" p_config "total.requestlist.avg" "Average size of queue on insert" "GAUGE" p_config "total.requestlist.max" "Max size of queue (in 5 min)" "GAUGE" p_config "total.requestlist.overwritten" "Number of queries replaced by new ones" "GAUGE" @@ -267,7 +278,7 @@ if test "$1" = "config" ; then echo "graph_title Unbound memory usage" echo "graph_args --base 1024 -l 0" echo "graph_vlabel memory used in bytes" - echo "graph_category DNS" + echo "graph_category dns" p_config "mem.cache.rrset" "RRset cache memory" "GAUGE" p_config "mem.cache.message" "Message cache memory" "GAUGE" p_config "mem.mod.iterator" "Iterator module memory" "GAUGE" @@ -283,9 +294,8 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" - for x in `grep "^num.query.type" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + echo "graph_category dns" + for nm in `grep "^num.query.type" $seentags`; do tp=`echo $nm | sed -e s/num.query.type.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -296,9 +306,8 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" - for x in `grep "^num.query.class" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + echo "graph_category dns" + for nm in `grep "^num.query.class" $seentags`; do tp=`echo $nm | sed -e s/num.query.class.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -309,9 +318,8 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" - for x in `grep "^num.query.opcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + echo "graph_category dns" + for nm in `grep "^num.query.opcode" $seentags`; do tp=`echo $nm | sed -e s/num.query.opcode.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -322,9 +330,8 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel answer packets / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" - for x in `grep "^num.answer.rcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + echo "graph_category dns" + for nm in `grep "^num.answer.rcode" $seentags`; do tp=`echo $nm | sed -e s/num.answer.rcode.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -338,7 +345,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" p_config "num.query.flags.QR" "QR (query reply) flag" "ABSOLUTE" p_config "num.query.flags.AA" "AA (auth answer) flag" "ABSOLUTE" p_config "num.query.flags.TC" "TC (truncated) flag" "ABSOLUTE" @@ -356,7 +363,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" echo hcache.label "cache hits" echo hcache.min 0 echo hcache.type ABSOLUTE @@ -467,27 +474,23 @@ memory) done ;; by_type) - for x in `grep "^num.query.type" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.query.type" $seentags`; do + print_value $nm done ;; by_class) - for x in `grep "^num.query.class" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.query.class" $seentags`; do + print_value $nm done ;; by_opcode) - for x in `grep "^num.query.opcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.query.opcode" $seentags`; do + print_value $nm done ;; by_rcode) - for x in `grep "^num.answer.rcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.answer.rcode" $seentags`; do + print_value $nm done print_value "num.answer.secure" print_value "num.answer.bogus" diff --git a/daemon/remote.c b/daemon/remote.c index 7e432fe52..5836c0c79 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -130,7 +130,7 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) { #ifndef S_SPLINT_S size_t leftover; - if(d == 0) { + if(d <= 0) { avg->tv_sec = 0; avg->tv_usec = 0; return; @@ -139,7 +139,13 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) avg->tv_usec = sum->tv_usec / d; /* handle fraction from seconds divide */ leftover = sum->tv_sec - avg->tv_sec*d; - avg->tv_usec += (leftover*1000000)/d; + if(leftover <= 0) + leftover = 0; + avg->tv_usec += (((long long)leftover)*((long long)1000000))/d; + if(avg->tv_sec < 0) + avg->tv_sec = 0; + if(avg->tv_usec < 0) + avg->tv_usec = 0; #endif } diff --git a/daemon/unbound.c b/daemon/unbound.c index b2bb526c0..78771dbdd 100644 --- a/daemon/unbound.c +++ b/daemon/unbound.c @@ -212,12 +212,14 @@ checkrlimits(struct config_file* cfg) } #endif +#ifdef RLIMIT_AS if(getrlimit(RLIMIT_AS, &rlim) == 0) { if(rlim.rlim_cur != (rlim_t)RLIM_INFINITY && rlim.rlim_cur < (rlim_t)memsize_expect) { log_warn("the ulimit(max memory size) is smaller than the expected memory usage (added size of caches). %u < %u bytes", (unsigned)rlim.rlim_cur, (unsigned)memsize_expect); } } +#endif if(getrlimit(RLIMIT_DATA, &rlim) == 0) { if(rlim.rlim_cur != (rlim_t)RLIM_INFINITY && rlim.rlim_cur < memsize_expect) { diff --git a/daemon/worker.c b/daemon/worker.c index 7bd64bce4..e9e163a04 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1794,7 +1794,9 @@ worker_init(struct worker* worker, struct config_file *cfg, &worker_alloc_cleanup, worker, cfg->do_udp || cfg->udp_upstream_without_downstream, worker->daemon->connect_sslctx, cfg->delay_close, - cfg->tls_use_sni, dtenv, cfg->udp_connect); + cfg->tls_use_sni, dtenv, cfg->udp_connect, + cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout, + cfg->tcp_auth_query_timeout); if(!worker->back) { log_err("could not create outgoing sockets"); worker_delete(worker); @@ -1848,6 +1850,11 @@ worker_init(struct worker* worker, struct config_file *cfg, return 0; } worker->env.mesh = mesh_create(&worker->daemon->mods, &worker->env); + if(!worker->env.mesh) { + log_err("malloc failure"); + worker_delete(worker); + return 0; + } /* Pass on daemon variables that we would need in the mesh area */ worker->env.mesh->use_response_ip = worker->daemon->use_response_ip; worker->env.mesh->use_rpz = worker->daemon->use_rpz; @@ -1858,6 +1865,11 @@ worker_init(struct worker* worker, struct config_file *cfg, worker->env.kill_sub = &mesh_state_delete; worker->env.detect_cycle = &mesh_detect_cycle; worker->env.scratch_buffer = sldns_buffer_new(cfg->msg_buffer_size); + if(!worker->env.scratch_buffer) { + log_err("malloc failure"); + worker_delete(worker); + return 0; + } if(!(worker->env.fwds = forwards_create()) || !forwards_apply_cfg(worker->env.fwds, cfg)) { log_err("Could not set forward zones"); @@ -1912,10 +1924,6 @@ worker_init(struct worker* worker, struct config_file *cfg, } } #endif /* USE_DNSTAP */ - if(!worker->env.mesh || !worker->env.scratch_buffer) { - worker_delete(worker); - return 0; - } worker_mem_report(worker, NULL); /* if statistics enabled start timer */ if(worker->env.cfg->stat_interval > 0) { diff --git a/dnstap/dnstap.c b/dnstap/dnstap.c index 6577a019a..5c0cde1d5 100644 --- a/dnstap/dnstap.c +++ b/dnstap/dnstap.c @@ -507,19 +507,19 @@ dt_msg_send_outside_query(struct dt_env *env, void dt_msg_send_outside_response(struct dt_env *env, - struct sockaddr_storage *rsock, - struct sockaddr_storage *qsock, - enum comm_point_type cptype, - uint8_t *zone, size_t zone_len, - uint8_t *qbuf, size_t qbuf_len, - const struct timeval *qtime, - const struct timeval *rtime, - sldns_buffer *rmsg) + struct sockaddr_storage *rsock, + struct sockaddr_storage *qsock, + enum comm_point_type cptype, + uint8_t *zone, size_t zone_len, + uint8_t *qbuf, size_t qbuf_len, + const struct timeval *qtime, + const struct timeval *rtime, + sldns_buffer *rmsg) { struct dt_msg dm; uint16_t qflags; - log_assert(qbuf_len >= sizeof(qflags)); + (void)qbuf_len; log_assert(qbuf_len >= sizeof(qflags)); memcpy(&qflags, qbuf, sizeof(qflags)); qflags = ntohs(qflags); diff --git a/dnstap/unbound-dnstap-socket.c b/dnstap/unbound-dnstap-socket.c index 9eaf01243..17c29e971 100644 --- a/dnstap/unbound-dnstap-socket.c +++ b/dnstap/unbound-dnstap-socket.c @@ -1012,6 +1012,7 @@ void dtio_tap_callback(int fd, short ATTR_UNUSED(bits), void* arg) if(verbosity) log_info("bidirectional stream"); if(!reply_with_accept(data)) { tap_data_free(data); + return; } } else if(data->len >= 4 && sldns_read_uint32(data->frame) == FSTRM_CONTROL_FRAME_STOP && data->is_bidirectional) { @@ -1166,8 +1167,12 @@ int sig_quit = 0; /** signal handler for user quit */ static RETSIGTYPE main_sigh(int sig) { - if(!sig_quit) - fprintf(stderr, "exit on signal %d\n", sig); + if(!sig_quit) { + char str[] = "exit on signal \n"; + str[15] = '0' + (sig/10)%10; + str[16] = '0' + sig%10; + write(STDERR_FILENO, str, strlen(str)); + } if(sig_base) { ub_event_base_loopexit(sig_base); sig_base = NULL; diff --git a/doc/Changelog b/doc/Changelog index af6ee1ab1..221b6c69b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,132 @@ +2 July 2021: Wouter + - Fix #506: Python Module Seems to Leak Memory if it Experiences an + Unhandled Exception. + +25 June 2021: Wouter + - Fix up permissions on rpl data file in tests. + - Fix testbound newline treatment in moment_read and tempfile write. + - Fix configure grep for reuseport default for failure. + - Fix compat ctime_r return value + - Fix configure does not require pkg-config if not needed. + - Fix unit test in the ctime_r calls for autotrust and in testbound. + - Fix auth zone download on windows to unlink before rename. + +24 June 2021: Wouter + - Add analyzer and port compile github workflow. + +23 June 2021: Wouter + - Fix #503: DNS over HTTPS response truncated. + - Fix warnings reported by the gcc analyzer. + +21 June 2021: George + - Fix #495: Documentation or implementation of "verbosity" option. + +18 June 2021: Wouter + - Fix a number of warnings reported by the gcc analyzer. + +15 June 2021: George + - Merge #440 by kimheino: Various fixes to contrib/unbound_munin_ file. + +14 June 2021: Wouter + - Fix configure nonblocking test and onmingw test to use host. + +10 June 2021: Wouter + - Fix #500: SPEC file in version 1.13.1 references version 1.4; + unable to build RPM from source. + - Fix contrib/unbound.spec, fixed url and comment. + +9 June 2021: George + - Merge #486 by fobster: Make VAL_MAX_RESTART_COUNT configurable. + - Generated lexer and parser for #486; updated example.conf. + - Fix #413 (based on patch by k-ronny): unbound: does not compile + on macOS 11.1-x86_64 host. + - Use host_os instead of target_os in configure for Darwin8 build. + +8 June 2021: George + - Fix unused variable warning when compiling with --enable-dnstap. + +7 June 2021: George + - Merge #448 from shoeper: Update unbound-control.8.in, fix + rpz_disable typo. + - Fix #425: Document auth-zone supports communication with DNS + primary on nondefault port. + +1 June 2021: George + - Fix test for zonemd-check option. + +27 May 2021: Wouter + - Merge #496 from banburybill: Use build system endianness if + available, otherwise try to work it out. + - zonemd-check: yesno option, default no, enables the processing + of ZONEMD records for that zone. + +25 May 2021: Wouter + - Move the NSEC3 max iterations count in line with the 150 value + used by BIND, Knot and PowerDNS. This sets the default value + for it in the configuration to 150 for all key sizes. + - Fix #492: module-config respip missing in unbound.conf.5.in man + page. Merges #494 from he32. + - For #492: Fix font highlighting for the man page on emacs. + +21 May 2021: Wouter + - Test code has -q option for quiet output. + +19 May 2021: George + - Fix for #411, #439, #469: Reset the DNS message ID when moving queries + between TCP streams. + - Refactor for uniform way to produce random DNS message IDs. + +17 May 2021: Wouter + - Fix #489: Compile using MSYS2 MinGW 64-bit. + +12 May 2021: Wouter + - Fix that auth-zone zonefiles use last TTL if no TTL is specified. + +10 May 2021: Wouter + - Merge PR #487: ifdef RLIMIT_AS in recently added check. + +7 May 2021: Wouter + - Fix #485: Unbound occasionally reports broken stats. + - Add ./configure --with-deprecate-rsa-1024 that turns off RSA 1024. + - Remove case fallthrough from deprecate-rsa-1024 code. + +4 May 2021: George + - Fix for #367: only attempt to get the interface for queries that are no + longer on the tcp_waiting_list. + - Add more logging for out-of-memory cases. + +4 May 2021: Wouter + - Merge #478: Allow configuration of TCP timeout while waiting for + response. + - Fix to squelch tcp socket bind failures when the interface is gone. + - Rerun flex and bison. + +3 May 2021: Wouter + - Fix #481: Fix comment in configuration file. + +29 April 2021: Wouter + - Add that log-servfail prints an IP address and more information + about one of the last failures for that query. + +28 April 2021: George + - Fix compiler warning for signed/unsigned comparison for + max_reuse_tcp_queries. + +28 April 2021: Wouter + - Fix #474: always_null and others inside view. + +26 April 2021: Wouter + - Merge #470 from edevil: Allow configuration of persistent TCP + connections. + +22 April 2021: Wouter + - Merge #466 from FGasper: Support OpenSSLs that lack + SSL_get0_alpn_selected. + - Fix #468: OpenSSL 1.0.1 can no longer build Unbound. + - Further fix for #468: detect SSL_CTX_set_alpn_protos for build with + OpenSSL 1.0.1. + - Fix that testcode dohclient has OpenSSL initialisation calls. + 13 April 2021: George - Fix documentation comment for files previously residing in checkconf/. - Remove unused functions worker_handle_reply and libworker_handle_reply. diff --git a/doc/example.conf.in b/doc/example.conf.in index 82b652f8a..4b135f5db 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -507,7 +507,8 @@ server: # Use several entries, one per domain name, to track multiple zones. # # If you want to perform DNSSEC validation, run unbound-anchor before - # you start unbound (i.e. in the system boot scripts). And enable: + # you start unbound (i.e. in the system boot scripts). + # And then enable the auto-trust-anchor-file config item. # Please note usage of unbound-anchor root anchor is at your own risk # and under the terms of our LICENSE (see that file in the source). # auto-trust-anchor-file: "@UNBOUND_ROOTKEY_FILE@" @@ -556,6 +557,10 @@ server: # val-sig-skew-min: 3600 # val-sig-skew-max: 86400 + # The maximum number the validator should restart validation with + # another authority in case of failed validation. + # val-max-restart: 5 + # Should additional section of secure message also be kept clean of # unsecure data. Useful to shield the users of this validator from # potential bogus data in the additional section. All unsigned data @@ -613,7 +618,7 @@ server: # keysize. Keep this table very short, as linear search is done. # A message with an NSEC3 with larger count is marked insecure. # List in ascending order the keysize and count values. - # val-nsec3-keysize-iterations: "1024 150 2048 500 4096 2500" + # val-nsec3-keysize-iterations: "1024 150 2048 150 4096 150" # if enabled, ZONEMD verification failures do not block the zone. # zonemd-permissive-mode: no @@ -901,6 +906,13 @@ server: # ipsecmod-allow: "example.com" # ipsecmod-allow: "nlnetlabs.nl" + # Timeout for REUSE entries in milliseconds. + # tcp-reuse-timeout: 60000 + # Max number of queries on a reuse connection. + # max-reuse-tcp-queries: 200 + # Timeout in milliseconds for TCP queries to auth servers. + # tcp-auth-query-timeout: 3000 + # Python config section. To enable: # o use --with-pythonmodule to configure before compiling. @@ -1025,6 +1037,7 @@ remote-control: # name: "example.org" # for-downstream: yes # for-upstream: yes +# zonemd-check: no # zonemd-reject-absence: no # zonefile: "example.org.zone" diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in index 20325abf2..dad840cf5 100644 --- a/doc/unbound-control.8.in +++ b/doc/unbound-control.8.in @@ -308,7 +308,7 @@ serial check). And then the zone is transferred for a newer zone version. .B rpz_enable \fIzone\fR Enable the RPZ zone if it had previously been disabled. .TP -.B rpz_enable \fIzone\fR +.B rpz_disable \fIzone\fR Disable the RPZ zone. .TP .B view_list_local_zones \fIview\fR diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 00c1191be..7fe0994e4 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -89,11 +89,11 @@ These options are part of the clause. .TP .B verbosity: \fI -The verbosity number, level 0 means no verbosity, only errors. Level 1 -gives operational information. Level 2 gives detailed operational -information. Level 3 gives query level information, output per query. -Level 4 gives algorithm level information. Level 5 logs client -identification for cache misses. Default is level 1. +The verbosity number, level 0 means no verbosity, only errors. Level 1 +gives operational information. Level 2 gives detailed operational +information including short information per query. Level 3 gives query level +information, output per query. Level 4 gives algorithm level information. +Level 5 logs client identification for cache misses. Default is level 1. The verbosity can also be increased from the commandline, see \fIunbound\fR(8). .TP .B statistics\-interval: \fI @@ -451,6 +451,19 @@ total number configured, and finally to 0 if the number of free buffers falls below 20% of the total number configured. A minimum timeout of 200 milliseconds is observed regardless of the option value used. .TP +.B tcp-reuse-timeout: \fI\fR +The period Unbound will keep TCP persistent connections open to +authority servers. This option defaults to 60000 milliseconds. +.TP +.B max-reuse-tcp-queries: \fI\fR +The maximum number of queries that can be sent on a persistent TCP +connection. +This option defaults to 200 queries. +.TP +.B tcp-auth-query-timeout: \fI\fR +Timeout in milliseconds for TCP queries to auth servers. +This option defaults to 3000 milliseconds. +.TP .B edns-tcp-keepalive: \fI\fR Enable or disable EDNS TCP Keepalive. Default is no. .TP @@ -1013,7 +1026,7 @@ If yes, Unbound rotates RRSet order in response (the random number is taken from the query ID, for speed and thread safety). Default is yes. .TP .B minimal-responses: \fI -If yes, Unbound doesn't insert authority/additional sections into response +If yes, Unbound does not insert authority/additional sections into response messages when those sections are not required. This reduces response size significantly, and may avoid TCP fallback for some responses. This may cause a slight speedup. The default is yes, even though the DNS @@ -1031,15 +1044,24 @@ of this setting, if a trust anchor is loaded. .TP .B module\-config: \fI<"module names"> Module configuration, a list of module names separated by spaces, surround -the string with quotes (""). The modules can be validator, iterator. -Setting this to "iterator" will result in a non\-validating server. -Setting this to "validator iterator" will turn on DNSSEC validation. -The ordering of the modules is important. -You must also set trust\-anchors for validation to be useful. -The default is "validator iterator". When the server is built with -EDNS client subnet support the default is "subnetcache validator iterator". +the string with quotes (""). The modules can be \fIrespip\fR, +\fIvalidator\fR, or \fIiterator\fR (and possibly more, see below). +Setting this to just "\fIiterator\fR" will result in a non\-validating +server. +Setting this to "\fIvalidator iterator\fR" will turn on DNSSEC validation. +The ordering of the modules is significant, the order decides the +order of processing. +You must also set \fItrust\-anchors\fR for validation to be useful. +Adding \fIrespip\fR to the front will cause RPZ processing to be done on +all queries. +The default is "\fIvalidator iterator\fR". +.IP +When the server is built with +EDNS client subnet support the default is "\fIsubnetcache validator +iterator\fR". Most modules that need to be listed here have to be listed at the beginning -of the line. The cachedb module has to be listed just before the iterator. +of the line. The subnetcachedb module has to be listed just before +the iterator. The python module can be listed in different places, it then processes the output of the module it is just before. The dynlib module can be listed pretty much anywhere, it is only a very thin wrapper that allows dynamic libraries to @@ -1118,6 +1140,10 @@ min and max very low disables the clock skew allowances. Setting both min and max very high makes the validator check the signature timestamps less strictly. .TP +.B val\-max\-restart: \fI +The maximum number the validator should restart validation with +another authority in case of failed validation. Default is 5. +.TP .B val\-bogus\-ttl: \fI The time to live for bogus data. This is data that has failed validation; due to invalid signatures or other checks. The TTL from that data cannot be @@ -1202,7 +1228,7 @@ Default is "no". .TP .B val\-nsec3\-keysize\-iterations: \fI<"list of values"> List of keysize and iteration count values, separated by spaces, surrounded -by quotes. Default is "1024 150 2048 500 4096 2500". This determines the +by quotes. Default is "1024 150 2048 150 4096 150". This determines the maximum allowed NSEC3 iteration count before a message is simply marked insecure instead of performing the many hashing iterations. The list must be in ascending order and have at least one entry. If you set it to @@ -1514,6 +1540,82 @@ Use this localzone type, regardless the type configured for the local-zone (both tagged and untagged) and regardless the type configured using access\-control\-tag\-action. .TP 5 +.B response\-ip: \fI +This requires use of the "respip" module. +.IP +If the IP address in an AAAA or A RR in the answer section of a +response matches the specified IP netblock, the specified action will +apply. +\fI\fR has generally the same semantics as that for +\fIaccess-control-tag-action\fR, but there are some exceptions. +.IP +Actions for \fIresponse-ip\fR are different from those for +\fIlocal-zone\fR in that in case of the former there is no point of +such conditions as "the query matches it but there is no local data". +Because of this difference, the semantics of \fIresponse-ip\fR actions +are modified or simplified as follows: The \fIstatic, refuse, +transparent, typetransparent,\fR and \fInodefault\fR actions are +invalid for \fIresponse-ip\fR. +Using any of these will cause the configuration to be rejected as +faulty. The \fIdeny\fR action is non-conditional, i.e. it always +results in dropping the corresponding query. +The resolution result before applying the deny action is still cached +and can be used for other queries. +.TP 5 +.B response-ip-data: \fI <"resource record string"> +This requires use of the "respip" module. +.IP +This specifies the action data for \fIresponse-ip\fR with action being +to redirect as specified by "\fIresource record string\fR". "Resource +record string" is similar to that of \fIaccess-control-tag-action\fR, +but it must be of either AAAA, A or CNAME types. +If the IP-netblock is an IPv6/IPV4 prefix, the record +must be AAAA/A respectively, unless it is a CNAME (which can be used +for both versions of IP netblocks). If it is CNAME there must not be +more than one \fIresponse-ip-data\fR for the same IP-netblock. +Also, CNAME and other types of records must not coexist for the same +IP-netblock, following the normal rules for CNAME records. +The textual domain name for the CNAME does not have to be explicitly +terminated with a dot ("."); the root name is assumed to be the origin +for the name. +.TP 5 +.B response-ip-tag: \fI <"list of tags"> +This requires use of the "respip" module. +.IP +Assign tags to response IP-netblocks. If the IP address in an AAAA or +A RR in the answer section of a response matches the specified +IP-netblock, the specified tags are assigned to the IP address. +Then, if an \fIaccess-control-tag\fR is defined for the client and it +includes one of the tags for the response IP, the corresponding +\fIaccess-control-tag-action\fR will apply. +Tag matching rule is the same as that for \fIaccess-control-tag\fR and +\fIlocal-zones\fR. +Unlike \fIlocal-zone-tag\fR, \fIresponse-ip-tag\fR can be defined for +an IP-netblock even if no \fIresponse-ip\fR is defined for that +netblock. +If multiple \fIresponse-ip-tag\fR options are specified for the same +IP-netblock in different statements, all but the first will be +ignored. +However, this will not be flagged as a configuration error, but the +result is probably not what was intended. +.IP +Actions specified in an +\fIaccess-control-tag-action\fR that has a matching tag with +\fIresponse-ip-tag\fR can be those that are "invalid" for +\fIresponse-ip\fR listed above, since \fIaccess-control-tag-action\fRs +can be shared with local zones. +For these actions, if they behave differently depending on whether +local data exists or not in case of local zones, the behavior for +\fIresponse-ip-data\fR will generally result in NOERROR/NODATA instead +of NXDOMAIN, since the \fIresponse-ip\fR data are inherently type +specific, and non-existence of data does not indicate anything about +the existence or non-existence of the qname itself. +For example, if the matching tag action is \fIstatic\fR but there is +no data for the corresponding \fIresponse-ip\fR configuration, then +the result will be NOERROR/NODATA. +The only case where NXDOMAIN is returned is when an +\fIalways_nxdomain\fR action applies. +.TP 5 .B ratelimit: \fI Enable ratelimiting of queries sent to nameserver for performing recursion. If 0, the default, it is disabled. This option is experimental at this time. @@ -1825,7 +1927,9 @@ Name of the authority zone. .B primary: \fI Where to download a copy of the zone from, with AXFR and IXFR. Multiple primaries can be specified. They are all tried if one fails. -With the "ip#name" notation a AXFR over TLS can be used. +To use a nondefault port for DNS communication append '@' with the port number. +You can append a '#' and a name, then AXFR over TLS can be used and the tls authentication certificates will be checked with that name. If you combine +the '@' and '#', the '@' comes first. If you point it at another Unbound instance, it would not work because that does not support AXFR/IXFR for the zone, but if you used \fBurl:\fR to download the zonefile as a text file from a webserver that would work. @@ -1882,6 +1986,12 @@ to the authority servers for this zone, it'll fetch the data directly from the zone data. Turn it on when you want unbound to provide recursion for downstream clients, and use the zone data as a local copy to speed up lookups. .TP +.B zonemd\-check: \fI +Enable this option to check ZONEMD records in the zone. Default is disabled. +The ZONEMD record is a checksum over the zone data. This includes glue in +the zone and data from the zone file, and excludes comments from the zone file. +When there is a DNSSEC chain of trust, DNSSEC signatures are checked too. +.TP .B zonemd\-reject\-absence: \fI Enable this option to reject the absence of the ZONEMD record. Without it, when zonemd is not there it is not checked. It is useful to enable for a @@ -2396,6 +2506,15 @@ Name of the authority zone. .B primary: \fI Where to download a copy of the zone from, with AXFR and IXFR. Multiple primaries can be specified. They are all tried if one fails. +To use a nondefault port for DNS communication append '@' with the port number. +You can append a '#' and a name, then AXFR over TLS can be used and the tls authentication certificates will be checked with that name. If you combine +the '@' and '#', the '@' comes first. +If you point it at another Unbound instance, it would not work because +that does not support AXFR/IXFR for the zone, but if you used \fBurl:\fR to download +the zonefile as a text file from a webserver that would work. +If you specify the hostname, you cannot use the domain from the zonefile, +because it may not have that when retrieving that data, instead use a plain +IP address to avoid a circular dependency on retrieving that IP address. .TP .B master: \fI Alternate syntax for \fBprimary\fR. diff --git a/ipsecmod/ipsecmod.c b/ipsecmod/ipsecmod.c index e443e882b..e42af6f49 100644 --- a/ipsecmod/ipsecmod.c +++ b/ipsecmod/ipsecmod.c @@ -419,6 +419,7 @@ ipsecmod_handle_query(struct module_qstate* qstate, if(!qstate->env->cfg->ipsecmod_ignore_bogus && rrset_data->security == sec_status_bogus) { log_err("ipsecmod: bogus IPSECKEY"); + errinf(qstate, "ipsecmod: bogus IPSECKEY"); ipsecmod_error(qstate, id); return; } @@ -426,6 +427,7 @@ ipsecmod_handle_query(struct module_qstate* qstate, if(!call_hook(qstate, iq, ie) && qstate->env->cfg->ipsecmod_strict) { log_err("ipsecmod: ipsecmod-hook failed"); + errinf(qstate, "ipsecmod: ipsecmod-hook failed"); ipsecmod_error(qstate, id); return; } @@ -497,6 +499,7 @@ ipsecmod_handle_response(struct module_qstate* qstate, qstate->qinfo.qname_len, LDNS_RR_TYPE_IPSECKEY, qstate->qinfo.qclass, 0)) { log_err("ipsecmod: could not generate subquery."); + errinf(qstate, "ipsecmod: could not generate subquery."); ipsecmod_error(qstate, id); } return; @@ -520,6 +523,7 @@ ipsecmod_operate(struct module_qstate* qstate, enum module_ev event, int id, if((event == module_event_new || event == module_event_pass) && iq == NULL) { if(!ipsecmod_new(qstate, id)) { + errinf(qstate, "ipsecmod: could not ipsecmod_new"); ipsecmod_error(qstate, id); return; } @@ -542,6 +546,7 @@ ipsecmod_operate(struct module_qstate* qstate, enum module_ev event, int id, } if(event == module_event_error) { verbose(VERB_ALGO, "got called with event error, giving up"); + errinf(qstate, "ipsecmod: got called with event error"); ipsecmod_error(qstate, id); return; } @@ -552,6 +557,7 @@ ipsecmod_operate(struct module_qstate* qstate, enum module_ev event, int id, } log_err("ipsecmod: bad event %s", strmodulevent(event)); + errinf(qstate, "ipsecmod: operate got bad event"); ipsecmod_error(qstate, id); return; } diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c index adc611f73..668f898eb 100644 --- a/iterator/iter_utils.c +++ b/iterator/iter_utils.c @@ -440,6 +440,7 @@ iter_filter_order(struct iter_env* iter_env, struct module_env* env, prev = NULL; a = dp->result_list; for(i = 0; i < got_num; i++) { + if(!a) break; /* robustness */ swap_to_front = 0; if(a->addr.ss_family != AF_INET6 && attempt == -1) { /* if we only have ip4 at low attempt count, @@ -497,6 +498,7 @@ iter_filter_order(struct iter_env* iter_env, struct module_env* env, prev = NULL; a = dp->result_list; for(i = 0; i < got_num; i++) { + if(!a) break; /* robustness */ swap_to_front = 0; if(a->addr.ss_family != AF_INET && attempt == -1) { /* if we only have ip6 at low attempt count, diff --git a/iterator/iterator.c b/iterator/iterator.c index 0f662304d..f0105ad4b 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -585,6 +585,60 @@ handle_cname_response(struct module_qstate* qstate, struct iter_qstate* iq, return 1; } +/** add response specific error information for log servfail */ +static void +errinf_reply(struct module_qstate* qstate, struct iter_qstate* iq) +{ + if(qstate->env->cfg->val_log_level < 2 && !qstate->env->cfg->log_servfail) + return; + if((qstate->reply && qstate->reply->addrlen != 0) || + (iq->fail_reply && iq->fail_reply->addrlen != 0)) { + char from[256], frm[512]; + if(qstate->reply && qstate->reply->addrlen != 0) + addr_to_str(&qstate->reply->addr, qstate->reply->addrlen, + from, sizeof(from)); + else + addr_to_str(&iq->fail_reply->addr, iq->fail_reply->addrlen, + from, sizeof(from)); + snprintf(frm, sizeof(frm), "from %s", from); + errinf(qstate, frm); + } + if(iq->scrub_failures || iq->parse_failures) { + if(iq->scrub_failures) + errinf(qstate, "upstream response failed scrub"); + if(iq->parse_failures) + errinf(qstate, "could not parse upstream response"); + } else if(iq->response == NULL && iq->timeout_count != 0) { + errinf(qstate, "upstream server timeout"); + } else if(iq->response == NULL) { + errinf(qstate, "no server to query"); + if(iq->dp) { + if(iq->dp->target_list == NULL) + errinf(qstate, "no addresses for nameservers"); + else errinf(qstate, "nameserver addresses not usable"); + if(iq->dp->nslist == NULL) + errinf(qstate, "have no nameserver names"); + if(iq->dp->bogus) + errinf(qstate, "NS record was dnssec bogus"); + } + } + if(iq->response && iq->response->rep) { + if(FLAGS_GET_RCODE(iq->response->rep->flags) != 0) { + char rcode[256], rc[32]; + (void)sldns_wire2str_rcode_buf( + FLAGS_GET_RCODE(iq->response->rep->flags), + rc, sizeof(rc)); + snprintf(rcode, sizeof(rcode), "got %s", rc); + errinf(qstate, rcode); + } else { + /* rcode NOERROR */ + if(iq->response->rep->an_numrrsets == 0) { + errinf(qstate, "nodata answer"); + } + } + } +} + /** see if last resort is possible - does config allow queries to parent */ static int can_have_last_resort(struct module_env* env, uint8_t* nm, size_t nmlen, @@ -1922,6 +1976,7 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq, * of a response. */ errinf(qstate, "all the configured stub or forward servers failed,"); errinf_dname(qstate, "at zone", iq->dp->name); + errinf_reply(qstate, iq); verbose(VERB_QUERY, "configured stub or forward servers failed -- returning SERVFAIL"); return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL); } @@ -2068,6 +2123,7 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq, errinf(qstate, "all servers for this domain failed,"); errinf_dname(qstate, "at zone", iq->dp->name); + errinf_reply(qstate, iq); verbose(VERB_QUERY, "out of query targets -- returning SERVFAIL"); /* fail -- no more targets, no more hope of targets, no hope * of a response. */ @@ -2959,6 +3015,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq, qstate->env->detach_subs)); (*qstate->env->detach_subs)(qstate); iq->num_target_queries = 0; + iq->response = NULL; + iq->fail_reply = NULL; verbose(VERB_ALGO, "cleared outbound list for next round"); return next_state(iq, QUERYTARGETS_STATE); } else if(type == RESPONSE_TYPE_CNAME) { @@ -3722,6 +3780,7 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq, } /* parse message */ + iq->fail_reply = qstate->reply; prs = (struct msg_parse*)regional_alloc(qstate->env->scratch, sizeof(struct msg_parse)); if(!prs) { @@ -3735,12 +3794,15 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq, sldns_buffer_set_position(pkt, 0); if(parse_packet(pkt, prs, qstate->env->scratch) != LDNS_RCODE_NOERROR) { verbose(VERB_ALGO, "parse error on reply packet"); + iq->parse_failures++; goto handle_it; } /* edns is not examined, but removed from message to help cache */ if(parse_extract_edns(prs, &edns, qstate->env->scratch) != - LDNS_RCODE_NOERROR) + LDNS_RCODE_NOERROR) { + iq->parse_failures++; goto handle_it; + } /* Copy the edns options we may got from the back end */ if(edns.opt_list) { @@ -3774,6 +3836,7 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq, iq->num_current_queries--; verbose(VERB_DETAIL, "Capsforid: scrub failed, starting fallback with no response"); } + iq->scrub_failures++; goto handle_it; } diff --git a/iterator/iterator.h b/iterator/iterator.h index 342ac207e..7952f26df 100644 --- a/iterator/iterator.h +++ b/iterator/iterator.h @@ -406,6 +406,12 @@ struct iter_qstate { int auth_zone_response; /** True if the auth_zones should not be consulted for the query */ int auth_zone_avoid; + /** true if there have been scrubbing failures of reply packets */ + int scrub_failures; + /** true if there have been parse failures of reply packets */ + int parse_failures; + /** a failure printout address for last received answer */ + struct comm_reply* fail_reply; }; /** diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 2b7f7a1e4..8a9ca9419 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -241,7 +241,9 @@ libworker_setup(struct ub_ctx* ctx, int is_bg, struct ub_event_base* eb) ports, numports, cfg->unwanted_threshold, cfg->outgoing_tcp_mss, &libworker_alloc_cleanup, w, cfg->do_udp || cfg->udp_upstream_without_downstream, w->sslctx, - cfg->delay_close, cfg->tls_use_sni, NULL, cfg->udp_connect); + cfg->delay_close, cfg->tls_use_sni, NULL, cfg->udp_connect, + cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout, + cfg->tcp_auth_query_timeout); w->env->outnet = w->back; if(!w->is_bg || w->is_bg_thread) { lock_basic_unlock(&ctx->cfglock); @@ -454,8 +456,15 @@ fill_res(struct ub_result* res, struct ub_packed_rrset_key* answer, if(rep->rrset_count != 0) res->ttl = (int)rep->ttl; res->data = (char**)calloc(1, sizeof(char*)); + if(!res->data) + return 0; /* out of memory */ res->len = (int*)calloc(1, sizeof(int)); - return (res->data && res->len); + if(!res->len) { + free(res->data); + res->data = NULL; + return 0; /* out of memory */ + } + return 1; } data = (struct packed_rrset_data*)answer->entry.data; if(query_dname_compare(rq->qname, answer->rk.dname) != 0) { @@ -463,15 +472,30 @@ fill_res(struct ub_result* res, struct ub_packed_rrset_key* answer, return 0; /* out of memory */ } else res->canonname = NULL; res->data = (char**)calloc(data->count+1, sizeof(char*)); - res->len = (int*)calloc(data->count+1, sizeof(int)); - if(!res->data || !res->len) + if(!res->data) return 0; /* out of memory */ + res->len = (int*)calloc(data->count+1, sizeof(int)); + if(!res->len) { + free(res->data); + res->data = NULL; + return 0; /* out of memory */ + } for(i=0; icount; i++) { /* remove rdlength from rdata */ res->len[i] = (int)(data->rr_len[i] - 2); res->data[i] = memdup(data->rr_data[i]+2, (size_t)res->len[i]); - if(!res->data[i]) + if(!res->data[i]) { + size_t j; + for(j=0; jdata[j]); + res->data[j] = NULL; + } + free(res->data); + res->data = NULL; + free(res->len); + res->len = NULL; return 0; /* out of memory */ + } } /* ttl for positive answers, from CNAME and answer RRs */ if(data->count != 0) { diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i index ab244a6fb..763879e80 100644 --- a/libunbound/python/libunbound.i +++ b/libunbound/python/libunbound.i @@ -936,6 +936,8 @@ int _ub_resolve_async(struct ub_ctx* ctx, char* name, int rrtype, int rrclass, v int r; struct cb_data* id; id = (struct cb_data*) malloc(sizeof(struct cb_data)); + if(!id) + return -2; /* UB_NOMEM */ id->data = mydata; id->func = pyfunc; diff --git a/pythonmod/interface.i b/pythonmod/interface.i index 5dae04aa4..ce7dcde71 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -1546,7 +1546,7 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, { PyObject *func, *py_edns, *py_qstate, *py_opt_list_out, *py_qinfo; PyObject *py_rep, *py_repinfo, *py_region; - PyObject *py_args, *py_kwargs, *result; + PyObject *py_args = NULL, *py_kwargs = NULL, *result = NULL; int res = 0; double py_start_time = ((double)start_time->tv_sec) + ((double)start_time->tv_usec) / 1.0e6; @@ -1561,11 +1561,20 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, py_rep = SWIG_NewPointerObj((void*) rep, SWIGTYPE_p_reply_info, 0); py_repinfo = SWIG_NewPointerObj((void*) repinfo, SWIGTYPE_p_comm_reply, 0); py_region = SWIG_NewPointerObj((void*) region, SWIGTYPE_p_regional, 0); - py_args = Py_BuildValue("(OOOiOOO)", py_qinfo, py_qstate, py_rep, - rcode, py_edns, py_opt_list_out, py_region); - py_kwargs = Py_BuildValue("{s:O,s:d}", "repinfo", py_repinfo, "start_time", - py_start_time); - result = PyObject_Call(func, py_args, py_kwargs); + if(py_qinfo && py_qstate && py_rep && py_edns && py_opt_list_out + && py_region && py_repinfo) { + py_args = Py_BuildValue("(OOOiOOO)", py_qinfo, py_qstate, py_rep, + rcode, py_edns, py_opt_list_out, py_region); + py_kwargs = Py_BuildValue("{s:O,s:d}", "repinfo", py_repinfo, "start_time", + py_start_time); + if(py_args && py_kwargs) { + result = PyObject_Call(func, py_args, py_kwargs); + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_reply_generic"); + } + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_reply_generic"); + } Py_XDECREF(py_edns); Py_XDECREF(py_qstate); Py_XDECREF(py_opt_list_out); @@ -1624,6 +1633,7 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, { int res = 0; PyObject *func = python_callback; + PyObject *py_args = NULL, *py_kwargs = NULL, *result = NULL; PyGILState_STATE gstate = PyGILState_Ensure(); @@ -1632,12 +1642,19 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, PyObject *py_addr = SWIG_NewPointerObj((void *) addr, SWIGTYPE_p_sockaddr_storage, 0); PyObject *py_zone = PyBytes_FromStringAndSize((const char *)zone, zonelen); PyObject *py_region = SWIG_NewPointerObj((void*) region, SWIGTYPE_p_regional, 0); - - PyObject *py_args = Py_BuildValue("(OiOOOO)", py_qinfo, flags, py_qstate, py_addr, py_zone, py_region); - PyObject *py_kwargs = Py_BuildValue("{}"); - PyObject *result = PyObject_Call(func, py_args, py_kwargs); - if (result) { - res = PyInt_AsLong(result); + if(py_qinfo && py_qstate && py_addr && py_zone && py_region) { + py_args = Py_BuildValue("(OiOOOO)", py_qinfo, flags, py_qstate, py_addr, py_zone, py_region); + py_kwargs = Py_BuildValue("{}"); + if(py_args && py_kwargs) { + result = PyObject_Call(func, py_args, py_kwargs); + if (result) { + res = PyInt_AsLong(result); + } + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_query_generic"); + } + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_query_generic"); } Py_XDECREF(py_qinfo); diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 6e60d02fe..4bea54e6a 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -245,6 +245,11 @@ cleanup: /* clear the exception, by not restoring it */ /* Restore the exception state */ /* PyErr_Restore(exc_typ, exc_val, exc_tb); */ + /* when using PyErr_Restore there is no need to Py_XDECREF for + * these 3 pointers. */ + Py_XDECREF(exc_typ); + Py_XDECREF(exc_val); + Py_XDECREF(exc_tb); } int pythonmod_init(struct module_env* env, int id) @@ -561,9 +566,19 @@ void pythonmod_operate(struct module_qstate* qstate, enum module_ev event, { /* create qstate */ pq = qstate->minfo[id] = malloc(sizeof(struct pythonmod_qstate)); + if(!pq) { + log_err("pythonmod_operate: malloc failure for qstate"); + PyGILState_Release(gil); + return; + } /* Initialize per query data */ pq->data = PyDict_New(); + if(!pq->data) { + log_err("pythonmod_operate: malloc failure for query data dict"); + PyGILState_Release(gil); + return; + } } /* Call operate */ diff --git a/services/authzone.c b/services/authzone.c index 196fe6693..c1567aecb 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -1755,6 +1755,8 @@ zonemd_offline_verify(struct auth_zone* z, struct module_env* env_for_val, { struct module_env env; time_t now = 0; + if(!z->zonemd_check) + return; env = *env_for_val; env.scratch_buffer = sldns_buffer_new(env.cfg->msg_buffer_size); if(!env.scratch_buffer) { @@ -2096,6 +2098,7 @@ auth_zones_cfg(struct auth_zones* az, struct config_auth* c) z->for_downstream = c->for_downstream; z->for_upstream = c->for_upstream; z->fallback_enabled = c->fallback_enabled; + z->zonemd_check = c->zonemd_check; z->zonemd_reject_absence = c->zonemd_reject_absence; if(c->isrpz && !z->rpz){ if(!(z->rpz = rpz_create(c))){ @@ -5149,6 +5152,9 @@ xfr_write_after_update(struct auth_xfer* xfr, struct module_env* env) lock_rw_unlock(&z->lock); return; } +#ifdef UB_ON_WINDOWS + (void)unlink(zfilename); /* windows does not replace file with rename() */ +#endif if(rename(tmpfile, zfilename) < 0) { log_err("could not rename(%s, %s): %s", tmpfile, zfilename, strerror(errno)); @@ -5442,7 +5448,7 @@ xfr_transfer_init_fetch(struct auth_xfer* xfr, struct module_env* env) /* perform AXFR/IXFR */ /* set the packet to be written */ /* create new ID */ - xfr->task_transfer->id = (uint16_t)(ub_random(env->rnd)&0xffff); + xfr->task_transfer->id = GET_RANDOM_ID(env->rnd); xfr_create_ixfr_packet(xfr, env->scratch_buffer, xfr->task_transfer->id, master); @@ -6292,7 +6298,7 @@ xfr_probe_send_probe(struct auth_xfer* xfr, struct module_env* env, /* create new ID for new probes, but not on timeout retries, * this means we'll accept replies to previous retries to same ip */ if(timeout == AUTH_PROBE_TIMEOUT) - xfr->task_probe->id = (uint16_t)(ub_random(env->rnd)&0xffff); + xfr->task_probe->id = GET_RANDOM_ID(env->rnd); xfr_create_soa_probe_packet(xfr, env->scratch_buffer, xfr->task_probe->id); /* we need to remove the cp if we have a different ip4/ip6 type now */ @@ -7165,12 +7171,14 @@ xfer_set_masters(struct auth_master** list, struct config_auth* c, if(with_http) for(p = c->urls; p; p = p->next) { m = auth_master_new(&list); + if(!m) return 0; m->http = 1; if(!parse_url(p->str, &m->host, &m->file, &m->port, &m->ssl)) return 0; } for(p = c->masters; p; p = p->next) { m = auth_master_new(&list); + if(!m) return 0; m->ixfr = 1; /* this flag is not configurable */ m->host = strdup(p->str); if(!m->host) { @@ -7180,6 +7188,7 @@ xfer_set_masters(struct auth_master** list, struct config_auth* c, } for(p = c->allow_notify; p; p = p->next) { m = auth_master_new(&list); + if(!m) return 0; m->allow_notify = 1; m->host = strdup(p->str); if(!m->host) { @@ -8234,6 +8243,8 @@ void auth_zone_verify_zonemd(struct auth_zone* z, struct module_env* env, int is_insecure = 0; /* verify the ZONEMD if present. * If not present check if absence is allowed by DNSSEC */ + if(!z->zonemd_check) + return; /* if zone is under a trustanchor */ /* is it equal to trustanchor - get dnskey's verified */ @@ -8302,6 +8313,10 @@ void auth_zones_pickup_zonemd_verify(struct auth_zones* az, lock_rw_rdlock(&az->lock); RBTREE_FOR(z, struct auth_zone*, &az->ztree) { lock_rw_wrlock(&z->lock); + if(!z->zonemd_check) { + lock_rw_unlock(&z->lock); + continue; + } key.dclass = z->dclass; key.namelabs = z->namelabs; if(z->namelen > sizeof(savezname)) { diff --git a/services/authzone.h b/services/authzone.h index 4810017a3..ffe234d59 100644 --- a/services/authzone.h +++ b/services/authzone.h @@ -132,6 +132,8 @@ struct auth_zone { /** for upstream: this zone answers queries that unbound intends to * send upstream. */ int for_upstream; + /** check ZONEMD records */ + int zonemd_check; /** reject absence of ZONEMD records */ int zonemd_reject_absence; /** RPZ zones */ diff --git a/services/cache/infra.c b/services/cache/infra.c index 2d16bcd6e..518e69622 100644 --- a/services/cache/infra.c +++ b/services/cache/infra.c @@ -236,6 +236,9 @@ infra_create(struct config_file* cfg) sizeof(struct infra_cache)); size_t maxmem = cfg->infra_cache_numhosts * (sizeof(struct infra_key)+ sizeof(struct infra_data)+INFRA_BYTES_NAME); + if(!infra) { + return NULL; + } infra->hosts = slabhash_create(cfg->infra_cache_slabs, INFRA_HOST_STARTSIZE, maxmem, &infra_sizefunc, &infra_compfunc, &infra_delkeyfunc, &infra_deldatafunc, NULL); diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c index ca40fac5c..52b0a2ee9 100644 --- a/services/listen_dnsport.c +++ b/services/listen_dnsport.c @@ -2678,18 +2678,45 @@ static int http2_buffer_uri_query(struct http2_session* h2_session, return 0; } - if(!(b64len = sldns_b64url_pton( - (char const *)start, length, - sldns_buffer_current(h2_stream->qbuffer), - expectb64len)) || b64len < 0) { - lock_basic_lock(&http2_query_buffer_count_lock); - http2_query_buffer_count -= expectb64len; - lock_basic_unlock(&http2_query_buffer_count_lock); - sldns_buffer_free(h2_stream->qbuffer); - h2_stream->qbuffer = NULL; - /* return without error, method can be an - * unknown POST */ - return 1; + if(sldns_b64_contains_nonurl((char const*)start, length)) { + char buf[65536+4]; + verbose(VERB_ALGO, "HTTP2 stream contains wrong b64 encoding"); + /* copy to the scratch buffer temporarily to terminate the + * string with a zero */ + if(length+1 > sizeof(buf)) { + /* too long */ + lock_basic_lock(&http2_query_buffer_count_lock); + http2_query_buffer_count -= expectb64len; + lock_basic_unlock(&http2_query_buffer_count_lock); + sldns_buffer_free(h2_stream->qbuffer); + h2_stream->qbuffer = NULL; + return 1; + } + memmove(buf, start, length); + buf[length] = 0; + if(!(b64len = sldns_b64_pton(buf, sldns_buffer_current( + h2_stream->qbuffer), expectb64len)) || b64len < 0) { + lock_basic_lock(&http2_query_buffer_count_lock); + http2_query_buffer_count -= expectb64len; + lock_basic_unlock(&http2_query_buffer_count_lock); + sldns_buffer_free(h2_stream->qbuffer); + h2_stream->qbuffer = NULL; + return 1; + } + } else { + if(!(b64len = sldns_b64url_pton( + (char const *)start, length, + sldns_buffer_current(h2_stream->qbuffer), + expectb64len)) || b64len < 0) { + lock_basic_lock(&http2_query_buffer_count_lock); + http2_query_buffer_count -= expectb64len; + lock_basic_unlock(&http2_query_buffer_count_lock); + sldns_buffer_free(h2_stream->qbuffer); + h2_stream->qbuffer = NULL; + /* return without error, method can be an + * unknown POST */ + return 1; + } } sldns_buffer_skip(h2_stream->qbuffer, (size_t)b64len); return 1; diff --git a/services/mesh.c b/services/mesh.c index 88b3d15d0..7931a072f 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -99,7 +99,7 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, size_t d) { #ifndef S_SPLINT_S size_t leftover; - if(d == 0) { + if(d <= 0) { avg->tv_sec = 0; avg->tv_usec = 0; return; @@ -108,7 +108,13 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, size_t d) avg->tv_usec = sum->tv_usec / d; /* handle fraction from seconds divide */ leftover = sum->tv_sec - avg->tv_sec*d; - avg->tv_usec += (leftover*1000000)/d; + if(leftover <= 0) + leftover = 0; + avg->tv_usec += (((long long)leftover)*((long long)1000000))/d; + if(avg->tv_sec < 0) + avg->tv_sec = 0; + if(avg->tv_usec < 0) + avg->tv_usec = 0; #endif } diff --git a/services/outside_network.c b/services/outside_network.c index d5340d8c2..af14f8622 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -94,6 +94,10 @@ static void waiting_list_remove(struct outside_network* outnet, static void reuse_tcp_remove_tree_list(struct outside_network* outnet, struct reuse_tcp* reuse); +/** select a DNS ID for a TCP stream */ +static uint16_t tcp_select_id(struct outside_network* outnet, + struct reuse_tcp* reuse); + int pending_cmp(const void* key1, const void* key2) { @@ -238,7 +242,14 @@ pick_outgoing_tcp(struct pending_tcp* pend, struct waiting_tcp* w, int s) ((struct sockaddr_in6*)&pi->addr)->sin6_port = 0; else ((struct sockaddr_in*)&pi->addr)->sin_port = 0; if(bind(s, (struct sockaddr*)&pi->addr, pi->addrlen) != 0) { - log_err("outgoing tcp: bind: %s", sock_strerror(errno)); +#ifndef USE_WINSOCK +#ifdef EADDRNOTAVAIL + if(!(verbosity < 4 && errno == EADDRNOTAVAIL)) +#endif +#else /* USE_WINSOCK */ + if(!(verbosity < 4 && WSAGetLastError() == WSAEADDRNOTAVAIL)) +#endif + log_err("outgoing tcp: bind: %s", sock_strerror(errno)); sock_close(s); return 0; } @@ -399,9 +410,18 @@ static void reuse_write_wait_push_back(struct reuse_tcp* reuse, void reuse_tree_by_id_insert(struct reuse_tcp* reuse, struct waiting_tcp* w) { +#ifdef UNBOUND_DEBUG + rbnode_type* added; +#endif log_assert(w->id_node.key == NULL); w->id_node.key = w; +#ifdef UNBOUND_DEBUG + added = +#else + (void) +#endif rbtree_insert(&reuse->tree_by_id, &w->id_node); + log_assert(added); /* should have been added */ } /** find element in tree by id */ @@ -514,7 +534,7 @@ reuse_tcp_find(struct outside_network* outnet, struct sockaddr_storage* addr, while(result && result != RBTREE_NULL && reuse_cmp_addrportssl(result->key, &key_p.reuse) == 0) { if(((struct reuse_tcp*)result)->tree_by_id.count < - MAX_REUSE_TCP_QUERIES) { + outnet->max_reuse_tcp_queries) { /* same address, port, ssl-yes-or-no, and has * space for another query */ return (struct reuse_tcp*)result; @@ -745,6 +765,9 @@ use_free_buffer(struct outside_network* outnet) w->on_tcp_waiting_list = 0; reuse = reuse_tcp_find(outnet, &w->addr, w->addrlen, w->ssl_upstream); + /* re-select an ID when moving to a new TCP buffer */ + w->id = tcp_select_id(outnet, reuse); + LDNS_ID_SET(w->pkt, w->id); if(reuse) { log_reuse_tcp(VERB_CLIENT, "use free buffer for waiting tcp: " "found reuse", reuse); @@ -823,8 +846,17 @@ outnet_add_tcp_waiting(struct outside_network* outnet, struct waiting_tcp* w) static void reuse_tree_by_id_delete(struct reuse_tcp* reuse, struct waiting_tcp* w) { +#ifdef UNBOUND_DEBUG + rbnode_type* rem; +#endif log_assert(w->id_node.key != NULL); +#ifdef UNBOUND_DEBUG + rem = +#else + (void) +#endif rbtree_delete(&reuse->tree_by_id, w); + log_assert(rem); /* should have been there */ w->id_node.key = NULL; } @@ -1012,22 +1044,22 @@ static void reuse_cb_and_decommission(struct outside_network* outnet, /** set timeout on tcp fd and setup read event to catch incoming dns msgs */ static void -reuse_tcp_setup_timeout(struct pending_tcp* pend_tcp) +reuse_tcp_setup_timeout(struct pending_tcp* pend_tcp, int tcp_reuse_timeout) { log_reuse_tcp(VERB_CLIENT, "reuse_tcp_setup_timeout", &pend_tcp->reuse); - comm_point_start_listening(pend_tcp->c, -1, REUSE_TIMEOUT); + comm_point_start_listening(pend_tcp->c, -1, tcp_reuse_timeout); } /** set timeout on tcp fd and setup read event to catch incoming dns msgs */ static void -reuse_tcp_setup_read_and_timeout(struct pending_tcp* pend_tcp) +reuse_tcp_setup_read_and_timeout(struct pending_tcp* pend_tcp, int tcp_reuse_timeout) { log_reuse_tcp(VERB_CLIENT, "reuse_tcp_setup_readtimeout", &pend_tcp->reuse); sldns_buffer_clear(pend_tcp->c->buffer); pend_tcp->c->tcp_is_reading = 1; pend_tcp->c->tcp_byte_count = 0; comm_point_stop_listening(pend_tcp->c); - comm_point_start_listening(pend_tcp->c, -1, REUSE_TIMEOUT); + comm_point_start_listening(pend_tcp->c, -1, tcp_reuse_timeout); } int @@ -1083,7 +1115,7 @@ outnet_tcp_cb(struct comm_point* c, void* arg, int error, pend->reuse.cp_more_write_again = 0; pend->c->tcp_is_reading = 1; comm_point_stop_listening(pend->c); - reuse_tcp_setup_timeout(pend); + reuse_tcp_setup_timeout(pend, outnet->tcp_reuse_timeout); } return 0; } else if(error != NETEVENT_NOERROR) { @@ -1136,7 +1168,7 @@ outnet_tcp_cb(struct comm_point* c, void* arg, int error, * and there could be more bytes to read on the input */ if(pend->reuse.tree_by_id.count != 0) pend->reuse.cp_more_read_again = 1; - reuse_tcp_setup_read_and_timeout(pend); + reuse_tcp_setup_read_and_timeout(pend, outnet->tcp_reuse_timeout); return 0; } verbose(VERB_CLIENT, "outnet_tcp_cb reuse after cb: decommission it"); @@ -1404,7 +1436,8 @@ outside_network_create(struct comm_base *base, size_t bufsize, int numavailports, size_t unwanted_threshold, int tcp_mss, void (*unwanted_action)(void*), void* unwanted_param, int do_udp, void* sslctx, int delayclose, int tls_use_sni, struct dt_env* dtenv, - int udp_connect) + int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout, + int tcp_auth_query_timeout) { struct outside_network* outnet = (struct outside_network*) calloc(1, sizeof(struct outside_network)); @@ -1416,6 +1449,9 @@ outside_network_create(struct comm_base *base, size_t bufsize, comm_base_timept(base, &outnet->now_secs, &outnet->now_tv); outnet->base = base; outnet->num_tcp = num_tcp; + outnet->max_reuse_tcp_queries = max_reuse_tcp_queries; + outnet->tcp_reuse_timeout= tcp_reuse_timeout; + outnet->tcp_auth_query_timeout = tcp_auth_query_timeout; outnet->num_tcp_outgoing = 0; outnet->infra = infra; outnet->rnd = rnd; @@ -1777,14 +1813,14 @@ select_id(struct outside_network* outnet, struct pending* pend, sldns_buffer* packet) { int id_tries = 0; - pend->id = ((unsigned)ub_random(outnet->rnd)>>8) & 0xffff; + pend->id = GET_RANDOM_ID(outnet->rnd); LDNS_ID_SET(sldns_buffer_begin(packet), pend->id); /* insert in tree */ pend->node.key = pend; while(!rbtree_insert(outnet->pending, &pend->node)) { /* change ID to avoid collision */ - pend->id = ((unsigned)ub_random(outnet->rnd)>>8) & 0xffff; + pend->id = GET_RANDOM_ID(outnet->rnd); LDNS_ID_SET(sldns_buffer_begin(packet), pend->id); id_tries++; if(id_tries == MAX_ID_RETRY) { @@ -2077,6 +2113,14 @@ reuse_tcp_close_oldest(struct outside_network* outnet) reuse_cb_and_decommission(outnet, pend, NETEVENT_CLOSED); } +static uint16_t +tcp_select_id(struct outside_network* outnet, struct reuse_tcp* reuse) +{ + if(reuse) + return reuse_tcp_select_id(reuse, outnet); + return GET_RANDOM_ID(outnet->rnd); +} + /** find spare ID value for reuse tcp stream. That is random and also does * not collide with an existing query ID that is in use or waiting */ uint16_t @@ -2090,13 +2134,13 @@ reuse_tcp_select_id(struct reuse_tcp* reuse, struct outside_network* outnet) /* make really sure the tree is not empty */ if(reuse->tree_by_id.count == 0) { - id = ((unsigned)ub_random(outnet->rnd)>>8) & 0xffff; + id = GET_RANDOM_ID(outnet->rnd); return id; } /* try to find random empty spots by picking them */ for(i = 0; irnd)>>8) & 0xffff; + id = GET_RANDOM_ID(outnet->rnd); if(!reuse_tcp_by_id_find(reuse, id)) { return id; } @@ -2194,9 +2238,7 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet, w->pkt = (uint8_t*)w + sizeof(struct waiting_tcp); w->pkt_len = sldns_buffer_limit(packet); memmove(w->pkt, sldns_buffer_begin(packet), w->pkt_len); - if(reuse) - w->id = reuse_tcp_select_id(reuse, sq->outnet); - else w->id = ((unsigned)ub_random(sq->outnet->rnd)>>8) & 0xffff; + w->id = tcp_select_id(sq->outnet, reuse); LDNS_ID_SET(w->pkt, w->id); memcpy(&w->addr, &sq->addr, sq->addrlen); w->addrlen = sq->addrlen; @@ -2443,7 +2485,7 @@ reuse_tcp_remove_serviced_keep(struct waiting_tcp* w, if(!reuse_tcp_insert(sq->outnet, pend_tcp)) { return 0; } - reuse_tcp_setup_timeout(pend_tcp); + reuse_tcp_setup_timeout(pend_tcp, sq->outnet->tcp_reuse_timeout); return 1; } return 0; @@ -2779,8 +2821,12 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error, struct comm_reply r2; #ifdef USE_DNSTAP struct waiting_tcp* w = (struct waiting_tcp*)sq->pending; - struct pending_tcp* pend_tcp = (struct pending_tcp*)w->next_waiting; - struct port_if* pi = pend_tcp->pi; + struct pending_tcp* pend_tcp = NULL; + struct port_if* pi = NULL; + if(!w->on_tcp_waiting_list && w->next_waiting) { + pend_tcp = (struct pending_tcp*)w->next_waiting; + pi = pend_tcp->pi; + } #endif sq->pending = NULL; /* removed after this callback */ if(error != NETEVENT_NOERROR) @@ -2793,7 +2839,7 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error, /* * sending src (local service)/dst (upstream) addresses over DNSTAP */ - if(error==NETEVENT_NOERROR && sq->outnet->dtenv && + if(error==NETEVENT_NOERROR && pi && sq->outnet->dtenv && (sq->outnet->dtenv->log_resolver_response_messages || sq->outnet->dtenv->log_forwarder_response_messages)) { log_addr(VERB_ALGO, "response from upstream", &sq->addr, sq->addrlen); @@ -2873,7 +2919,7 @@ serviced_tcp_initiate(struct serviced_query* sq, sldns_buffer* buff) sq->status==serviced_query_TCP_EDNS?"EDNS":""); serviced_encode(sq, buff, sq->status == serviced_query_TCP_EDNS); sq->last_sent_time = *sq->outnet->now_tv; - sq->pending = pending_tcp_query(sq, buff, TCP_AUTH_QUERY_TIMEOUT, + sq->pending = pending_tcp_query(sq, buff, sq->outnet->tcp_auth_query_timeout, serviced_tcp_callback, sq); if(!sq->pending) { /* delete from tree so that a retry by above layer does not @@ -2901,10 +2947,10 @@ serviced_tcp_send(struct serviced_query* sq, sldns_buffer* buff) sq->last_sent_time = *sq->outnet->now_tv; if(sq->tcp_upstream || sq->ssl_upstream) { timeout = rtt; - if(rtt >= UNKNOWN_SERVER_NICENESS && rtt < TCP_AUTH_QUERY_TIMEOUT) - timeout = TCP_AUTH_QUERY_TIMEOUT; + if(rtt >= UNKNOWN_SERVER_NICENESS && rtt < sq->outnet->tcp_auth_query_timeout) + timeout = sq->outnet->tcp_auth_query_timeout; } else { - timeout = TCP_AUTH_QUERY_TIMEOUT; + timeout = sq->outnet->tcp_auth_query_timeout; } sq->pending = pending_tcp_query(sq, buff, timeout, serviced_tcp_callback, sq); diff --git a/services/outside_network.h b/services/outside_network.h index 233588d40..071f37dde 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -158,6 +158,12 @@ struct outside_network { size_t num_tcp; /** number of tcp communication points in use. */ size_t num_tcp_outgoing; + /** max number of queries on a reuse connection */ + size_t max_reuse_tcp_queries; + /** timeout for REUSE entries in milliseconds. */ + int tcp_reuse_timeout; + /** timeout in milliseconds for TCP queries to auth servers. */ + int tcp_auth_query_timeout; /** * tree of still-open and waiting tcp connections for reuse. * can be closed and reopened to get a new tcp connection. @@ -295,11 +301,6 @@ struct reuse_tcp { struct outside_network* outnet; }; -/** max number of queries on a reuse connection */ -#define MAX_REUSE_TCP_QUERIES 200 -/** timeout for REUSE entries in milliseconds. */ -#define REUSE_TIMEOUT 60000 - /** * A query that has an answer pending for it. */ @@ -540,6 +541,9 @@ struct serviced_query { * @param tls_use_sni: if SNI is used for TLS connections. * @param dtenv: environment to send dnstap events with (if enabled). * @param udp_connect: if the udp_connect option is enabled. + * @param max_reuse_tcp_queries: max number of queries on a reuse connection. + * @param tcp_reuse_timeout: timeout for REUSE entries in milliseconds. + * @param tcp_auth_query_timeout: timeout in milliseconds for TCP queries to auth servers. * @return: the new structure (with no pending answers) or NULL on error. */ struct outside_network* outside_network_create(struct comm_base* base, @@ -549,7 +553,8 @@ struct outside_network* outside_network_create(struct comm_base* base, int numavailports, size_t unwanted_threshold, int tcp_mss, void (*unwanted_action)(void*), void* unwanted_param, int do_udp, void* sslctx, int delayclose, int tls_use_sni, struct dt_env *dtenv, - int udp_connect); + int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout, + int tcp_auth_query_timeout); /** * Delete outside_network structure. diff --git a/sldns/parseutil.c b/sldns/parseutil.c index 9f289d359..ba71df55d 100644 --- a/sldns/parseutil.c +++ b/sldns/parseutil.c @@ -790,3 +790,18 @@ int sldns_b64url_pton(char const *src, size_t srcsize, uint8_t *target, } return sldns_b64_pton_base(src, srcsize, target, targsize, 1); } + +int sldns_b64_contains_nonurl(char const *src, size_t srcsize) +{ + const char* s = src; + while(*s && srcsize) { + char d = *s++; + srcsize--; + /* the '+' and the '/' and padding '=' is not allowed in b64 + * url encoding */ + if(d == '+' || d == '/' || d == '=') { + return 1; + } + } + return 0; +} diff --git a/sldns/parseutil.h b/sldns/parseutil.h index 7eb23317f..74d7c7275 100644 --- a/sldns/parseutil.h +++ b/sldns/parseutil.h @@ -102,6 +102,7 @@ size_t sldns_b64_pton_calculate_size(size_t srcsize); int sldns_b64_pton(char const *src, uint8_t *target, size_t targsize); int sldns_b64url_pton(char const *src, size_t srcsize, uint8_t *target, size_t targsize); +int sldns_b64_contains_nonurl(char const *src, size_t srcsize); /** * calculates the size needed to store the result of b32_ntop diff --git a/sldns/str2wire.c b/sldns/str2wire.c index 55c38e12d..150b4513c 100644 --- a/sldns/str2wire.c +++ b/sldns/str2wire.c @@ -1078,6 +1078,10 @@ int sldns_fp2wire_rr_buf(FILE* in, uint8_t* rr, size_t* len, size_t* dname_len, memmove(parse_state->prev_rr, rr, *dname_len); parse_state->prev_rr_len = (*dname_len); } + if(r == LDNS_WIREPARSE_ERR_OK && parse_state) { + parse_state->default_ttl = sldns_wirerr_get_ttl( + rr, *len, *dname_len); + } return r; } return LDNS_WIREPARSE_ERR_OK; diff --git a/smallapp/unbound-control.c b/smallapp/unbound-control.c index 86e3949c0..af72f2a4e 100644 --- a/smallapp/unbound-control.c +++ b/smallapp/unbound-control.c @@ -188,7 +188,7 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) { #ifndef S_SPLINT_S size_t leftover; - if(d == 0) { + if(d <= 0) { avg->tv_sec = 0; avg->tv_usec = 0; return; @@ -197,7 +197,13 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) avg->tv_usec = sum->tv_usec / d; /* handle fraction from seconds divide */ leftover = sum->tv_sec - avg->tv_sec*d; - avg->tv_usec += (leftover*1000000)/d; + if(leftover <= 0) + leftover = 0; + avg->tv_usec += (((long long)leftover)*((long long)1000000))/d; + if(avg->tv_sec < 0) + avg->tv_sec = 0; + if(avg->tv_usec < 0) + avg->tv_usec = 0; #endif } diff --git a/testcode/delayer.c b/testcode/delayer.c index 54175dbe3..0c8f2a45d 100644 --- a/testcode/delayer.c +++ b/testcode/delayer.c @@ -347,7 +347,10 @@ static volatile int do_quit = 0; /** signal handler for user quit */ static RETSIGTYPE delayer_sigh(int sig) { - printf("exit on signal %d\n", sig); + char str[] = "exit on signal \n"; + str[15] = '0' + (sig/10)%10; + str[16] = '0' + sig%10; + write(STDOUT_FILENO, str, strlen(str)); do_quit = 1; } diff --git a/testcode/do-tests.sh b/testcode/do-tests.sh index effb7c16a..2a1cfc4c9 100755 --- a/testcode/do-tests.sh +++ b/testcode/do-tests.sh @@ -1,5 +1,11 @@ #!/usr/bin/env bash . testdata/common.sh +quiet=0 +if test "$1" = "-q"; then + quiet=1 + tdirarg="-q" + shift +fi NEED_SPLINT='00-lint.tdir' NEED_DOXYGEN='01-doc.tdir' @@ -33,7 +39,7 @@ fi export -n NOTIFY_SOCKET cd testdata; -sh ../testcode/mini_tdir.sh clean +sh ../testcode/mini_tdir.sh $tdirarg clean rm -f .perfstats.txt for test in `ls -d *.tdir`; do SKIP=0 @@ -57,10 +63,10 @@ for test in `ls -d *.tdir`; do fi if test $SKIP -eq 0; then echo $test - sh ../testcode/mini_tdir.sh -a ../.. exe $test + sh ../testcode/mini_tdir.sh -a ../.. $tdirarg exe $test else echo "skip $test" fi done -sh ../testcode/mini_tdir.sh report +sh ../testcode/mini_tdir.sh $tdirarg report cat .perfstats.txt diff --git a/testcode/dohclient.c b/testcode/dohclient.c index 263418049..93d84a835 100644 --- a/testcode/dohclient.c +++ b/testcode/dohclient.c @@ -423,6 +423,7 @@ http2_session_create() if(nghttp2_session_callbacks_new(&callbacks) == NGHTTP2_ERR_NOMEM) { log_err("failed to initialize nghttp2 callback"); + free(h2_session); return NULL; } nghttp2_session_callbacks_set_recv_callback(callbacks, http2_recv_cb); @@ -501,7 +502,9 @@ run(struct http2_session* h2_session, int port, int no_tls, int count, char** q) if(!no_tls) { ctx = connect_sslctx_create(NULL, NULL, NULL, 0); if(!ctx) fatal_exit("cannot create ssl ctx"); +#ifdef HAVE_SSL_CTX_SET_ALPN_PROTOS SSL_CTX_set_alpn_protos(ctx, (const unsigned char *)"\x02h2", 3); +#endif ssl = outgoing_ssl_fd(ctx, fd); if(!ssl) { printf("cannot create ssl\n"); @@ -620,7 +623,25 @@ int main(int argc, char** argv) return 1; } - + if(!no_tls) { +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL) + ERR_load_SSL_strings(); +#endif +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_CRYPTO) +# ifndef S_SPLINT_S + OpenSSL_add_all_algorithms(); +# endif +#else + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS + | OPENSSL_INIT_ADD_ALL_DIGESTS + | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); +#endif +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL) + (void)SSL_library_init(); +#else + (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL); +#endif + } run(h2_session, port, no_tls, argc, argv); checklock_stop(); diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 3ff933928..a19a1ec0d 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -451,6 +451,8 @@ fake_front_query(struct replay_runtime* runtime, struct replay_moment *todo) struct comm_reply repinfo; memset(&repinfo, 0, sizeof(repinfo)); repinfo.c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); + if(!repinfo.c) + fatal_exit("out of memory in fake_front_query"); repinfo.addrlen = (socklen_t)sizeof(struct sockaddr_in); if(todo->addrlen != 0) { repinfo.addrlen = todo->addrlen; @@ -597,7 +599,7 @@ autotrust_check(struct replay_runtime* runtime, struct replay_moment* mom) log_err("should be: %s", p->str); fatal_exit("autotrust_check failed"); } - if(line[0]) line[strlen(line)-1] = 0; /* remove newline */ + strip_end_white(line); expanded = macro_process(runtime->vars, runtime, p->str); if(!expanded) fatal_exit("could not expand macro line %d", lineno); @@ -650,7 +652,7 @@ tempfile_check(struct replay_runtime* runtime, struct replay_moment* mom) log_err("should be: %s", p->str); fatal_exit("tempfile_check failed"); } - if(line[0]) line[strlen(line)-1] = 0; /* remove newline */ + strip_end_white(line); expanded = macro_process(runtime->vars, runtime, p->str); if(!expanded) fatal_exit("could not expand macro line %d", lineno); @@ -909,6 +911,8 @@ comm_base_create(int ATTR_UNUSED(sigs)) /* we return the runtime structure instead. */ struct replay_runtime* runtime = (struct replay_runtime*) calloc(1, sizeof(struct replay_runtime)); + if(!runtime) + fatal_exit("out of memory in fake_event.c:comm_base_create"); runtime->scenario = saved_scenario; runtime->vars = macro_store_create(); if(!runtime->vars) fatal_exit("out of memory"); @@ -1046,7 +1050,9 @@ outside_network_create(struct comm_base* base, size_t bufsize, void (*unwanted_action)(void*), void* ATTR_UNUSED(unwanted_param), int ATTR_UNUSED(do_udp), void* ATTR_UNUSED(sslctx), int ATTR_UNUSED(delayclose), int ATTR_UNUSED(tls_use_sni), - struct dt_env* ATTR_UNUSED(dtenv), int ATTR_UNUSED(udp_connect)) + struct dt_env* ATTR_UNUSED(dtenv), int ATTR_UNUSED(udp_connect), + int ATTR_UNUSED(max_reuse_tcp_queries), int ATTR_UNUSED(tcp_reuse_timeout), + int ATTR_UNUSED(tcp_auth_query_timeout)) { struct replay_runtime* runtime = (struct replay_runtime*)base; struct outside_network* outnet = calloc(1, @@ -1532,6 +1538,8 @@ struct comm_timer* comm_timer_create(struct comm_base* base, { struct replay_runtime* runtime = (struct replay_runtime*)base; struct fake_timer* t = (struct fake_timer*)calloc(1, sizeof(*t)); + if(!t) + fatal_exit("out of memory in fake_event.c:comm_timer_create"); t->cb = cb; t->cb_arg = cb_arg; fptr_ok(fptr_whitelist_comm_timer(t->cb)); /* check in advance */ @@ -1709,7 +1717,7 @@ struct comm_point* outnet_comm_point_for_tcp(struct outside_network* outnet, addr_to_str((struct sockaddr_storage*)to_addr, to_addrlen, addrbuf, sizeof(addrbuf)); if(verbosity >= VERB_ALGO) { - if(buf[0] != 0) buf[strlen(buf)-1] = 0; /* del newline*/ + strip_end_white(buf); log_info("tcp to %s: %s", addrbuf, buf); } log_assert(sldns_buffer_limit(query)-LDNS_HEADER_SIZE >= 2); @@ -1799,7 +1807,7 @@ int comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet, addr_to_str((struct sockaddr_storage*)addr, addrlen, addrbuf, sizeof(addrbuf)); if(verbosity >= VERB_ALGO) { - if(buf[0] != 0) buf[strlen(buf)-1] = 0; /* del newline*/ + strip_end_white(buf); log_info("udp to %s: %s", addrbuf, buf); } log_assert(sldns_buffer_limit(packet)-LDNS_HEADER_SIZE >= 2); diff --git a/testcode/mini_tdir.sh b/testcode/mini_tdir.sh index 5f02b0862..0457a95e7 100755 --- a/testcode/mini_tdir.sh +++ b/testcode/mini_tdir.sh @@ -5,14 +5,23 @@ if test "$1" = "-a"; then shift shift fi - +quiet=0 +if test "$1" = "-q"; then + quiet=1 + shift +fi + if test "$1" = "clean"; then - echo "rm -f result.* .done* .tdir.var.master .tdir.var.test" + if test $quiet = 0; then + echo "rm -f result.* .done* .tdir.var.master .tdir.var.test" + fi rm -f result.* .done* .tdir.var.master .tdir.var.test exit 0 fi if test "$1" = "fake"; then - echo "minitdir fake $2" + if test $quiet = 0; then + echo "minitdir fake $2" + fi echo "fake" > .done-`basename $2 .tdir` exit 0 fi @@ -37,7 +46,7 @@ if test "$1" = "-f" && test "$2" = "report"; then desc=`grep ^Description: "result.$name" | sed -e 's/Description: //'` fi if test -f ".done-$name"; then - if test "$1" != "-q"; then + if test $quiet = 0; then echo "** PASSED ** $timelen $name: $desc" pass=`expr $pass + 1` fi @@ -65,7 +74,7 @@ if test "$1" = "report" || test "$2" = "report"; then for result in *.tdir; do name=`basename $result .tdir` if test -f ".done-$name"; then - if test "$1" != "-q"; then + if test $quiet = 0; then echo "** PASSED ** : $name" fi else @@ -82,9 +91,9 @@ fi if test "$1" != 'exe'; then # usage echo "mini tdir. Reduced functionality for old shells." - echo " tdir exe " - echo " tdir fake " - echo " tdir clean" + echo " tdir [-q] exe " + echo " tdir [-q] fake " + echo " tdir [-q] clean" echo " tdir [-q|-f] report" exit 1 fi @@ -117,7 +126,9 @@ if test -f .done-$name; then fi # Copy -echo "minitdir copy $1 to $dir" +if test $quiet = 0; then + echo "minitdir copy $1 to $dir" +fi mkdir $dir if cp --help 2>&1 | grep -- "-a" >/dev/null; then cp -a $name.tdir/* $dir/ @@ -131,7 +142,9 @@ echo "minitdir exe $name" > $result grep "Description:" $name.dsc >> $result 2>&1 echo "DateRunStart: "`date "+%s" 2>/dev/null` >> $result if test -f $name.pre; then - echo "minitdir exe $name.pre" + if test $quiet = 0; then + echo "minitdir exe $name.pre" + fi echo "minitdir exe $name.pre" >> $result $shell $name.pre $args >> $result if test $? -ne 0; then @@ -139,7 +152,9 @@ if test -f $name.pre; then fi fi if test -f $name.test; then - echo "minitdir exe $name.test" + if test $quiet = 0; then + echo "minitdir exe $name.test" + fi echo "minitdir exe $name.test" >> $result $shell $name.test $args >>$result 2>&1 if test $? -ne 0; then @@ -149,12 +164,16 @@ if test -f $name.test; then else echo "$name: PASSED" >> $result echo "$name: PASSED" > ../.done-$name - echo "$name: PASSED" + if test $quiet = 0; then + echo "$name: PASSED" + fi success="yes" fi fi if test -f $name.post; then - echo "minitdir exe $name.post" + if test $quiet = 0; then + echo "minitdir exe $name.post" + fi echo "minitdir exe $name.post" >> $result $shell $name.post $args >> $result if test $? -ne 0; then diff --git a/testcode/replay.c b/testcode/replay.c index 84ce50441..2487c146f 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -124,8 +124,7 @@ replay_range_delete(struct replay_range* rng) free(rng); } -/** strip whitespace from end of string */ -static void +void strip_end_white(char* p) { size_t i; @@ -227,7 +226,7 @@ read_file_content(FILE* in, int* lineno, struct replay_moment* mom) if(strncmp(line, "FILE_END", 8) == 0) { return; } - if(line[0]) line[strlen(line)-1] = 0; /* remove newline */ + strip_end_white(line); if(!cfg_strlist_insert(last, strdup(line))) fatal_exit("malloc failure"); last = &( (*last)->next ); @@ -249,7 +248,7 @@ read_assign_step(char* remain, struct replay_moment* mom) if(eq != '=') fatal_exit("no '=' in assign: %s", remain); remain += skip; - if(remain[0]) remain[strlen(remain)-1]=0; /* remove newline */ + strip_end_white(remain); mom->string = strdup(remain); if(!mom->variable || !mom->string) fatal_exit("out of memory"); @@ -318,8 +317,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, mom->evt_type = repevt_autotrust_check; while(isspace((unsigned char)*remain)) remain++; - if(strlen(remain)>0 && remain[strlen(remain)-1]=='\n') - remain[strlen(remain)-1] = 0; + strip_end_white(remain); mom->autotrust_id = strdup(remain); if(!mom->autotrust_id) fatal_exit("out of memory"); read_file_content(in, &pstate->lineno, mom); @@ -327,8 +325,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, mom->evt_type = repevt_tempfile_check; while(isspace((unsigned char)*remain)) remain++; - if(strlen(remain)>0 && remain[strlen(remain)-1]=='\n') - remain[strlen(remain)-1] = 0; + strip_end_white(remain); mom->autotrust_id = strdup(remain); if(!mom->autotrust_id) fatal_exit("out of memory"); read_file_content(in, &pstate->lineno, mom); @@ -359,8 +356,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, m++; if(!extstrtoaddr(s, &mom->addr, &mom->addrlen)) fatal_exit("bad infra_rtt address %s", s); - if(strlen(m)>0 && m[strlen(m)-1]=='\n') - m[strlen(m)-1] = 0; + strip_end_white(m); mom->variable = strdup(remain); mom->string = strdup(m); if(!mom->string) fatal_exit("out of memory"); @@ -375,8 +371,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, if(parse_keyword(&remain, "ADDRESS")) { while(isspace((unsigned char)*remain)) remain++; - if(strlen(remain) > 0) /* remove \n */ - remain[strlen(remain)-1] = 0; + strip_end_white(remain); if(!extstrtoaddr(remain, &mom->addr, &mom->addrlen)) { log_err("line %d: could not parse ADDRESS: %s", pstate->lineno, remain); @@ -693,7 +688,11 @@ do_macro_ctime(char* arg) return NULL; } ctime_r(&tt, buf); - if(buf[0]) buf[strlen(buf)-1]=0; /* remove trailing newline */ +#ifdef USE_WINSOCK + if(strlen(buf) > 10 && buf[7]==' ' && buf[8]=='0') + buf[8]=' '; /* fix error in windows ctime */ +#endif + strip_end_white(buf); return strdup(buf); } diff --git a/testcode/replay.h b/testcode/replay.h index 5132cdacb..0271dff03 100644 --- a/testcode/replay.h +++ b/testcode/replay.h @@ -425,6 +425,9 @@ int replay_var_compare(const void* a, const void* b); /** get oldest enabled fake timer */ struct fake_timer* replay_get_oldest_timer(struct replay_runtime* runtime); +/** strip whitespace from end of string */ +void strip_end_white(char* p); + /** * Create variable storage * @return new or NULL on failure. diff --git a/testcode/streamtcp.c b/testcode/streamtcp.c index ffdddbe9d..3fbb792e5 100644 --- a/testcode/streamtcp.c +++ b/testcode/streamtcp.c @@ -397,11 +397,15 @@ send_em(const char* svr, int udp, int usessl, int noanswer, int onarrival, /** SIGPIPE handler */ static RETSIGTYPE sigh(int sig) { + char str[] = "Got unhandled signal \n"; if(sig == SIGPIPE) { - printf("got SIGPIPE, remote connection gone\n"); + char* strpipe = "got SIGPIPE, remote connection gone\n"; + write(STDOUT_FILENO, strpipe, strlen(strpipe)); exit(1); } - printf("Got unhandled signal %d\n", sig); + str[21] = '0' + (sig/10)%10; + str[22] = '0' + sig%10; + write(STDOUT_FILENO, str, strlen(str)); exit(1); } #endif /* SIGPIPE */ diff --git a/testcode/testbound.c b/testcode/testbound.c index 5e10779fc..c92900142 100644 --- a/testcode/testbound.c +++ b/testcode/testbound.c @@ -168,7 +168,7 @@ spool_temp_file_name(int* lineno, FILE* cfg, char* id) id++; if(*id == '\0') fatal_exit("TEMPFILE_NAME must have id, line %d", *lineno); - id[strlen(id)-1]=0; /* remove newline */ + strip_end_white(id); fake_temp_file("_temp_", id, line, sizeof(line)); fprintf(cfg, "\"%s\"\n", line); } @@ -185,7 +185,7 @@ spool_temp_file(FILE* in, int* lineno, char* id) id++; if(*id == '\0') fatal_exit("TEMPFILE_CONTENTS must have id, line %d", *lineno); - id[strlen(id)-1]=0; /* remove newline */ + strip_end_white(id); fake_temp_file("_temp_", id, line, sizeof(line)); /* open file and spool to it */ spool = fopen(line, "w"); @@ -205,7 +205,7 @@ spool_temp_file(FILE* in, int* lineno, char* id) char* tid = parse+17; while(isspace((unsigned char)*tid)) tid++; - tid[strlen(tid)-1]=0; /* remove newline */ + strip_end_white(tid); fake_temp_file("_temp_", tid, l2, sizeof(l2)); snprintf(line, sizeof(line), "$INCLUDE %s\n", l2); } @@ -230,7 +230,7 @@ spool_auto_file(FILE* in, int* lineno, FILE* cfg, char* id) id++; if(*id == '\0') fatal_exit("AUTROTRUST_FILE must have id, line %d", *lineno); - id[strlen(id)-1]=0; /* remove newline */ + strip_end_white(id); fake_temp_file("_auto_", id, line, sizeof(line)); /* add option for the file */ fprintf(cfg, "server: auto-trust-anchor-file: \"%s\"\n", line); @@ -279,6 +279,7 @@ setup_config(FILE* in, int* lineno, int* pass_argc, char* pass_argv[]) fprintf(cfg, " username: \"\"\n"); fprintf(cfg, " pidfile: \"\"\n"); fprintf(cfg, " val-log-level: 2\n"); + fprintf(cfg, " log-servfail: yes\n"); fprintf(cfg, "remote-control: control-enable: no\n"); while(fgets(line, MAX_LINE_LEN-1, in)) { parse = line; diff --git a/testcode/unitauth.c b/testcode/unitauth.c index 184573ab6..d193526b8 100644 --- a/testcode/unitauth.c +++ b/testcode/unitauth.c @@ -468,8 +468,13 @@ tmpfilecleanup(void) int i; char buf[256]; for(i=0; izonemd_check = 1; /* create zonemd digest */ result = auth_zone_generate_zonemd_hash(z, scheme, hashalgo, @@ -196,6 +197,7 @@ static void zonemd_check_test(void) /* read file */ z = authtest_addzone(az, zname, zfile); unit_assert(z); + z->zonemd_check = 1; hashlen = sizeof(hash); if(sldns_str2wire_hex_buf(digest, hash, &hashlen) != 0) { unit_assert(0); /* parse failure */ @@ -291,6 +293,7 @@ static void zonemd_verify_test(char* zname, char* zfile, char* tastr, /* test */ lock_rw_wrlock(&z->lock); + z->zonemd_check = 1; auth_zone_verify_zonemd(z, &env, &mods, &result, 1, 0); lock_rw_unlock(&z->lock); if(verbosity >= VERB_ALGO) { diff --git a/testdata/auth_zonemd_anchor.rpl b/testdata/auth_zonemd_anchor.rpl index 7e4257513..c443f7d43 100644 --- a/testdata/auth_zonemd_anchor.rpl +++ b/testdata/auth_zonemd_anchor.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_anchor_fail.rpl b/testdata/auth_zonemd_anchor_fail.rpl index 69492d5f8..d055174dc 100644 --- a/testdata/auth_zonemd_anchor_fail.rpl +++ b/testdata/auth_zonemd_anchor_fail.rpl @@ -27,6 +27,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_chain.rpl b/testdata/auth_zonemd_chain.rpl index b693f6c35..74479274f 100644 --- a/testdata/auth_zonemd_chain.rpl +++ b/testdata/auth_zonemd_chain.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_chain_fail.rpl b/testdata/auth_zonemd_chain_fail.rpl index d38367b9d..393b1c028 100644 --- a/testdata/auth_zonemd_chain_fail.rpl +++ b/testdata/auth_zonemd_chain_fail.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_file.rpl b/testdata/auth_zonemd_file.rpl index ffccd6779..bdf0ccbae 100644 --- a/testdata/auth_zonemd_file.rpl +++ b/testdata/auth_zonemd_file.rpl @@ -21,6 +21,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_file_fail.rpl b/testdata/auth_zonemd_file_fail.rpl index 4bfa81b80..69487cf65 100644 --- a/testdata/auth_zonemd_file_fail.rpl +++ b/testdata/auth_zonemd_file_fail.rpl @@ -21,6 +21,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_insecure.rpl b/testdata/auth_zonemd_insecure.rpl index b48992b4d..18a4117d8 100644 --- a/testdata/auth_zonemd_insecure.rpl +++ b/testdata/auth_zonemd_insecure.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_insecure_absent.rpl b/testdata/auth_zonemd_insecure_absent.rpl index 4706ccb0a..1c3f48808 100644 --- a/testdata/auth_zonemd_insecure_absent.rpl +++ b/testdata/auth_zonemd_insecure_absent.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_insecure_absent_reject.rpl b/testdata/auth_zonemd_insecure_absent_reject.rpl index 79225c936..beb9f5b9a 100644 --- a/testdata/auth_zonemd_insecure_absent_reject.rpl +++ b/testdata/auth_zonemd_insecure_absent_reject.rpl @@ -7,6 +7,7 @@ server: auth-zone: name: "example.com." + zonemd-check: yes zonemd-reject-absence: yes ## zonefile (or none). ## zonefile: "example.com.zone" diff --git a/testdata/auth_zonemd_insecure_fail.rpl b/testdata/auth_zonemd_insecure_fail.rpl index 03bbdd64c..f7aad071e 100644 --- a/testdata/auth_zonemd_insecure_fail.rpl +++ b/testdata/auth_zonemd_insecure_fail.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_nokey.rpl b/testdata/auth_zonemd_nokey.rpl index 57609337e..a89414bf6 100644 --- a/testdata/auth_zonemd_nokey.rpl +++ b/testdata/auth_zonemd_nokey.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_permissive_mode.rpl b/testdata/auth_zonemd_permissive_mode.rpl index 0df0a2951..4149daa92 100644 --- a/testdata/auth_zonemd_permissive_mode.rpl +++ b/testdata/auth_zonemd_permissive_mode.rpl @@ -22,6 +22,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr.rpl b/testdata/auth_zonemd_xfr.rpl index 0a4d45f92..89e22cea1 100644 --- a/testdata/auth_zonemd_xfr.rpl +++ b/testdata/auth_zonemd_xfr.rpl @@ -22,6 +22,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_anchor.rpl b/testdata/auth_zonemd_xfr_anchor.rpl index 682d51b47..667de2eae 100644 --- a/testdata/auth_zonemd_xfr_anchor.rpl +++ b/testdata/auth_zonemd_xfr_anchor.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_anchor_fail.rpl b/testdata/auth_zonemd_xfr_anchor_fail.rpl index 2b2849546..237ed9498 100644 --- a/testdata/auth_zonemd_xfr_anchor_fail.rpl +++ b/testdata/auth_zonemd_xfr_anchor_fail.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_chain.rpl b/testdata/auth_zonemd_xfr_chain.rpl index 9d1fdcf68..4deb99bcb 100644 --- a/testdata/auth_zonemd_xfr_chain.rpl +++ b/testdata/auth_zonemd_xfr_chain.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_chain_fail.rpl b/testdata/auth_zonemd_xfr_chain_fail.rpl index 8b3ad74f0..3e09c9e8e 100644 --- a/testdata/auth_zonemd_xfr_chain_fail.rpl +++ b/testdata/auth_zonemd_xfr_chain_fail.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_fail.rpl b/testdata/auth_zonemd_xfr_fail.rpl index 9fdf70889..f54ca7e08 100644 --- a/testdata/auth_zonemd_xfr_fail.rpl +++ b/testdata/auth_zonemd_xfr_fail.rpl @@ -22,6 +22,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/root_key_sentinel.rpl b/testdata/root_key_sentinel.rpl old mode 100755 new mode 100644 diff --git a/testdata/zonemd_reload.tdir/zonemd_reload.conf b/testdata/zonemd_reload.tdir/zonemd_reload.conf index 27bdb4424..9afd6e2b1 100644 --- a/testdata/zonemd_reload.tdir/zonemd_reload.conf +++ b/testdata/zonemd_reload.tdir/zonemd_reload.conf @@ -19,4 +19,5 @@ auth-zone: for-upstream: yes for-downstream: yes zonefile: "zonemd_reload.zone" + zonemd-check: yes #master: "127.0.0.1@@TOPORT@" diff --git a/util/config_file.c b/util/config_file.c index 171251f67..96fade541 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -105,11 +105,14 @@ config_create(void) cfg->do_ip6 = 1; cfg->do_udp = 1; cfg->do_tcp = 1; + cfg->tcp_reuse_timeout = 60 * 1000; /* 60s in milisecs */ + cfg->max_reuse_tcp_queries = 200; cfg->tcp_upstream = 0; cfg->udp_upstream_without_downstream = 0; cfg->tcp_mss = 0; cfg->outgoing_tcp_mss = 0; cfg->tcp_idle_timeout = 30 * 1000; /* 30s in millisecs */ + cfg->tcp_auth_query_timeout = 3 * 1000; /* 3s in millisecs */ cfg->do_tcp_keepalive = 0; cfg->tcp_keepalive_timeout = 120 * 1000; /* 120s in millisecs */ cfg->ssl_service_key = NULL; @@ -250,6 +253,7 @@ config_create(void) cfg->val_date_override = 0; cfg->val_sig_skew_min = 3600; /* at least daylight savings trouble */ cfg->val_sig_skew_max = 86400; /* at most timezone settings trouble */ + cfg->val_max_restart = 5; cfg->val_clean_additional = 1; cfg->val_log_level = 0; cfg->val_log_squelch = 0; @@ -306,7 +310,7 @@ config_create(void) if(!(cfg->module_conf = strdup("validator iterator"))) goto error_exit; #endif if(!(cfg->val_nsec3_key_iterations = - strdup("1024 150 2048 500 4096 2500"))) goto error_exit; + strdup("1024 150 2048 150 4096 150"))) goto error_exit; #if defined(DNSTAP_SOCKET_PATH) if(!(cfg->dnstap_socket_path = strdup(DNSTAP_SOCKET_PATH))) goto error_exit; @@ -517,7 +521,10 @@ int config_set_option(struct config_file* cfg, const char* opt, udp_upstream_without_downstream) else S_NUMBER_NONZERO("tcp-mss:", tcp_mss) else S_NUMBER_NONZERO("outgoing-tcp-mss:", outgoing_tcp_mss) + else S_NUMBER_NONZERO("tcp-auth-query-timeout:", tcp_auth_query_timeout) else S_NUMBER_NONZERO("tcp-idle-timeout:", tcp_idle_timeout) + else S_NUMBER_NONZERO("max-reuse-tcp-queries:", max_reuse_tcp_queries) + else S_NUMBER_NONZERO("tcp-reuse-timeout:", tcp_reuse_timeout) else S_YNO("edns-tcp-keepalive:", do_tcp_keepalive) else S_NUMBER_NONZERO("edns-tcp-keepalive-timeout:", tcp_keepalive_timeout) else S_YNO("ssl-upstream:", ssl_upstream) @@ -758,12 +765,14 @@ int config_set_option(struct config_file* cfg, const char* opt, #endif else if(strcmp(opt, "define-tag:") ==0) { return config_add_tag(cfg, val); - /* val_sig_skew_min and max are copied into val_env during init, - * so this does not update val_env with set_option */ + /* val_sig_skew_min, max and val_max_restart are copied into val_env + * during init so this does not update val_env with set_option */ } else if(strcmp(opt, "val-sig-skew-min:") == 0) { IS_NUMBER_OR_ZERO; cfg->val_sig_skew_min = (int32_t)atoi(val); } else if(strcmp(opt, "val-sig-skew-max:") == 0) { IS_NUMBER_OR_ZERO; cfg->val_sig_skew_max = (int32_t)atoi(val); } + else if(strcmp(opt, "val-max-restart:") == 0) + { IS_NUMBER_OR_ZERO; cfg->val_max_restart = (int32_t)atoi(val); } else if (strcmp(opt, "outgoing-interface:") == 0) { char* d = strdup(val); char** oi = @@ -1007,7 +1016,10 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "udp-upstream-without-downstream", udp_upstream_without_downstream) else O_DEC(opt, "tcp-mss", tcp_mss) else O_DEC(opt, "outgoing-tcp-mss", outgoing_tcp_mss) + else O_DEC(opt, "tcp-auth-query-timeout", tcp_auth_query_timeout) else O_DEC(opt, "tcp-idle-timeout", tcp_idle_timeout) + else O_DEC(opt, "max-reuse-tcp-queries", max_reuse_tcp_queries) + else O_DEC(opt, "tcp-reuse-timeout", tcp_reuse_timeout) else O_YNO(opt, "edns-tcp-keepalive", do_tcp_keepalive) else O_DEC(opt, "edns-tcp-keepalive-timeout", tcp_keepalive_timeout) else O_YNO(opt, "ssl-upstream", ssl_upstream) @@ -1181,6 +1193,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_DEC(opt, "fast-server-permil", fast_server_permil) else O_DEC(opt, "val-sig-skew-min", val_sig_skew_min) else O_DEC(opt, "val-sig-skew-max", val_sig_skew_max) + else O_DEC(opt, "val-max-restart", val_max_restart) else O_YNO(opt, "qname-minimisation", qname_minimisation) else O_YNO(opt, "qname-minimisation-strict", qname_minimisation_strict) else O_IFC(opt, "define-tag", num_tags, tagname) diff --git a/util/config_file.h b/util/config_file.h index f5eda738c..9441a5540 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -93,6 +93,12 @@ struct config_file { int do_udp; /** do tcp query support. */ int do_tcp; + /** max number of queries on a reuse connection. */ + size_t max_reuse_tcp_queries; + /** timeout for REUSE entries in milliseconds. */ + int tcp_reuse_timeout; + /** timeout in milliseconds for TCP queries to auth servers. */ + int tcp_auth_query_timeout; /** tcp upstream queries (no UDP upstream queries) */ int tcp_upstream; /** udp upstream enabled when no UDP downstream is enabled (do_udp no)*/ @@ -367,6 +373,8 @@ struct config_file { int32_t val_sig_skew_min; /** the maximum for signature clock skew */ int32_t val_sig_skew_max; + /** max number of query restarts, number of IPs to probe */ + int32_t val_max_restart; /** this value sets the number of seconds before revalidating bogus */ int bogus_ttl; /** should validator clean additional section for secure msgs */ @@ -729,6 +737,8 @@ struct config_auth { /** Always reply with this CNAME target if the cname override action is * used */ char* rpz_cname; + /** Check ZONEMD records for this zone */ + int zonemd_check; /** Reject absence of ZONEMD records, zone must have one */ int zonemd_reject_absence; }; diff --git a/util/configlexer.c b/util/configlexer.c index cbf1c103c..5fae5b41e 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 345 -#define YY_END_OF_BUFFER 346 +#define YY_NUM_RULES 350 +#define YY_END_OF_BUFFER 351 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,380 +363,388 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3388] = +static const flex_int16_t yy_accept[3457] = { 0, - 1, 1, 319, 319, 323, 323, 327, 327, 331, 331, - 1, 1, 335, 335, 339, 339, 346, 343, 1, 317, - 317, 344, 2, 344, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 319, 320, 320, 321, - 344, 323, 324, 324, 325, 344, 330, 327, 328, 328, - 329, 344, 331, 332, 332, 333, 344, 342, 318, 2, - 322, 344, 342, 338, 335, 336, 336, 337, 344, 339, - 340, 340, 341, 344, 343, 0, 1, 2, 2, 2, - 2, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 1, 1, 324, 324, 328, 328, 332, 332, 336, 336, + 1, 1, 340, 340, 344, 344, 351, 348, 1, 322, + 322, 349, 2, 349, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 324, 325, 325, 326, + 349, 328, 329, 329, 330, 349, 335, 332, 333, 333, + 334, 349, 336, 337, 337, 338, 349, 347, 323, 2, + 327, 349, 347, 343, 340, 341, 341, 342, 349, 344, + 345, 345, 346, 349, 348, 0, 1, 2, 2, 2, + 2, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 319, - 0, 323, 0, 330, 0, 327, 331, 0, 342, 0, - 2, 2, 342, 338, 0, 335, 339, 0, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 324, + 0, 328, 0, 335, 0, 332, 336, 0, 347, 0, + 2, 2, 347, 343, 0, 340, 344, 0, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 342, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 125, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 134, - 343, 343, 343, 343, 343, 343, 343, 342, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 128, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 137, + 348, 348, 348, 348, 348, 348, 348, 347, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 109, 343, 316, 343, - 343, 343, 343, 343, 343, 343, 8, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 112, 348, 321, + 348, 348, 348, 348, 348, 348, 348, 8, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 126, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 139, 343, 343, - 342, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 129, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 142, 348, 348, 347, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 309, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 314, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 342, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 64, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 241, 343, 14, 15, 343, 19, 18, 343, - 343, 225, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 347, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 67, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 246, 348, 14, 15, 348, 19, 18, 348, 348, 230, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 132, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 223, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 3, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 135, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 228, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 3, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 342, 343, 343, 343, 343, 343, 343, - 343, 303, 343, 343, 302, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 326, 343, 343, 343, 343, 343, 343, 343, - 343, 63, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 67, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 347, 348, 348, 348, 348, + 348, 348, 348, 308, 348, 348, 307, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 331, 348, 348, 348, 348, 348, + 348, 348, 348, 66, 348, 348, 348, 348, 348, 348, - 272, 343, 343, 343, 343, 343, 343, 343, 343, 310, - 311, 343, 343, 343, 343, 343, 343, 343, 68, 343, - 343, 133, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 129, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 212, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 21, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 158, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 70, 348, 277, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 315, 316, 348, 348, 348, 348, 348, 348, + 348, 71, 348, 348, 136, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 132, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 217, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 21, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 342, 326, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 107, 343, 343, 343, 343, - 343, 343, 343, 280, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 182, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 157, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 161, 348, 348, 348, 348, 348, 347, + 331, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 110, 348, 348, 348, 348, 348, 348, 348, + 285, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 186, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 160, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 106, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 32, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 33, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 65, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 109, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 35, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 36, 348, 348, 348, 348, - 343, 131, 343, 343, 342, 343, 343, 343, 343, 343, - 124, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 66, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 245, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 183, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 54, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 68, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 134, 348, 348, 348, 347, 348, 348, 348, + 348, 348, 127, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 69, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 250, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 187, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 263, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 58, 343, 59, 343, 343, 343, - 343, 343, 110, 343, 111, 343, 343, 343, 343, 108, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 57, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 268, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 61, 348, 62, + 348, 348, 348, 348, 348, 113, 348, 114, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 7, - 343, 343, 343, 342, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 234, 343, 343, 343, 343, 160, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 246, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 45, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 111, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 7, 348, 348, 348, 348, + 347, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 239, + 348, 348, 348, 348, 163, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 251, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 55, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 204, 343, 203, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 16, 17, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 69, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 211, 343, 343, 343, 343, - 343, 343, 113, 343, 112, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 48, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 58, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 209, 348, 208, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 16, 17, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 72, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 195, 343, 343, - 343, 343, 343, 343, 343, 343, 140, 343, 343, 342, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 101, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 89, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 224, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 94, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 216, 348, 348, 348, 348, 348, 348, + 116, 348, 115, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 200, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 143, 348, 348, + 348, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 104, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 92, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 229, 348, - 343, 343, 343, 343, 343, 343, 343, 62, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 198, 199, 343, 343, - 343, 274, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 6, 343, 343, 343, 343, 343, - 343, 293, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 278, - 343, 343, 343, 343, 343, 343, 304, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 42, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 97, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 65, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 203, 204, + 348, 348, 348, 279, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 6, 348, 348, + 348, 348, 348, 348, 298, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 44, 343, 343, 343, 90, 343, 343, - 343, 343, 343, 52, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 342, 343, 191, 343, 343, 343, 135, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 216, 343, 192, 343, 343, 343, 231, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 53, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 137, 118, - 343, 119, 343, 343, 343, 117, 343, 343, 343, 343, - 343, 343, 343, 343, 155, 343, 343, 50, 343, 343, + 348, 348, 283, 348, 348, 348, 348, 348, 348, 309, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 45, 348, 348, 348, 348, 47, 348, + 348, 348, 93, 348, 348, 348, 348, 348, 55, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 347, 348, 196, 348, 348, 348, 138, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 221, 348, 197, + 348, 348, 348, 236, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 262, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 193, 343, 343, 343, 343, 343, - 196, 343, 202, 343, 343, 343, 343, 343, 230, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 105, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 130, 343, 343, 343, 343, 343, - 343, 343, 60, 343, 343, 343, 26, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 20, 343, 343, 343, + 348, 348, 348, 348, 56, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 140, 121, 348, 122, 348, + 348, 348, 120, 348, 348, 348, 348, 348, 348, 348, + 348, 158, 348, 348, 53, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 267, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 198, 348, 348, 348, 348, 348, 201, 348, 207, + 348, 348, 348, 348, 348, 348, 235, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 108, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 27, 36, 343, 165, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 342, 343, 343, 343, 343, 343, 343, 77, - 79, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 282, 343, 343, 343, 343, 242, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 120, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 154, 343, 46, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 133, 348, 348, 348, 348, 348, 348, 348, + 63, 348, 348, 348, 29, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 20, 348, 348, 348, + 348, 348, 348, 30, 39, 348, 168, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 194, 348, 348, 347, 348, 348, 348, 348, 348, + 348, 80, 82, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 287, 348, 348, 348, + 348, 247, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 297, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 159, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 291, 343, - 343, 343, 222, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 307, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 176, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 114, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 171, 343, 184, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 123, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 157, 348, 49, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 302, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 162, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 296, 348, 348, 348, 227, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 312, 348, 348, 348, 348, - 343, 343, 343, 342, 343, 143, 343, 343, 343, 343, - 343, 100, 343, 343, 343, 343, 214, 343, 343, 343, - 343, 343, 343, 232, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 254, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 136, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 175, 343, 343, 343, - 343, 343, 343, 80, 343, 81, 343, 343, 343, 343, - 343, 61, 300, 343, 343, 343, 343, 343, 88, 185, - 343, 205, 343, 235, 343, 343, 197, 275, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 180, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 117, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 175, + 348, 188, 348, 348, 348, 348, 348, 348, 348, 347, + 348, 146, 348, 348, 348, 348, 348, 103, 348, 348, + 348, 348, 219, 348, 348, 348, 348, 348, 348, 237, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 259, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 139, 348, 348, - 343, 343, 343, 73, 343, 187, 343, 343, 343, 343, - 343, 9, 343, 343, 343, 343, 343, 104, 343, 343, - 343, 343, 267, 343, 343, 343, 343, 213, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 342, 343, 343, 343, - 343, 174, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 161, 343, 281, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 179, 348, 348, 348, 348, 348, 348, 83, + 348, 84, 348, 348, 348, 348, 348, 64, 305, 348, + 348, 348, 348, 348, 91, 189, 348, 210, 348, 240, + 348, 348, 202, 280, 348, 348, 348, 348, 348, 348, + 76, 348, 191, 348, 348, 348, 348, 348, 9, 348, + 348, 348, 348, 348, 107, 348, 348, 348, 348, 272, + 348, 348, 348, 348, 218, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 253, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 226, 343, 343, 343, 343, 343, 273, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 301, - 343, 186, 343, 343, 343, 343, 343, 343, 343, 72, - 74, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 103, 343, 343, 343, 343, 265, 343, 343, 343, 343, - 277, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 218, 34, 28, 30, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 347, 348, 348, 348, + 348, 178, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 164, 348, 286, 348, 348, 348, 348, 348, + 258, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 231, 348, 348, 348, 348, 348, 278, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 306, - 343, 343, 343, 343, 343, 343, 35, 343, 29, 31, - 343, 343, 343, 343, 343, 343, 343, 343, 99, 343, - 343, 343, 343, 343, 343, 343, 343, 342, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 220, - 217, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 71, - 343, 343, 343, 138, 343, 121, 343, 343, 343, 343, - 343, 343, 343, 343, 156, 47, 343, 343, 343, 334, - 13, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 295, 343, 298, 343, 343, 343, 343, 343, 343, + 348, 190, 348, 348, 348, 348, 348, 348, 348, 348, + 75, 77, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 106, 348, 348, 348, 348, 270, 348, 348, 348, + 348, 282, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 223, 37, 31, 33, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 38, + 348, 32, 34, 348, 348, 348, 348, 348, 348, 348, + 348, 102, 348, 174, 348, 348, 348, 348, 348, 348, + 348, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 225, 222, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 12, 343, 343, 22, 343, 343, - 343, 343, 343, 271, 343, 343, 343, 343, 279, 343, - 343, 343, 75, 343, 228, 343, 343, 343, 343, 343, - 219, 343, 343, 70, 343, 343, 343, 343, 23, 343, - 43, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 170, 169, 343, 343, 334, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 221, 215, 343, - 233, 343, 343, 283, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 74, 348, 348, 348, 141, 348, 124, + 348, 348, 348, 348, 348, 348, 348, 348, 159, 50, + 348, 348, 348, 339, 13, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 300, 348, 303, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 12, + 348, 348, 22, 348, 348, 348, 348, 348, 276, 348, + 348, 348, 348, 284, 348, 348, 348, 78, 348, 233, + 348, 348, 348, 348, 348, 224, 348, 348, 73, 348, + 348, 348, 348, 348, 23, 348, 348, 46, 348, 348, - 343, 343, 343, 343, 343, 343, 82, 343, 343, 343, - 343, 266, 343, 343, 343, 343, 201, 343, 343, 343, - 343, 227, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 305, 306, 167, 343, 343, 76, 343, - 343, 343, 343, 177, 343, 343, 343, 115, 116, 343, - 343, 343, 343, 162, 343, 164, 343, 206, 343, 343, - 343, 343, 168, 343, 343, 343, 343, 236, 343, 343, - 343, 343, 343, 343, 343, 145, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 244, 343, - 343, 343, 343, 343, 343, 343, 314, 343, 24, 343, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 173, 172, 348, 348, 339, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 226, 220, 348, 238, 348, 348, + 288, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 85, 348, 348, 348, 348, 271, 348, + 348, 348, 348, 206, 348, 348, 348, 348, 348, 232, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 310, 311, 170, 348, 348, 79, 348, 348, 348, - 276, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 86, 207, 343, 343, 264, - 343, 299, 343, 200, 343, 343, 343, 343, 56, 343, - 343, 343, 343, 343, 343, 4, 343, 343, 343, 343, - 128, 144, 343, 343, 343, 181, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 239, 37, 38, 343, 343, 343, 343, - 343, 343, 343, 284, 343, 343, 343, 343, 343, 343, - 343, 252, 343, 343, 343, 343, 343, 343, 343, 343, - 210, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 348, 181, 348, 348, 348, 118, 119, 348, 348, 348, + 25, 348, 348, 165, 348, 167, 348, 211, 348, 348, + 348, 348, 171, 348, 348, 348, 348, 241, 348, 348, + 348, 348, 348, 348, 348, 148, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 249, 348, + 348, 348, 348, 348, 348, 348, 319, 348, 27, 348, + 281, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 89, 212, 348, 348, 269, + 348, 304, 348, 205, 348, 348, 348, 348, 348, 59, + 348, 348, 348, 348, 348, 348, 4, 348, 348, 348, - 343, 343, 343, 85, 343, 57, 270, 343, 240, 343, - 343, 343, 343, 11, 343, 343, 343, 343, 343, 343, - 343, 343, 127, 343, 343, 343, 343, 208, 91, 343, - 40, 343, 343, 343, 343, 343, 343, 343, 343, 173, - 343, 343, 343, 343, 343, 343, 343, 147, 343, 343, - 343, 343, 243, 343, 343, 343, 343, 343, 251, 343, - 343, 343, 343, 141, 343, 343, 343, 122, 123, 343, - 343, 343, 93, 97, 92, 343, 343, 343, 343, 83, - 343, 343, 343, 343, 343, 10, 343, 343, 343, 343, - 343, 268, 308, 343, 343, 343, 343, 313, 39, 343, + 348, 131, 147, 348, 348, 348, 185, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 244, 40, 41, 348, 348, + 348, 348, 348, 348, 348, 289, 348, 348, 348, 348, + 348, 348, 348, 257, 348, 348, 348, 348, 348, 348, + 348, 348, 215, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 88, 348, 60, 275, 348, + 245, 348, 348, 348, 348, 348, 11, 348, 348, 348, + 348, 348, 348, 348, 348, 130, 348, 348, 348, 348, + 213, 94, 348, 348, 43, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 172, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 98, 96, 343, 51, 343, 343, 84, 296, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 194, 343, 343, - 343, 343, 343, 209, 343, 343, 343, 343, 343, 343, - 343, 190, 343, 343, 163, 78, 343, 343, 343, 343, - 343, 285, 343, 343, 343, 343, 343, 343, 343, 248, - 343, 343, 247, 142, 343, 343, 95, 48, 343, 148, - 149, 152, 153, 150, 151, 87, 294, 343, 343, 269, + 348, 348, 348, 177, 348, 348, 348, 348, 348, 348, + 348, 150, 348, 348, 348, 348, 248, 348, 348, 348, + 348, 348, 256, 348, 348, 348, 348, 144, 348, 348, + 348, 125, 126, 348, 348, 348, 96, 100, 95, 348, + 348, 348, 348, 86, 348, 348, 348, 348, 348, 348, + 10, 348, 348, 348, 348, 348, 273, 313, 348, 348, + 348, 348, 348, 318, 42, 348, 348, 348, 348, 348, + 176, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 101, 99, 348, 54, - 343, 343, 343, 343, 166, 343, 343, 343, 343, 189, - 343, 238, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 179, 178, 41, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 292, 343, 343, - 343, 343, 102, 343, 237, 343, 261, 289, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 315, - 343, 49, 5, 343, 343, 229, 343, 343, 290, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 249, 25, + 348, 348, 87, 301, 348, 348, 348, 348, 24, 348, + 348, 348, 348, 348, 199, 348, 348, 348, 348, 348, + 214, 348, 348, 348, 348, 348, 348, 348, 348, 195, + 348, 348, 166, 81, 348, 348, 348, 348, 348, 290, + 348, 348, 348, 348, 348, 348, 348, 253, 348, 348, + 252, 145, 348, 348, 98, 51, 348, 151, 152, 155, + 156, 153, 154, 90, 299, 348, 348, 274, 348, 348, + 348, 26, 348, 169, 348, 348, 348, 348, 193, 348, + 243, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 250, 343, 343, 343, 146, 343, 343, 343, - 343, 343, 343, 343, 343, 180, 343, 188, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 286, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 312, 343, 343, 257, 343, - 343, 343, 343, 343, 287, 343, 343, 343, 343, 343, - 343, 288, 343, 343, 343, 255, 343, 258, 259, 343, - 343, 343, 343, 343, 256, 260, 0 + 348, 183, 182, 44, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 297, 348, 348, 348, + 348, 105, 348, 242, 348, 266, 294, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 320, 348, + 52, 5, 348, 348, 234, 348, 348, 295, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 254, 28, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 255, 348, 348, 348, 149, 348, 348, 348, 348, + 348, 348, 348, 348, 184, 348, 192, 348, 348, 348, + + 348, 348, 348, 348, 348, 348, 291, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 317, 348, 348, 262, 348, 348, + 348, 348, 348, 292, 348, 348, 348, 348, 348, 348, + 293, 348, 348, 348, 260, 348, 263, 264, 348, 348, + 348, 348, 348, 261, 265, 0 } ; static const YY_CHAR yy_ec[256] = @@ -779,17 +787,17 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3406] = +static const flex_int16_t yy_base[3475] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 4333, 3646, 81, 6613, - 6613, 6613, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 4558, 4515, 81, 6741, + 6741, 6741, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 3471, 6613, 6613, 6613, - 107, 3089, 6613, 6613, 6613, 154, 2938, 2734, 6613, 6613, - 6613, 245, 2551, 6613, 6613, 6613, 163, 2380, 6613, 249, - 6613, 253, 148, 2167, 2097, 6613, 6613, 6613, 257, 1895, - 6613, 6613, 6613, 233, 1571, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 4396, 6741, 6741, 6741, + 107, 3671, 6741, 6741, 6741, 154, 3247, 3086, 6741, 6741, + 6741, 245, 2975, 6741, 6741, 6741, 163, 2912, 6741, 249, + 6741, 253, 148, 2860, 2006, 6741, 6741, 6741, 257, 1786, + 6741, 6741, 6741, 233, 1674, 263, 201, 0, 267, 0, 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, @@ -797,8 +805,8 @@ static const flex_int16_t yy_base[3406] = 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, - 367, 389, 390, 394, 393, 395, 396, 403, 404, 1355, - 419, 1172, 422, 1110, 429, 1014, 912, 433, 781, 437, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1564, + 419, 1169, 422, 1003, 429, 930, 888, 433, 775, 437, 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, @@ -817,727 +825,741 @@ static const flex_int16_t yy_base[3406] = 697, 700, 708, 704, 713, 712, 721, 716, 722, 719, 731, 732, 727, 717, 728, 729, 733, 736, 730, 740, 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, - 763, 766, 762, 773, 774, 769, 775, 793, 798, 799, - 786, 800, 801, 804, 803, 805, 807, 808, 809, 818, - 811, 823, 815, 824, 825, 829, 836, 834, 6613, 831, - 833, 847, 848, 849, 852, 765, 856, 858, 839, 868, - 864, 861, 870, 892, 865, 878, 869, 871, 874, 6613, - 887, 880, 916, 882, 889, 902, 904, 900, 903, 905, - 914, 907, 933, 850, 909, 924, 940, 936, 925, 937, + 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, + 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, + 818, 819, 823, 807, 825, 827, 834, 829, 6741, 831, + 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, + 864, 867, 876, 898, 849, 871, 868, 878, 881, 6741, + 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, + 904, 912, 933, 906, 920, 915, 945, 942, 930, 943, - 939, 942, 943, 952, 948, 950, 951, 953, 961, 956, - 960, 964, 968, 962, 971, 972, 975, 977, 983, 974, - 980, 990, 973, 993, 994, 995, 997, 996, 1007, 1004, - 1000, 1001, 1015, 1014, 1028, 1017, 1026, 1027, 1030, 1029, - 1035, 1036, 1039, 1041, 1042, 1043, 1044, 1054, 1046, 1049, - 1051, 1053, 1057, 1059, 1061, 1063, 1066, 1065, 1067, 1071, - 1069, 1078, 1080, 1074, 1086, 1076, 6613, 1088, 6613, 1082, - 1091, 1092, 1090, 1097, 1093, 1094, 6613, 1096, 1100, 1104, - 1105, 1115, 1108, 1126, 1107, 1121, 1122, 1125, 1123, 1127, - 1138, 1129, 1131, 1145, 1136, 1141, 1140, 1143, 1144, 1147, + 944, 946, 952, 954, 955, 953, 957, 958, 966, 861, + 961, 970, 981, 962, 964, 968, 971, 974, 986, 983, + 990, 991, 993, 995, 997, 996, 1001, 998, 1011, 1005, + 1008, 1021, 1000, 1022, 1033, 1002, 1030, 1034, 1032, 1037, + 1019, 1040, 1043, 1045, 1046, 1047, 1048, 1058, 1050, 1053, + 1055, 1057, 1059, 1065, 1061, 1063, 1067, 1069, 1072, 1077, + 1080, 1078, 1070, 1086, 1079, 1087, 1089, 6741, 1092, 6741, + 1094, 1095, 1096, 1097, 1099, 1101, 1098, 6741, 1102, 1106, + 1107, 1109, 1114, 1116, 1119, 1112, 1126, 1128, 1129, 1130, + 1131, 1141, 1133, 1134, 1148, 1138, 1145, 1143, 1147, 1151, - 1151, 1153, 1154, 1155, 1156, 1175, 6613, 1157, 1165, 1167, - 1159, 1168, 1182, 1187, 1173, 1185, 1193, 1197, 1205, 1198, - 1200, 1204, 1179, 1203, 1160, 1208, 1214, 1211, 1217, 1219, - 1218, 1220, 1222, 1221, 1224, 1225, 1232, 6613, 1235, 1241, - 1246, 1253, 1236, 1239, 1249, 1251, 1252, 1255, 1256, 1257, - 1259, 517, 1258, 1263, 1275, 1264, 1277, 1272, 1228, 1274, - 1278, 1280, 1279, 1281, 1283, 1292, 1289, 1295, 1304, 1307, - 1306, 1309, 1316, 1318, 1298, 1311, 1321, 1315, 1313, 1314, - 1325, 1326, 1327, 1329, 1330, 1339, 1336, 1335, 1337, 1338, - 1343, 1341, 1345, 1346, 1347, 1349, 1360, 1357, 1358, 1365, + 1149, 1156, 1157, 1158, 1159, 1160, 1179, 6741, 1161, 1163, + 1167, 1172, 1164, 1170, 1186, 1188, 1191, 1189, 1201, 1194, + 1203, 1214, 1207, 1209, 1215, 1197, 1211, 1216, 1221, 1223, + 1226, 1227, 1228, 1229, 1232, 1233, 1235, 1236, 1234, 1237, + 1238, 6741, 1247, 1250, 1257, 1248, 1258, 1249, 1259, 1260, + 1262, 1263, 1265, 1177, 1266, 517, 1267, 1272, 1279, 1276, + 1286, 1282, 1284, 1283, 1285, 1290, 1289, 1293, 1291, 1304, + 1301, 1306, 1311, 1319, 1316, 1318, 1326, 1328, 1308, 1321, + 1296, 1325, 1323, 1324, 1331, 1335, 1336, 1337, 1339, 1344, + 1341, 1346, 1347, 1348, 1349, 1351, 1353, 1355, 1354, 1357, - 1361, 1370, 1364, 1359, 1378, 1380, 1367, 1374, 6613, 1390, - 1287, 1388, 1392, 1393, 1394, 1395, 1386, 1387, 1399, 1401, - 1403, 1404, 1410, 1407, 1411, 1412, 1413, 1415, 1423, 1419, - 1426, 1434, 1433, 1435, 1420, 1437, 1439, 1441, 1448, 1445, - 1449, 1452, 1421, 1453, 1462, 1454, 1457, 1459, 1469, 1447, - 1465, 1468, 1471, 1475, 1477, 1480, 1487, 1482, 1485, 1502, - 1488, 1472, 1493, 1486, 1504, 1492, 1499, 1503, 1507, 1508, - 1515, 1512, 1511, 1514, 1518, 1513, 1519, 1522, 1524, 1536, - 1523, 1532, 1527, 1535, 1541, 1525, 1540, 1542, 1547, 1548, - 1550, 1549, 1551, 1553, 1558, 1559, 1562, 1561, 1564, 1568, + 1367, 1358, 1365, 1372, 1368, 1381, 1369, 1373, 1371, 1385, + 1378, 1388, 6741, 1397, 1393, 1395, 1396, 1394, 1401, 1405, + 1407, 1406, 1408, 1412, 1409, 1411, 1417, 1418, 1413, 1419, + 1420, 1421, 1426, 1434, 1429, 1439, 1446, 1445, 1447, 1433, + 1441, 1449, 1437, 1459, 1457, 1464, 1460, 1450, 1461, 1471, + 1467, 1468, 1469, 1478, 1473, 1476, 1477, 1479, 1483, 1486, + 1487, 1497, 1494, 1495, 1502, 1503, 1498, 1507, 1508, 1511, + 1512, 1514, 1515, 1516, 1517, 1524, 1521, 1519, 1526, 1529, + 1520, 1531, 1522, 1536, 1545, 1540, 1542, 1543, 1546, 1547, + 1548, 1549, 1552, 1557, 1554, 1558, 1559, 1561, 1569, 1562, - 1570, 1574, 1576, 1577, 1579, 1580, 1588, 1581, 1590, 1591, - 1592, 1594, 1595, 1602, 1604, 1598, 1608, 1605, 1611, 1610, - 1613, 1614, 1616, 1617, 1622, 1623, 1624, 6613, 1629, 1636, - 1631, 1634, 1632, 1637, 1639, 1646, 1641, 1643, 1642, 1645, - 1647, 1671, 6613, 1653, 6613, 6613, 1652, 6613, 6613, 1654, - 1655, 6613, 1658, 1656, 1659, 1674, 1681, 1684, 1666, 1679, - 1672, 1687, 1694, 1708, 1695, 1692, 1696, 1698, 1699, 1701, - 1706, 1703, 1689, 1716, 1725, 1730, 1731, 1717, 1719, 1732, - 1735, 1739, 1740, 1742, 1746, 1748, 1749, 1733, 1751, 1753, - 1756, 1754, 1757, 1759, 1763, 1764, 1760, 1767, 1766, 1776, + 1571, 1574, 1579, 1580, 1581, 1582, 1584, 1585, 1586, 1589, + 1592, 1594, 1590, 1602, 1603, 1593, 1605, 1606, 1609, 1610, + 1613, 1622, 1621, 1617, 1624, 1618, 1627, 1629, 1631, 1630, + 1634, 1637, 1640, 1642, 1641, 6741, 1635, 1649, 1648, 1652, + 1653, 1655, 1657, 1664, 1659, 1662, 1660, 1661, 1663, 1687, + 6741, 1666, 6741, 6741, 1671, 6741, 6741, 1670, 1676, 6741, + 1684, 1685, 1677, 1691, 1672, 1697, 1700, 1701, 1702, 1703, + 1710, 1724, 1708, 1712, 1714, 1717, 1705, 1718, 1715, 1727, + 1730, 1734, 1737, 1750, 1741, 1751, 1739, 1753, 1755, 1757, + 1760, 1761, 1765, 1767, 1735, 1768, 1770, 1771, 1773, 1772, - 1780, 1769, 1787, 6613, 1784, 1796, 1797, 1793, 1800, 1792, - 1799, 1801, 1772, 1783, 1802, 1803, 1806, 1807, 1804, 1808, - 1812, 1816, 1817, 1819, 1829, 1836, 1813, 6613, 1825, 1833, - 1820, 1818, 1837, 1835, 1840, 1839, 1841, 1843, 1847, 1855, - 1850, 1848, 1856, 1858, 1857, 1859, 1861, 6613, 1868, 1874, - 1862, 1871, 1865, 1869, 1878, 1879, 1880, 1882, 1884, 1888, - 1885, 1887, 1896, 1893, 1897, 1894, 1904, 1899, 1908, 1910, - 1912, 1914, 1916, 1917, 1919, 1920, 1921, 1923, 1924, 1932, - 1935, 1931, 1936, 1933, 1928, 1952, 1955, 1950, 1938, 1939, - 1953, 1941, 1960, 1969, 1964, 1956, 1965, 1972, 1968, 1971, + 1775, 1778, 1781, 1782, 1779, 1777, 1784, 1794, 1785, 1799, + 1802, 6741, 1800, 1809, 1804, 1813, 1810, 1814, 1816, 1811, + 1812, 1822, 1825, 1818, 1827, 1828, 1829, 1830, 1831, 1832, + 1835, 1837, 1841, 1839, 1850, 1840, 6741, 1843, 1853, 1842, + 1855, 1854, 1858, 1864, 1856, 1857, 1865, 1867, 1877, 1872, + 1868, 1875, 1878, 1879, 1881, 1885, 6741, 1884, 1890, 1891, + 1892, 1893, 1895, 1898, 1900, 1901, 1902, 1904, 1905, 1906, + 1907, 1916, 1908, 1913, 1919, 1920, 1923, 1928, 1930, 1932, + 1940, 1931, 1933, 1942, 1935, 1941, 1943, 1945, 1946, 1948, + 1958, 1960, 1947, 1962, 1957, 1959, 1970, 1972, 1969, 1974, - 1973, 1975, 1976, 1983, 1981, 1985, 1986, 1979, 1984, 1990, - 1993, 6613, 1997, 1999, 6613, 1998, 2000, 2002, 2024, 2005, - 2003, 2010, 2009, 2014, 2015, 2016, 2018, 2017, 2028, 2044, - 2037, 2034, 2047, 2026, 2049, 2050, 2052, 2053, 2055, 2056, - 2059, 2030, 2060, 2072, 2075, 2074, 2082, 2084, 2058, 2071, - 2061, 2091, 2081, 2083, 2086, 2089, 2094, 2098, 2096, 2102, - 2087, 2107, 2108, 2115, 2113, 2119, 2112, 2120, 2114, 2122, - 2123, 2125, 6613, 2134, 2135, 2129, 2137, 2133, 2147, 2139, - 2140, 6613, 2143, 2149, 2150, 2157, 2153, 2154, 2155, 2156, - 2161, 2163, 2165, 2169, 2170, 2168, 2164, 2186, 6613, 2171, + 1975, 1976, 1977, 1982, 1984, 1986, 1985, 1989, 1990, 1997, + 1992, 2000, 1996, 2001, 2002, 2010, 2008, 2011, 2016, 2013, + 2019, 2021, 2022, 6741, 2024, 2028, 6741, 2025, 2027, 2029, + 2051, 2030, 2032, 2034, 2044, 2033, 2053, 2037, 2045, 2061, + 2055, 2071, 2064, 2063, 2074, 2068, 2076, 2075, 2079, 2080, + 2082, 2085, 2086, 2040, 2088, 2098, 2102, 2101, 2109, 2111, + 2097, 2089, 2106, 2125, 2110, 2107, 2113, 2116, 2114, 2118, + 2121, 2120, 2117, 2130, 2132, 2141, 2137, 2138, 2140, 2143, + 2146, 2153, 2156, 2147, 6741, 2161, 2154, 2162, 2163, 2165, + 2172, 2169, 2170, 6741, 2171, 2173, 2175, 2183, 2176, 2179, - 6613, 2182, 2172, 2184, 2185, 2188, 2189, 2190, 2193, 6613, - 6613, 2197, 2191, 2207, 2211, 2201, 2194, 2212, 6613, 2213, - 2220, 6613, 2217, 2223, 2216, 2215, 2222, 2224, 2227, 2228, - 2237, 2232, 2239, 2234, 2236, 2244, 6613, 2245, 2246, 2250, - 2251, 2247, 2253, 2254, 2260, 2257, 6613, 2264, 2261, 2266, - 2274, 2276, 2271, 2273, 2278, 2282, 2279, 2284, 2285, 2286, - 2287, 2294, 2296, 2293, 2299, 2301, 2308, 6613, 2292, 2295, - 2313, 2309, 2312, 2316, 2317, 2318, 2319, 2320, 2321, 2322, - 2327, 2328, 2329, 2330, 2337, 2340, 2335, 2339, 2343, 2345, - 2347, 2348, 2355, 2352, 2353, 2354, 2356, 6613, 2357, 2359, + 2187, 2184, 2186, 2188, 2190, 2194, 2196, 2193, 2195, 2207, + 6741, 2197, 6741, 2206, 2209, 2210, 2211, 2214, 2216, 2217, + 2218, 2219, 6741, 6741, 2221, 2222, 2235, 2233, 2237, 2225, + 2238, 6741, 2239, 2248, 6741, 2249, 2241, 2243, 2245, 2252, + 2254, 2256, 2258, 2266, 2259, 2267, 2262, 2270, 2264, 6741, + 2271, 2263, 2276, 2280, 2282, 2283, 2286, 2288, 2287, 6741, + 2289, 2290, 2294, 2302, 2304, 2301, 2297, 2305, 2311, 2307, + 2309, 2313, 2314, 2316, 2324, 2326, 2322, 2330, 2337, 2334, + 2338, 6741, 2336, 2340, 2323, 2348, 2344, 2346, 2347, 2350, + 2351, 2352, 2354, 2360, 2353, 2361, 2355, 2362, 2365, 2376, - 2363, 2366, 2365, 171, 2369, 2367, 2372, 2374, 2377, 2388, - 2375, 2396, 2397, 2378, 2393, 2399, 2400, 2389, 2392, 2402, - 2404, 2408, 2409, 2410, 2411, 6613, 2413, 2414, 2415, 2417, - 2418, 2420, 2429, 6613, 2422, 2435, 2437, 2439, 2444, 2441, - 2446, 2431, 2447, 2452, 2453, 2454, 2456, 2457, 2460, 2459, - 2463, 6613, 2467, 2464, 2471, 2472, 2475, 2477, 2478, 2479, - 2483, 2484, 2485, 2486, 2488, 2490, 2489, 2491, 2493, 2499, - 2500, 2496, 2504, 2509, 2506, 2507, 2510, 2513, 2514, 2519, - 2517, 6613, 2529, 2520, 2527, 2525, 2528, 2530, 2531, 2538, - 2553, 2540, 2542, 2544, 2554, 2560, 2545, 2562, 2549, 2563, + 2378, 2367, 2375, 2386, 2368, 2377, 2381, 2379, 2392, 2383, + 2389, 2390, 2394, 6741, 2395, 2400, 2396, 2402, 2403, 2405, + 171, 2406, 2411, 2410, 2412, 2415, 2428, 2413, 2429, 2436, + 2416, 2434, 2319, 2435, 2431, 2437, 2438, 2441, 2442, 2446, + 2444, 2447, 6741, 2449, 2450, 2452, 2454, 2457, 2455, 2460, + 6741, 2458, 2467, 2472, 2481, 2471, 2473, 2418, 2482, 2484, + 2483, 2485, 2486, 2488, 2489, 2493, 2495, 2491, 6741, 2497, + 2498, 2499, 2508, 2509, 2511, 2512, 2516, 2517, 2518, 2513, + 2519, 2520, 2523, 2522, 2524, 2526, 2530, 2533, 2529, 2538, + 2542, 2539, 2540, 2543, 2546, 2547, 2552, 2550, 6741, 2562, - 2567, 2566, 2576, 2577, 2580, 2586, 2574, 2588, 2591, 2578, - 2581, 2584, 2590, 2592, 2600, 2601, 2608, 2609, 2606, 2612, - 2604, 2621, 2615, 2627, 2633, 2623, 6613, 2632, 2625, 2617, - 2637, 2644, 2639, 2641, 2642, 2645, 2649, 2650, 2651, 2652, - 2660, 2655, 2653, 2657, 2662, 2664, 2665, 2668, 2672, 2673, - 2676, 2680, 2677, 2683, 2421, 6613, 2684, 2686, 2685, 2688, - 2694, 2689, 2696, 2699, 2701, 2702, 2703, 2708, 2705, 2710, - 2711, 2712, 2718, 2605, 2714, 6613, 2716, 2715, 2721, 2720, - 2728, 2729, 2735, 2736, 2738, 2741, 2744, 2745, 2746, 2747, - 2748, 6613, 2756, 2757, 2753, 2765, 2755, 2760, 2762, 2767, + 2553, 2557, 2561, 2560, 2563, 2573, 2564, 2583, 2566, 2574, + 2581, 2586, 2595, 2584, 2589, 2599, 2590, 2601, 2602, 2613, + 2605, 2612, 2615, 2609, 2619, 2621, 2622, 2623, 2631, 2627, + 2628, 2629, 2632, 2633, 2643, 2644, 2635, 2645, 2647, 2650, + 2639, 2657, 2662, 2664, 6741, 2666, 2654, 2668, 2671, 2678, + 2673, 2652, 2676, 2679, 2683, 2684, 2685, 2687, 2694, 2689, + 2691, 2695, 2697, 2696, 2698, 2705, 2700, 2706, 2708, 2715, + 2711, 2717, 2719, 6741, 2720, 2722, 2724, 2725, 2729, 2730, + 2733, 2735, 2737, 2738, 2739, 2741, 2744, 2575, 2745, 2746, + 2753, 2749, 2752, 2755, 2751, 6741, 2762, 2756, 2758, 2767, - 2768, 6613, 2769, 832, 2770, 2771, 2772, 2780, 2781, 2776, - 6613, 2783, 2778, 2784, 2786, 2789, 2793, 2790, 2796, 2794, - 2799, 2800, 2805, 2803, 2809, 2811, 6613, 2812, 2821, 2817, - 2813, 2819, 2823, 2825, 2826, 2828, 2829, 2843, 2834, 6613, - 2852, 2847, 2839, 2855, 2842, 2830, 2853, 2857, 2858, 2859, - 2860, 2864, 2865, 6613, 2867, 2866, 2868, 2872, 2870, 2875, - 2876, 2888, 2878, 2879, 2883, 2887, 2889, 2891, 2894, 2896, - 2900, 2901, 2906, 2907, 2909, 2911, 2892, 2913, 2922, 2923, - 2918, 2926, 2921, 2928, 2929, 2930, 2937, 2939, 2940, 2941, - 2945, 6613, 2948, 2949, 2943, 2936, 2951, 2955, 2956, 2957, + 2768, 2770, 2772, 2776, 2775, 2782, 2784, 2774, 2785, 2786, + 2787, 6741, 2794, 2796, 2797, 2798, 2801, 2799, 2804, 2805, + 2807, 2809, 6741, 2810, 2812, 2811, 2813, 2814, 2817, 2824, + 2825, 2820, 6741, 2833, 2822, 2831, 2832, 2835, 2839, 2837, + 2843, 2838, 2841, 2845, 2849, 2857, 2846, 2859, 6741, 2848, + 2871, 2850, 2872, 2874, 2861, 2862, 2873, 2878, 2876, 2887, + 2879, 6741, 2890, 2892, 2894, 2901, 2880, 2897, 2898, 2902, + 2903, 2904, 2906, 2909, 2910, 6741, 2911, 2913, 2915, 2917, + 2920, 2919, 2921, 2934, 2927, 2929, 2932, 2935, 2936, 2938, + 2942, 2945, 2944, 2941, 2953, 2954, 2943, 2956, 2960, 2963, - 2958, 2960, 2962, 2961, 2965, 2967, 2974, 2978, 2975, 2981, - 2983, 2984, 2976, 2987, 2988, 2989, 2990, 2997, 2993, 2994, - 3005, 2996, 3000, 3010, 3011, 3012, 3013, 3014, 3021, 3001, - 3019, 3016, 3023, 3018, 3024, 3027, 3029, 3041, 3042, 3044, - 3025, 3036, 3046, 3049, 6613, 3052, 3053, 3050, 3054, 3056, - 3061, 3057, 3069, 3064, 3067, 3066, 3073, 3078, 3075, 3076, - 3081, 3083, 3091, 3087, 6613, 3084, 6613, 3088, 3092, 3098, - 3106, 3093, 6613, 3105, 6613, 3107, 3112, 3101, 3108, 6613, - 3115, 3096, 3114, 3119, 3121, 3122, 3125, 3126, 3127, 3128, - 3130, 3132, 3133, 3134, 3135, 3137, 3140, 3142, 3146, 3147, + 2967, 2972, 2968, 2970, 2971, 2973, 2974, 2976, 2984, 2985, + 2992, 2987, 2990, 6741, 2994, 2996, 2997, 2983, 2998, 2999, + 3002, 3004, 3007, 3003, 3012, 3009, 3005, 3015, 3022, 3030, + 3018, 3025, 3027, 3028, 3031, 3032, 3033, 3035, 3036, 3045, + 3043, 3041, 3042, 3050, 3051, 3053, 3062, 3057, 3058, 3060, + 3063, 3064, 3065, 3066, 3071, 3080, 3069, 3073, 3075, 3085, + 3090, 3091, 3093, 3094, 3095, 3098, 3099, 6741, 3049, 3103, + 3100, 3102, 3109, 3113, 3114, 3116, 3106, 3117, 3123, 3120, + 3127, 3126, 3129, 3132, 3133, 3140, 3136, 6741, 3137, 6741, + 3138, 3139, 3142, 3151, 3148, 6741, 3150, 6741, 3154, 3161, - 3153, 3145, 3156, 3157, 3161, 3163, 3164, 3165, 3166, 6613, - 3170, 3167, 3172, 3173, 3175, 3178, 3179, 3181, 3182, 3185, - 3191, 3188, 3190, 3201, 3194, 3197, 3204, 3209, 3212, 3219, - 3205, 3220, 6613, 3215, 3222, 3187, 3226, 6613, 3218, 3216, - 3227, 3230, 3233, 3234, 3235, 3236, 3237, 3241, 3242, 3243, - 3255, 3251, 3244, 3253, 6613, 3248, 3260, 3246, 3264, 3269, - 3276, 3280, 3277, 3278, 3283, 3281, 3285, 3286, 3287, 3288, - 3289, 3291, 3298, 3301, 3297, 3306, 3293, 3303, 3311, 3312, - 3296, 3304, 3313, 3315, 3318, 3320, 3319, 3321, 3262, 3323, - 3322, 6613, 3326, 3327, 3330, 3342, 3328, 3331, 3335, 3340, + 3156, 3158, 6741, 3162, 3152, 3163, 3166, 3164, 3169, 3167, + 3171, 3176, 3180, 3177, 3178, 3181, 3186, 3187, 3188, 3189, + 3193, 3196, 3197, 3198, 3199, 3201, 3207, 3205, 3216, 3206, + 3208, 3212, 3218, 3219, 3221, 6741, 3230, 3231, 3220, 3232, + 3224, 3235, 3236, 3239, 3241, 3242, 3243, 3246, 3245, 3248, + 3257, 3252, 3249, 3260, 3262, 3266, 3269, 3270, 3278, 6741, + 3273, 3275, 3276, 3277, 6741, 3279, 3281, 3285, 3288, 3282, + 3291, 3292, 3294, 3298, 3293, 3300, 3301, 3310, 3308, 3314, + 3303, 6741, 3315, 3318, 3304, 3317, 3326, 3333, 3336, 3332, + 3334, 3338, 3346, 3342, 3331, 3341, 3343, 3345, 3348, 3355, - 3344, 6613, 3350, 3351, 3352, 3356, 3358, 3345, 3353, 3361, - 3362, 3363, 3364, 3366, 3369, 3370, 6613, 3374, 6613, 3375, - 3384, 3377, 3383, 3390, 3388, 3392, 3397, 3391, 3393, 3398, - 3405, 3399, 3401, 3407, 3408, 3411, 3413, 3415, 3425, 3414, - 3419, 3421, 3426, 3428, 3436, 3433, 3429, 6613, 6613, 3431, - 3437, 3442, 3445, 3448, 3446, 3449, 3453, 3447, 3454, 3458, - 3459, 3469, 6613, 3460, 3466, 3467, 3470, 3482, 3473, 3484, - 3486, 3485, 3478, 3493, 3488, 6613, 3495, 3496, 3503, 3498, - 3499, 3506, 6613, 3501, 6613, 3504, 3505, 3512, 3507, 3513, - 3514, 3517, 3518, 3522, 3525, 3534, 3529, 3536, 3530, 3533, + 3356, 3352, 3360, 3353, 3358, 3367, 3364, 3361, 3368, 3370, + 3371, 3372, 3373, 3374, 3375, 3377, 3378, 3382, 6741, 3383, + 3384, 3389, 3397, 3393, 3394, 3398, 3403, 3399, 6741, 3405, + 3406, 3407, 3409, 3414, 3408, 3411, 3416, 3419, 3422, 3424, + 3427, 3429, 3428, 6741, 3430, 6741, 3432, 3433, 3443, 3447, + 3448, 3435, 3449, 3455, 3451, 3456, 3458, 3459, 3461, 3465, + 3467, 3468, 3469, 3470, 3471, 3478, 3474, 3476, 3481, 3485, + 3486, 3489, 3493, 3490, 3497, 6741, 6741, 3491, 3499, 3501, + 3498, 3504, 3506, 3507, 3512, 3510, 3518, 3519, 3520, 3529, + 6741, 3525, 3526, 3527, 3530, 3537, 3532, 3534, 3548, 3546, - 3537, 3539, 3540, 3547, 3544, 3545, 3546, 6613, 3549, 3552, - 3554, 3555, 3557, 3563, 3565, 3559, 6613, 3567, 3570, 3569, - 3571, 3578, 3575, 3579, 3580, 3584, 3587, 3585, 3588, 3590, - 6613, 3589, 3593, 3603, 3595, 3596, 3598, 3606, 3609, 3611, - 6613, 3615, 3616, 3623, 3619, 3621, 3622, 3626, 3627, 3628, - 3630, 3631, 3632, 3634, 3635, 3640, 3636, 3638, 3645, 3641, - 3653, 3655, 3642, 3663, 3670, 3656, 6613, 3659, 3666, 3668, - 3669, 3671, 3672, 3674, 3680, 3682, 3676, 3691, 3692, 3683, - 3687, 3695, 3697, 3705, 3700, 6613, 3712, 3698, 3713, 3702, - 3711, 3710, 3715, 3717, 3719, 3721, 3720, 3723, 3724, 3726, + 3543, 3553, 3552, 6741, 3544, 3545, 3560, 3555, 3562, 3567, + 6741, 3566, 6741, 3556, 3563, 3569, 3573, 3570, 3572, 3580, + 3581, 3576, 3583, 3587, 3598, 3599, 3588, 3596, 3584, 3591, + 3600, 3603, 3605, 3612, 3607, 3610, 3613, 6741, 3615, 3616, + 3617, 3620, 3622, 3623, 3627, 3624, 3611, 6741, 3630, 3635, + 3637, 3638, 3639, 3646, 3643, 3647, 3648, 3652, 3649, 3653, + 3656, 3657, 6741, 3655, 3658, 3670, 3661, 3665, 3666, 3676, + 3677, 3682, 6741, 3679, 3685, 3692, 3688, 3689, 3691, 3695, + 3690, 3696, 3697, 3699, 3700, 3702, 3703, 3704, 3706, 3708, + 3711, 3709, 3714, 3722, 3723, 3725, 3734, 3730, 6741, 3731, - 3738, 3730, 3733, 3729, 3734, 3745, 3737, 6613, 3752, 3748, - 3740, 3756, 3750, 3759, 3766, 3763, 3764, 3765, 3768, 3769, - 3770, 3773, 3775, 3776, 3779, 3780, 6613, 6613, 3782, 3783, - 3785, 6613, 3787, 3788, 3798, 3790, 3791, 3799, 3803, 3802, - 3801, 3804, 3806, 3807, 6613, 3813, 3821, 3816, 3817, 3825, - 3820, 6613, 3826, 3834, 3830, 3833, 3831, 3835, 3837, 3839, - 3841, 3842, 3843, 3846, 3854, 3858, 3850, 3849, 3853, 6613, - 3859, 3861, 3862, 3866, 3863, 3871, 6613, 3868, 3872, 3874, - 3878, 3880, 3891, 3877, 3885, 3893, 3888, 3894, 3895, 3897, - 3898, 3899, 3906, 3905, 3907, 3904, 3910, 3913, 6613, 3915, + 3735, 3732, 3736, 3737, 3741, 3742, 3745, 3747, 3740, 3753, + 3758, 3749, 3761, 3763, 3764, 3771, 3766, 6741, 3773, 3772, + 3780, 3775, 3776, 3778, 3781, 3783, 3785, 3787, 3786, 3789, + 3791, 3793, 3803, 3796, 3799, 3795, 3804, 3811, 3806, 6741, + 3818, 3814, 3816, 3820, 3821, 3823, 3833, 3825, 3829, 3830, + 3836, 3837, 3839, 3841, 3842, 3843, 3846, 3847, 6741, 6741, + 3853, 3848, 3850, 6741, 3856, 3854, 3866, 3855, 3858, 3862, + 3869, 3870, 3872, 3868, 3878, 3874, 3876, 6741, 3880, 3888, + 3886, 3889, 3893, 3895, 6741, 3890, 3904, 3902, 3903, 3905, + 3891, 3899, 3907, 3910, 3912, 3915, 3916, 3926, 3927, 3922, - 3916, 3921, 3923, 6613, 3926, 3934, 3935, 6613, 3936, 3931, - 3937, 3938, 3945, 6613, 3940, 3943, 3944, 3946, 3954, 3951, - 3955, 3953, 3958, 3959, 3962, 6613, 3963, 3960, 3961, 6613, - 3965, 3969, 3977, 3981, 3967, 3988, 3983, 3985, 3986, 3984, - 6613, 3991, 6613, 3994, 3995, 3998, 6613, 4000, 4001, 4003, - 4005, 4002, 4009, 4010, 4016, 4018, 4006, 4020, 4021, 4022, - 4023, 4025, 4034, 4024, 4031, 4032, 4033, 6613, 4036, 4035, - 4043, 4038, 4044, 4046, 4049, 4051, 4054, 4056, 6613, 6613, - 4063, 6613, 4057, 4064, 4065, 6613, 4067, 4070, 4074, 4066, - 4075, 4071, 4078, 4079, 6613, 4086, 4088, 6613, 4090, 4091, + 3923, 3924, 6741, 3925, 3929, 3931, 3933, 3934, 3935, 6741, + 3937, 3939, 3946, 3948, 3940, 3958, 3955, 3952, 3961, 3962, + 3964, 3965, 3966, 3967, 3969, 3976, 3972, 3973, 3974, 3980, + 3982, 3985, 3991, 6741, 3992, 3994, 3977, 3999, 6741, 4003, + 4012, 4013, 6741, 4014, 3996, 4004, 4015, 4023, 6741, 4016, + 4020, 4018, 4025, 3975, 4035, 4019, 4037, 4033, 4021, 4034, + 4038, 4036, 6741, 4039, 4042, 4044, 6741, 4047, 4045, 4053, + 4056, 4057, 4064, 4059, 4062, 4060, 4063, 6741, 4068, 6741, + 4071, 4069, 4075, 6741, 4070, 4078, 4079, 4086, 4080, 4083, + 4087, 4091, 4096, 4093, 4097, 4098, 4099, 4100, 4102, 4109, - 4098, 4093, 4094, 4095, 4101, 4096, 4099, 4106, 4107, 4108, - 4109, 4103, 4110, 4111, 6613, 4104, 4112, 4114, 4128, 4122, - 4131, 4133, 4132, 4134, 6613, 4138, 4139, 4142, 4144, 4145, - 6613, 4146, 6613, 4147, 4148, 4150, 4156, 4153, 6613, 4159, - 4163, 4167, 4164, 4168, 4169, 4170, 4174, 4176, 4178, 4186, - 4182, 4183, 4181, 4201, 4184, 6613, 4185, 4188, 4206, 4207, - 4197, 4189, 4216, 4213, 4215, 4203, 4211, 4223, 4214, 4224, - 4228, 4230, 4231, 4220, 6613, 4232, 4233, 4234, 4243, 4240, - 4245, 4246, 6613, 4247, 4248, 4251, 6613, 4249, 4250, 4257, - 4261, 4263, 4264, 4267, 4265, 4269, 6613, 4268, 4273, 4271, + 4101, 4105, 4108, 4110, 6741, 4111, 4115, 4120, 4117, 4121, + 4125, 4127, 4128, 4130, 4131, 6741, 6741, 4141, 6741, 4142, + 4132, 4136, 6741, 4138, 4143, 4156, 4146, 4154, 4158, 4162, + 4151, 6741, 4165, 4166, 6741, 4147, 4168, 4175, 4171, 4172, + 4173, 4176, 4179, 4180, 4183, 4184, 4182, 4186, 4181, 4185, + 4199, 6741, 4189, 4187, 4190, 4192, 4203, 4204, 4208, 4212, + 4206, 6741, 4214, 4213, 4216, 4220, 4222, 6741, 4223, 6741, + 4227, 4228, 4230, 4231, 4235, 4244, 6741, 4239, 4236, 4247, + 4240, 4243, 4249, 4252, 4253, 4255, 4256, 4265, 4262, 4261, + 4260, 4269, 4270, 6741, 4264, 4271, 4280, 4281, 4275, 4277, - 4272, 4287, 4286, 6613, 6613, 4288, 6613, 4290, 4274, 4278, - 4298, 4275, 4299, 4302, 4303, 4305, 4306, 4309, 4310, 4276, - 4311, 4320, 4317, 4324, 4327, 4328, 4326, 4191, 4331, 6613, - 6613, 4333, 4334, 4336, 4338, 4340, 4342, 4343, 4350, 4347, - 4355, 4358, 4348, 4365, 6613, 4362, 4363, 4364, 4367, 6613, - 4346, 4369, 4370, 4373, 4372, 4376, 4375, 4378, 4379, 4380, - 4382, 4385, 4386, 4390, 4392, 4396, 4397, 4400, 4399, 4403, - 4405, 4407, 6613, 4412, 4408, 4410, 4411, 4413, 4417, 4421, - 4426, 4422, 6613, 4415, 6613, 4428, 4425, 4440, 4431, 4445, - 4447, 4432, 4448, 4449, 4451, 4453, 4456, 4457, 4466, 4458, + 4292, 4284, 4291, 4287, 4288, 4295, 4298, 4299, 4301, 4303, + 4306, 4307, 6741, 4308, 4313, 4309, 4322, 4314, 4318, 4319, + 6741, 4323, 4324, 4328, 6741, 4332, 4334, 4337, 4339, 4340, + 4341, 4336, 4342, 4343, 4347, 4344, 6741, 4348, 4351, 4350, + 4356, 4364, 4365, 6741, 6741, 4366, 6741, 4371, 4353, 4368, + 4355, 4375, 4378, 4380, 4381, 4389, 4384, 4382, 4391, 4392, + 4386, 6741, 4393, 4404, 4394, 4409, 4411, 4413, 4414, 4410, + 4406, 6741, 6741, 4420, 4421, 4415, 4428, 4429, 4423, 4425, + 4437, 4433, 4439, 4442, 4444, 4451, 6741, 4446, 4432, 4453, + 4434, 6741, 4448, 4455, 4456, 4459, 4458, 4462, 4461, 4464, - 4462, 4467, 4460, 4471, 4477, 4474, 6613, 4478, 4480, 4481, - 4482, 4485, 4487, 4488, 4490, 4491, 4493, 4495, 4497, 4499, - 4504, 4505, 4506, 4508, 4511, 6613, 4512, 4514, 4516, 4521, - 4518, 4523, 4524, 4525, 4532, 4528, 4533, 4537, 6613, 4534, - 4538, 4543, 6613, 4540, 4544, 4546, 4550, 4552, 4545, 4553, - 4555, 4556, 6613, 4563, 4559, 4565, 4566, 4568, 4569, 4424, - 4573, 4575, 4576, 4582, 6613, 4583, 4581, 4589, 4590, 4588, - 4591, 4596, 4592, 4598, 6613, 4601, 4603, 4599, 4611, 4607, - 4615, 4616, 4618, 4610, 4612, 4619, 4620, 4627, 4630, 4631, - 4632, 4643, 4644, 4641, 6613, 4633, 6613, 4642, 4647, 4655, + 4465, 4466, 4468, 4471, 4472, 4476, 4469, 4478, 4482, 4483, + 4485, 4486, 4489, 4492, 6741, 4493, 4497, 4498, 4500, 4503, + 4505, 4504, 4506, 4508, 6741, 4511, 6741, 4509, 4514, 4513, + 4510, 4521, 4530, 4531, 4532, 4533, 4536, 4537, 4540, 4541, + 4551, 4542, 4546, 4552, 4554, 4556, 4561, 4562, 6741, 4564, + 4548, 4558, 4565, 4571, 4573, 4574, 4576, 4579, 4581, 4583, + 4582, 4585, 4589, 4586, 4590, 4591, 4592, 4594, 6741, 4596, + 4603, 4595, 4605, 4607, 4609, 4616, 4610, 4618, 4612, 4620, + 4621, 6741, 4622, 4624, 4628, 6741, 4629, 4630, 4632, 4634, + 4640, 4633, 4636, 4642, 4644, 6741, 4646, 4648, 4651, 4650, - 4656, 4650, 4660, 4658, 4652, 6613, 4654, 4662, 4667, 4664, - 4668, 6613, 4669, 4671, 4673, 4680, 6613, 4682, 4684, 4675, - 4686, 4691, 4693, 6613, 4697, 4699, 4700, 4707, 4709, 4704, - 4711, 4706, 4714, 4712, 4708, 4716, 4717, 4725, 4723, 4721, - 6613, 4727, 4729, 4734, 4736, 4730, 4738, 4728, 4740, 4743, - 4745, 6613, 4746, 4749, 4750, 4752, 4753, 4754, 4755, 4762, - 4759, 4761, 4763, 4764, 4767, 4768, 6613, 4773, 4771, 4775, - 4784, 4626, 4786, 6613, 4781, 6613, 4777, 4792, 4794, 4776, - 4795, 6613, 6613, 4799, 4804, 4800, 4806, 4801, 6613, 6613, - 4808, 6613, 4809, 6613, 4811, 4813, 6613, 6613, 4814, 4815, + 4654, 4655, 4656, 4660, 4662, 4663, 4666, 6741, 4676, 4667, + 4675, 4678, 4674, 4677, 4681, 4687, 4685, 6741, 4688, 4689, + 4691, 4701, 4703, 4696, 4698, 4710, 4700, 4707, 4708, 4709, + 4715, 4714, 4716, 4719, 4720, 4721, 4730, 4732, 4727, 6741, + 4734, 6741, 4736, 4737, 4738, 4747, 4742, 4740, 4744, 4748, + 4750, 6741, 4752, 4755, 4758, 4759, 4760, 6741, 4761, 4762, + 4764, 4763, 6741, 4777, 4776, 4765, 4782, 4767, 4783, 6741, + 4787, 4788, 4790, 4798, 4799, 4796, 4801, 4789, 4806, 4797, + 4802, 4804, 4810, 4814, 4812, 4813, 6741, 4815, 4817, 4822, + 4824, 4825, 4827, 4828, 4831, 4833, 4830, 6741, 4837, 4838, - 4816, 4817, 4824, 6613, 4831, 6613, 4826, 4832, 4818, 4828, - 4835, 6613, 4836, 4839, 4837, 4844, 4846, 6613, 4838, 4854, - 4843, 4851, 6613, 4853, 4857, 4858, 4862, 6613, 4863, 4868, - 4865, 4869, 4872, 4871, 4873, 4874, 4878, 4879, 4884, 4882, - 4883, 4885, 4894, 4896, 4898, 4900, 4901, 4886, 4905, 4906, - 4908, 4911, 4912, 4914, 4915, 4917, 4918, 4920, 4922, 4925, - 4926, 4676, 4927, 4928, 4930, 4929, 4932, 4941, 4933, 4943, - 4944, 4945, 4946, 4947, 4950, 4951, 4954, 4955, 4959, 4960, - 4962, 6613, 4963, 4957, 4965, 4971, 4973, 4978, 4980, 4990, - 4992, 4993, 6613, 4995, 6613, 4997, 4982, 4999, 4967, 5001, + 4839, 4840, 4841, 4844, 4846, 4853, 4849, 4850, 4852, 4856, + 4857, 4860, 6741, 4861, 4863, 4865, 4872, 4869, 4874, 6741, + 4878, 6741, 4880, 4882, 4885, 4867, 4889, 6741, 6741, 4891, + 4892, 4884, 4898, 4899, 6741, 6741, 4901, 6741, 4902, 6741, + 4903, 4905, 6741, 6741, 4904, 4906, 4907, 4910, 4911, 4913, + 6741, 4919, 6741, 4929, 4924, 4914, 4922, 4926, 6741, 4927, + 4933, 4935, 4937, 4939, 6741, 4934, 4948, 4940, 4941, 6741, + 4951, 4952, 4945, 4953, 6741, 4959, 4962, 4963, 4954, 4957, + 4965, 4967, 4973, 4974, 4977, 4975, 4976, 4978, 4979, 4982, + 4986, 4991, 4993, 4983, 4994, 4997, 4999, 5003, 5001, 5005, - 6613, 4984, 5002, 5003, 5006, 5005, 5007, 5009, 5008, 5012, - 5013, 5017, 6613, 5022, 5015, 5019, 5023, 5034, 6613, 5035, - 5037, 5024, 5038, 5039, 5040, 5043, 5045, 5048, 5047, 5050, - 5052, 5053, 5054, 5059, 5058, 5068, 5075, 5060, 5062, 5070, - 5071, 5074, 5076, 5080, 5081, 5082, 5088, 5090, 5094, 6613, - 5083, 6613, 5095, 5091, 5097, 5098, 5101, 5099, 5103, 6613, - 6613, 5105, 5108, 5113, 5114, 5115, 5117, 5120, 5121, 5123, - 6613, 5124, 5126, 5135, 5128, 6613, 5132, 5137, 5138, 5143, - 6613, 5140, 5144, 5145, 5151, 5146, 5155, 5156, 5159, 5148, - 5160, 5162, 5167, 6613, 6613, 6613, 6613, 5169, 5163, 5174, + 5006, 5007, 5008, 5010, 5015, 5009, 5017, 5020, 5011, 5021, + 5023, 5024, 5031, 5032, 5034, 5035, 5039, 5040, 5042, 5043, + 5044, 5045, 5046, 5047, 5050, 5057, 5048, 5052, 5056, 5062, + 5063, 6741, 5066, 5067, 5068, 5071, 5073, 5075, 5076, 5083, + 5086, 5092, 6741, 5094, 6741, 5096, 5088, 5079, 5098, 5099, + 6741, 5100, 5101, 5102, 5103, 5104, 5105, 5107, 5108, 5111, + 5112, 5115, 6741, 5122, 5118, 5126, 5127, 5134, 6741, 5131, + 5138, 5135, 5139, 5142, 5141, 5143, 5144, 5147, 5145, 5151, + 5155, 5146, 5152, 5159, 5168, 5172, 5175, 5158, 5173, 5160, + 5177, 5178, 5174, 5180, 5181, 5182, 5190, 5185, 5193, 6741, - 5171, 5175, 5177, 5178, 5180, 5176, 6613, 5190, 6613, 6613, - 5192, 5193, 5181, 5194, 5196, 5183, 5200, 5203, 6613, 5201, - 5205, 5207, 5206, 5214, 5218, 5215, 5208, 5223, 5219, 5224, - 5225, 5228, 5236, 5232, 5233, 5235, 5239, 5241, 5248, 6613, - 6613, 5238, 5253, 5242, 5255, 5256, 5257, 5258, 5265, 5260, - 5263, 5266, 5267, 5269, 5270, 5279, 5280, 5271, 5278, 6613, - 5281, 5284, 5283, 6613, 5285, 6613, 5287, 5293, 5294, 5295, - 5296, 5300, 5301, 5304, 6613, 6613, 5299, 5316, 5314, 6613, - 6613, 5303, 5306, 5311, 5319, 5321, 5315, 5323, 5324, 5336, - 5325, 6613, 5327, 6613, 5329, 5333, 5341, 5331, 5351, 5352, + 5195, 6741, 5196, 5197, 5198, 5199, 5201, 5202, 5203, 5208, + 6741, 6741, 5204, 5209, 5218, 5211, 5213, 5221, 5222, 5215, + 5225, 6741, 5228, 5232, 5235, 5237, 6741, 5238, 5239, 5240, + 5242, 6741, 5244, 5245, 5247, 5249, 5246, 5258, 5261, 5255, + 5252, 5262, 5263, 5270, 6741, 6741, 6741, 6741, 5271, 5267, + 5276, 5273, 5277, 5278, 5279, 5282, 5281, 5284, 5285, 6741, + 5293, 6741, 6741, 5294, 5296, 5295, 5297, 5298, 5303, 5305, + 5307, 6741, 5308, 6741, 5311, 5312, 5310, 5319, 5321, 5324, + 5313, 5327, 5328, 5331, 5330, 5333, 5340, 5337, 5338, 5341, + 5344, 5346, 5353, 6741, 6741, 5347, 5355, 5358, 5363, 5359, - 5353, 5355, 5350, 5338, 6613, 5348, 5359, 6613, 5366, 5361, - 5363, 5362, 5365, 6613, 5368, 5370, 5374, 5378, 6613, 5382, - 5371, 5379, 6613, 5386, 6613, 5383, 5387, 5389, 5396, 5393, - 6613, 5391, 5397, 6613, 5400, 5407, 5409, 5402, 6613, 5404, - 6613, 5394, 5417, 5418, 5421, 5408, 5425, 5413, 5410, 5427, - 5435, 5431, 5432, 6613, 6613, 5439, 5437, 135, 5444, 5434, - 5440, 5445, 5446, 5453, 5448, 5450, 5456, 6613, 6613, 5458, - 6613, 5451, 5461, 6613, 5449, 5466, 5467, 5462, 5470, 5471, - 5472, 5476, 5478, 5481, 5482, 5483, 5484, 5486, 5502, 5505, - 5487, 5508, 5509, 5511, 5513, 5515, 5517, 5518, 5500, 5498, + 5365, 5366, 5373, 5368, 5369, 5375, 5371, 5377, 5376, 5387, + 5388, 5378, 5379, 6741, 5343, 5389, 5390, 6741, 5392, 6741, + 5395, 5396, 5398, 5399, 5402, 5405, 5406, 5408, 6741, 6741, + 5403, 5415, 5413, 6741, 6741, 5410, 5418, 5420, 5423, 5424, + 5425, 5426, 5427, 5433, 5428, 6741, 5430, 6741, 5434, 5436, + 5449, 5437, 5452, 5456, 5441, 5457, 5461, 5455, 5453, 6741, + 5464, 5465, 6741, 5472, 5467, 5471, 5468, 5469, 6741, 5476, + 5474, 5480, 5486, 6741, 5488, 5489, 5490, 6741, 5497, 6741, + 5481, 5494, 5491, 5506, 5498, 6741, 5502, 5507, 6741, 5512, + 5514, 5515, 5504, 5516, 6741, 5520, 5509, 6741, 5521, 5524, - 5521, 5519, 5522, 5525, 5528, 5529, 6613, 5531, 5536, 5488, - 5532, 6613, 5540, 5537, 5542, 5546, 6613, 5553, 5545, 5547, - 5555, 6613, 5543, 5558, 5559, 5560, 5562, 5565, 5567, 5572, - 5570, 5568, 5574, 6613, 6613, 6613, 5575, 5585, 6613, 5587, - 5579, 5573, 5588, 6613, 5590, 5591, 5592, 6613, 6613, 5594, - 5596, 5595, 5603, 6613, 5599, 6613, 5601, 6613, 5602, 5608, - 5609, 5612, 6613, 5618, 5614, 5616, 5624, 6613, 5632, 5634, - 5636, 5617, 5620, 5629, 5637, 6613, 5644, 5641, 5645, 5652, - 5639, 5643, 5647, 5649, 5653, 5662, 5658, 5660, 6613, 5661, - 5664, 5667, 5673, 5663, 5666, 5670, 6613, 5675, 6613, 5677, + 5525, 5531, 5528, 5533, 5534, 5535, 5536, 5544, 5540, 5542, + 6741, 6741, 5551, 5549, 135, 5558, 5537, 5548, 5555, 5556, + 5565, 5561, 5563, 5570, 6741, 6741, 5566, 6741, 5564, 5573, + 6741, 5574, 5577, 5578, 5583, 5582, 5584, 5585, 5581, 5589, + 5590, 5603, 5593, 5591, 5608, 5598, 5618, 5594, 5620, 5621, + 5623, 5625, 5627, 5615, 5629, 5630, 5609, 5632, 5633, 5636, + 5638, 5639, 5640, 6741, 5643, 5645, 5646, 5648, 6741, 5654, + 5651, 5656, 5657, 6741, 5664, 5661, 5665, 5667, 5668, 6741, + 5669, 5672, 5675, 5673, 5678, 5680, 5596, 5689, 5681, 5684, + 5686, 6741, 6741, 6741, 5695, 5699, 6741, 5702, 5692, 5685, - 6613, 5678, 5679, 5680, 5687, 5686, 5688, 5689, 5693, 5699, - 5694, 5690, 5701, 5705, 5706, 6613, 6613, 5710, 5712, 6613, - 5713, 6613, 5715, 6613, 5716, 5717, 5719, 5718, 6613, 5721, - 5722, 5728, 5730, 5726, 5729, 6613, 5738, 5731, 5736, 5741, - 6613, 6613, 5743, 5750, 5746, 6613, 5747, 5753, 5757, 5754, - 5759, 5760, 5761, 5762, 5772, 5764, 5765, 5767, 5776, 5773, - 5781, 5786, 5779, 6613, 6613, 6613, 5785, 5790, 5798, 5794, - 5796, 5801, 5791, 6613, 5800, 5803, 5806, 5804, 5813, 5808, - 5815, 6613, 5812, 5816, 5817, 5818, 5820, 5821, 5822, 5827, - 6613, 5829, 5833, 5830, 5837, 5839, 5846, 5848, 5850, 5841, + 5696, 6741, 5704, 5707, 5705, 6741, 6741, 5708, 5713, 5711, + 6741, 5709, 5721, 6741, 5712, 6741, 5719, 6741, 5722, 5723, + 5725, 5730, 6741, 5731, 5732, 5734, 5737, 6741, 5743, 5747, + 5750, 5735, 5751, 5753, 5752, 6741, 5760, 5756, 5758, 5765, + 5755, 5762, 5759, 5770, 5766, 5782, 5767, 5769, 6741, 5777, + 5778, 5785, 5786, 5779, 5788, 5789, 6741, 5791, 6741, 5794, + 6741, 5795, 5796, 5797, 5805, 5799, 5800, 5802, 5807, 5816, + 5813, 5806, 5818, 5821, 5823, 6741, 6741, 5826, 5828, 6741, + 5829, 6741, 5831, 6741, 5832, 5833, 5834, 5835, 5836, 6741, + 5838, 5840, 5843, 5853, 5845, 5846, 6741, 5854, 5856, 5857, - 5843, 5858, 5855, 6613, 5857, 6613, 6613, 5853, 6613, 5859, - 5861, 5862, 5863, 6613, 5866, 5867, 5868, 5871, 5870, 5873, - 5875, 5877, 6613, 5886, 5878, 5888, 5889, 6613, 6613, 5892, - 6613, 5896, 5897, 5899, 5906, 5903, 5901, 5905, 5911, 6613, - 5908, 5914, 5910, 5917, 5918, 5920, 5921, 6613, 5925, 5922, - 5924, 5926, 6613, 5929, 5934, 5931, 5935, 5938, 6613, 5940, - 5939, 5942, 5952, 6613, 5951, 5955, 5953, 6613, 6613, 5961, - 5963, 5964, 6613, 6613, 6613, 5970, 5967, 5954, 5975, 6613, - 5977, 5981, 5985, 5989, 5980, 6613, 5988, 5990, 5992, 5994, - 5995, 6613, 6613, 5996, 5997, 5998, 6001, 6613, 6613, 6002, + 5859, 6741, 6741, 5861, 5869, 5862, 6741, 5864, 5872, 5874, + 5875, 5877, 5879, 5880, 5883, 5882, 5893, 5866, 5884, 5888, + 5895, 5889, 5900, 5906, 5910, 6741, 6741, 6741, 5901, 5899, + 5918, 5915, 5917, 5922, 5905, 6741, 5921, 5925, 5927, 5928, + 5935, 5931, 5934, 6741, 5930, 5936, 5937, 5938, 5940, 5941, + 5943, 5944, 6741, 5946, 5956, 5952, 5950, 5958, 5966, 5968, + 5970, 5961, 5971, 5978, 5975, 6741, 5977, 6741, 6741, 5973, + 6741, 5979, 5981, 5983, 5982, 5984, 6741, 5987, 5988, 5989, + 5991, 5990, 5998, 5994, 5996, 6741, 6006, 5999, 6009, 6011, + 6741, 6741, 6012, 6018, 6741, 6021, 6022, 6015, 6030, 6013, - 6004, 6006, 6005, 6007, 6613, 6008, 6013, 6020, 6015, 6028, - 6031, 6033, 6021, 6034, 6035, 6043, 6046, 6023, 6038, 6041, - 6045, 6049, 6051, 6056, 6058, 6057, 6060, 6065, 6061, 6066, - 6613, 6613, 6068, 6613, 6073, 6069, 6613, 6613, 6075, 6080, - 6082, 6084, 6086, 6088, 6090, 6092, 6077, 6613, 6093, 6095, - 6096, 6097, 6098, 6613, 6100, 6107, 6099, 6104, 6101, 6110, - 6116, 6613, 6108, 6121, 6613, 6613, 6112, 6122, 6124, 6126, - 6128, 6613, 6129, 6137, 6133, 6134, 6135, 6138, 6136, 6613, - 6142, 6140, 6613, 6613, 6141, 6143, 6613, 6613, 6144, 6613, - 6613, 6613, 6613, 6613, 6613, 6613, 6613, 6155, 6159, 6613, + 6023, 6035, 6032, 6741, 6036, 6038, 6026, 6039, 6042, 6041, + 6044, 6741, 6048, 6045, 6049, 6051, 6741, 6052, 6057, 6058, + 6060, 6061, 6741, 6062, 6054, 6078, 6063, 6741, 6065, 6077, + 6079, 6741, 6741, 6083, 6087, 6084, 6741, 6741, 6741, 6090, + 6091, 6093, 6095, 6741, 6098, 6102, 6106, 6108, 6113, 6101, + 6741, 6109, 6115, 6117, 6118, 6119, 6741, 6741, 6120, 6121, + 6122, 6126, 6123, 6741, 6741, 6128, 6130, 6131, 6129, 6132, + 6741, 6134, 6139, 6146, 6142, 6148, 6155, 6157, 6150, 6158, + 6159, 6167, 6170, 6160, 6162, 6169, 6173, 6174, 6172, 6176, + 6186, 6181, 6183, 6189, 6184, 6192, 6741, 6741, 6194, 6741, - 6151, 6166, 6168, 6172, 6613, 6153, 6169, 6157, 6163, 6613, - 6173, 6613, 6174, 6175, 6177, 6179, 6180, 6184, 6188, 6189, - 6191, 6190, 6192, 6196, 6193, 6198, 6194, 6200, 6207, 6204, - 6205, 6213, 6613, 6613, 6613, 6214, 6215, 6220, 6222, 6224, - 6226, 6230, 6233, 6234, 6216, 6237, 6238, 6239, 6241, 6242, - 6251, 6246, 6247, 6249, 6256, 6248, 6262, 6613, 6264, 6250, - 6252, 6270, 6613, 6258, 6613, 6267, 6613, 6613, 6275, 6276, - 6272, 6278, 6287, 6288, 6279, 6283, 6284, 6286, 6290, 6613, - 6295, 6613, 6613, 6292, 6298, 6613, 6300, 6301, 6613, 6299, - 6302, 6304, 6308, 6309, 6306, 6310, 6311, 6327, 6613, 6613, + 6196, 6198, 6741, 6741, 6201, 6203, 6205, 6209, 6741, 6211, + 6213, 6215, 6217, 6206, 6741, 6218, 6220, 6221, 6222, 6223, + 6741, 6225, 6226, 6229, 6231, 6235, 6237, 6238, 6241, 6741, + 6236, 6253, 6741, 6741, 6242, 6244, 6233, 6254, 6250, 6741, + 6258, 6262, 6257, 6264, 6263, 6265, 6270, 6741, 6266, 6267, + 6741, 6741, 6273, 6274, 6741, 6741, 6275, 6741, 6741, 6741, + 6741, 6741, 6741, 6741, 6741, 6279, 6278, 6741, 6280, 6288, + 6291, 6741, 6295, 6741, 6285, 6296, 6298, 6292, 6741, 6297, + 6741, 6299, 6303, 6304, 6313, 6306, 6316, 6307, 6300, 6310, + 6318, 6323, 6324, 6326, 6325, 6327, 6329, 6331, 6341, 6333, - 6312, 6317, 6320, 6329, 6331, 6330, 6333, 6337, 6338, 6340, - 6341, 6350, 6613, 6347, 6348, 6352, 6613, 6354, 6349, 6355, - 6356, 6357, 6365, 6361, 6364, 6613, 6366, 6613, 6370, 6372, - 6373, 6363, 6371, 6374, 6385, 6383, 6379, 6613, 6389, 6393, - 6391, 6395, 6397, 6399, 6400, 6401, 6403, 6406, 6412, 6409, - 6416, 6417, 6413, 6421, 6418, 6613, 6428, 6419, 6613, 6425, - 6429, 6422, 6431, 6435, 6613, 6440, 6433, 6442, 6443, 6446, - 6447, 6613, 6449, 6456, 6451, 6613, 6457, 6613, 6613, 6459, - 6453, 6460, 6466, 6468, 6613, 6613, 6613, 6493, 6500, 6507, - 6514, 6521, 6528, 6535, 88, 6542, 6549, 6556, 6563, 6570, + 6338, 6741, 6741, 6741, 6330, 6342, 6346, 6347, 6352, 6354, + 6358, 6360, 6349, 6361, 6363, 6364, 6365, 6367, 6371, 6378, + 6373, 6376, 6374, 6383, 6375, 6385, 6741, 6390, 6391, 6377, + 6394, 6741, 6397, 6741, 6380, 6741, 6741, 6400, 6401, 6403, + 6404, 6413, 6414, 6405, 6409, 6410, 6415, 6417, 6741, 6425, + 6741, 6741, 6418, 6421, 6741, 6426, 6427, 6741, 6428, 6430, + 6432, 6433, 6434, 6436, 6437, 6438, 6445, 6741, 6741, 6449, + 6450, 6452, 6454, 6456, 6463, 6458, 6460, 6462, 6470, 6464, + 6472, 6741, 6474, 6476, 6478, 6741, 6480, 6479, 6482, 6485, + 6486, 6493, 6488, 6490, 6741, 6491, 6741, 6495, 6497, 6496, - 6577, 6584, 6591, 6598, 6605 + 6499, 6500, 6502, 6510, 6508, 6512, 6741, 6514, 6516, 6520, + 6521, 6523, 6526, 6527, 6528, 6530, 6532, 6533, 6542, 6536, + 6538, 6544, 6546, 6548, 6741, 6550, 6552, 6741, 6553, 6554, + 6555, 6556, 6560, 6741, 6565, 6557, 6562, 6568, 6573, 6570, + 6741, 6579, 6583, 6580, 6741, 6584, 6741, 6741, 6585, 6586, + 6588, 6592, 6594, 6741, 6741, 6741, 6621, 6628, 6635, 6642, + 6649, 6656, 6663, 88, 6670, 6677, 6684, 6691, 6698, 6705, + 6712, 6719, 6726, 6733 } ; -static const flex_int16_t yy_def[3406] = +static const flex_int16_t yy_def[3475] = { 0, - 3387, 1, 3388, 3388, 3389, 3389, 3390, 3390, 3391, 3391, - 3392, 3392, 3393, 3393, 3394, 3394, 3387, 3395, 3387, 3387, - 3387, 3387, 3396, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3397, 3387, 3387, 3387, - 3397, 3398, 3387, 3387, 3387, 3398, 3399, 3387, 3387, 3387, - 3387, 3399, 3400, 3387, 3387, 3387, 3400, 3401, 3387, 3402, - 3387, 3401, 3401, 3403, 3387, 3387, 3387, 3387, 3403, 3404, - 3387, 3387, 3387, 3404, 3395, 3395, 3387, 3405, 3396, 3405, - 3396, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3456, 1, 3457, 3457, 3458, 3458, 3459, 3459, 3460, 3460, + 3461, 3461, 3462, 3462, 3463, 3463, 3456, 3464, 3456, 3456, + 3456, 3456, 3465, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3466, 3456, 3456, 3456, + 3466, 3467, 3456, 3456, 3456, 3467, 3468, 3456, 3456, 3456, + 3456, 3468, 3469, 3456, 3456, 3456, 3469, 3470, 3456, 3471, + 3456, 3470, 3470, 3472, 3456, 3456, 3456, 3456, 3472, 3473, + 3456, 3456, 3456, 3473, 3464, 3464, 3456, 3474, 3465, 3474, + 3465, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3397, - 3397, 3398, 3398, 3399, 3399, 3387, 3400, 3400, 3401, 3401, - 3402, 3402, 3401, 3403, 3403, 3387, 3404, 3404, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3466, + 3466, 3467, 3467, 3468, 3468, 3456, 3469, 3469, 3470, 3470, + 3471, 3471, 3470, 3472, 3472, 3456, 3473, 3473, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3401, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3470, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3401, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3387, 3395, 3387, 3387, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3456, 3464, 3456, 3456, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3470, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3401, 3401, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3470, + 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, - 3395, 3387, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3470, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3401, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3401, 3395, 3387, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, - 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3387, 3395, 3395, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3470, 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3387, 3387, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3401, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3387, - 3395, 3387, 3395, 3387, 3395, 3395, 3387, 3387, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3470, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3401, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, 3456, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3387, 3387, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3470, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3401, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3387, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3456, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3395, 3395, 3401, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, - 3387, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, + 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3456, 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3456, 3456, 3464, 3464, 3456, 3464, 3464, 3464, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, 3395, 3387, - 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3387, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3464, 3456, 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, + 3456, 3464, 3464, 3456, 3464, 3456, 3464, 3456, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3456, + 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, - 3395, 3395, 3395, 3387, 3395, 3387, 3387, 3395, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3387, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3387, 3395, - 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3387, 3395, 3395, 3395, 3395, 3387, 3387, 3395, + 3464, 3456, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3456, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3456, 3456, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3387, 3395, 3387, 3395, 3395, 3387, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3387, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3387, 3387, 3395, 3395, 3387, 3387, 3395, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3395, 3395, 3387, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3456, 3456, 3464, 3464, 3464, 3456, 3456, 3456, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3387, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3387, 3387, 3395, 3395, 3387, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3456, 3456, 3464, 3464, 3456, 3456, 3464, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3464, 3464, 3456, 3464, 3464, + 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3387, 3387, 3395, - 3395, 3395, 3395, 3395, 3387, 3387, 0, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, + 3464, 3456, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3456, 3464, 3456, 3464, 3456, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3456, 3456, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, - 3387, 3387, 3387, 3387, 3387 + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3456, 3464, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 0, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456 } ; -static const flex_int16_t yy_nxt[6654] = +static const flex_int16_t yy_nxt[6782] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1599,7 +1621,7 @@ static const flex_int16_t yy_nxt[6654] = 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, - 332, 86, 86, 86, 726, 334, 86, 338, 323, 331, + 332, 86, 86, 86, 734, 334, 86, 338, 323, 331, 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, @@ -1624,656 +1646,670 @@ static const flex_int16_t yy_nxt[6654] = 425, 86, 436, 86, 86, 434, 86, 438, 86, 441, 431, 437, 433, 86, 430, 86, 443, 446, 86, 86, 439, 447, 440, 86, 442, 86, 86, 445, 86, 86, - 457, 448, 86, 444, 86, 455, 86, 86, 86, 458, - 461, 459, 499, 449, 170, 462, 450, 456, 469, 86, + 457, 448, 86, 444, 86, 455, 86, 86, 170, 462, + 458, 463, 459, 449, 464, 86, 450, 456, 469, 470, - 463, 451, 452, 453, 454, 466, 86, 460, 464, 465, - 467, 86, 86, 86, 86, 468, 86, 86, 86, 477, - 86, 86, 86, 479, 86, 475, 478, 476, 86, 472, - 470, 86, 480, 471, 473, 474, 86, 86, 86, 481, - 483, 482, 86, 487, 86, 86, 86, 86, 488, 86, - 489, 492, 86, 505, 493, 1513, 484, 486, 485, 490, - 86, 86, 86, 86, 491, 86, 494, 495, 497, 86, - 498, 86, 500, 496, 86, 506, 507, 86, 86, 508, - 504, 86, 86, 86, 86, 501, 509, 86, 502, 547, - 503, 86, 510, 86, 520, 86, 511, 522, 519, 523, + 86, 451, 452, 453, 454, 460, 467, 86, 461, 465, + 466, 468, 86, 86, 86, 86, 86, 86, 478, 86, + 86, 86, 86, 480, 476, 477, 479, 86, 481, 473, + 471, 86, 86, 472, 474, 475, 86, 483, 86, 485, + 86, 488, 86, 489, 86, 490, 482, 86, 484, 86, + 506, 86, 86, 494, 491, 487, 493, 495, 486, 86, + 86, 86, 86, 86, 492, 496, 498, 86, 499, 86, + 501, 497, 170, 507, 86, 500, 508, 86, 505, 86, + 86, 86, 522, 502, 86, 509, 503, 523, 504, 86, + 510, 86, 511, 545, 86, 86, 525, 86, 512, 569, - 86, 524, 86, 525, 512, 86, 513, 527, 514, 537, - 535, 536, 521, 170, 538, 86, 86, 86, 86, 526, - 86, 515, 86, 539, 516, 168, 517, 86, 518, 86, - 540, 528, 529, 543, 541, 542, 544, 86, 86, 545, - 546, 530, 548, 531, 532, 533, 86, 550, 534, 86, - 86, 549, 86, 86, 552, 86, 86, 551, 554, 559, - 557, 86, 560, 86, 86, 86, 86, 556, 564, 86, - 555, 558, 553, 86, 86, 86, 562, 86, 568, 569, - 563, 86, 567, 561, 86, 86, 86, 86, 86, 566, - 86, 578, 574, 86, 565, 570, 86, 579, 575, 576, + 528, 168, 513, 86, 86, 524, 526, 514, 527, 530, + 515, 86, 516, 540, 517, 541, 529, 86, 539, 86, + 542, 86, 86, 86, 86, 86, 548, 518, 86, 543, + 519, 166, 520, 86, 521, 86, 544, 531, 532, 547, + 550, 546, 553, 86, 549, 551, 86, 533, 534, 535, + 536, 537, 554, 552, 538, 86, 86, 86, 86, 86, + 556, 563, 555, 558, 561, 86, 86, 86, 86, 564, + 86, 86, 560, 568, 86, 86, 559, 86, 557, 86, + 562, 86, 566, 86, 86, 567, 565, 86, 571, 578, + 570, 572, 573, 575, 86, 574, 86, 576, 577, 86, - 571, 572, 573, 86, 581, 582, 86, 86, 86, 86, - 86, 595, 580, 86, 86, 166, 577, 86, 587, 597, - 86, 583, 596, 584, 586, 590, 585, 86, 86, 588, - 86, 589, 598, 591, 592, 600, 599, 593, 594, 86, - 86, 86, 86, 86, 603, 602, 604, 605, 86, 86, - 607, 601, 86, 609, 86, 86, 86, 86, 612, 86, - 610, 613, 86, 614, 86, 608, 86, 86, 606, 611, - 86, 617, 86, 619, 86, 618, 86, 615, 86, 86, - 86, 620, 86, 625, 86, 616, 621, 86, 626, 86, - 624, 86, 628, 86, 627, 86, 622, 623, 629, 86, + 582, 579, 580, 86, 86, 585, 86, 583, 86, 86, + 86, 86, 599, 86, 86, 86, 165, 602, 86, 581, + 591, 86, 584, 587, 86, 586, 588, 589, 590, 594, + 600, 592, 86, 593, 86, 86, 605, 595, 596, 601, + 604, 597, 598, 86, 603, 86, 86, 86, 608, 606, + 86, 607, 610, 86, 611, 609, 86, 613, 86, 86, + 86, 86, 616, 86, 614, 617, 86, 618, 86, 612, + 86, 86, 86, 615, 86, 621, 86, 622, 86, 623, + 86, 619, 86, 86, 633, 86, 625, 624, 629, 620, + 86, 86, 86, 86, 628, 630, 626, 631, 627, 86, - 631, 86, 633, 86, 86, 86, 86, 86, 630, 86, - 86, 632, 635, 86, 636, 638, 634, 86, 86, 640, - 86, 86, 646, 165, 637, 649, 639, 641, 86, 642, - 647, 643, 645, 648, 86, 86, 86, 644, 86, 86, - 86, 653, 86, 651, 86, 656, 652, 658, 650, 86, - 654, 86, 659, 86, 86, 655, 86, 86, 86, 662, - 86, 665, 657, 661, 86, 666, 86, 86, 86, 86, - 86, 668, 86, 86, 700, 663, 660, 664, 86, 667, - 86, 86, 671, 669, 682, 163, 86, 670, 86, 672, - 680, 683, 86, 681, 673, 86, 674, 684, 86, 685, + 86, 636, 86, 632, 634, 86, 638, 86, 86, 86, + 86, 86, 86, 635, 86, 86, 640, 643, 641, 86, + 86, 651, 86, 645, 637, 86, 653, 86, 639, 86, + 654, 642, 86, 646, 644, 647, 650, 648, 652, 86, + 649, 86, 86, 86, 86, 658, 86, 86, 661, 656, + 663, 86, 657, 655, 86, 664, 86, 659, 86, 660, + 86, 86, 86, 667, 86, 666, 662, 671, 670, 86, + 86, 86, 86, 86, 86, 673, 86, 86, 668, 665, + 86, 669, 163, 86, 672, 86, 676, 674, 690, 688, + 86, 675, 86, 677, 685, 687, 689, 686, 678, 86, - 86, 688, 675, 689, 676, 686, 86, 677, 678, 687, - 86, 86, 693, 86, 679, 698, 86, 86, 86, 692, - 697, 86, 690, 694, 86, 691, 695, 86, 702, 696, - 86, 86, 86, 86, 86, 86, 699, 86, 86, 703, - 708, 86, 704, 709, 733, 86, 701, 705, 86, 86, - 706, 712, 86, 711, 86, 707, 710, 713, 714, 170, - 716, 717, 86, 715, 86, 86, 86, 718, 86, 86, - 86, 86, 86, 723, 725, 728, 86, 86, 720, 727, - 721, 719, 729, 724, 731, 86, 722, 86, 86, 730, - 86, 86, 86, 86, 86, 737, 86, 732, 736, 742, + 679, 86, 86, 732, 86, 692, 680, 86, 681, 693, + 86, 682, 683, 694, 86, 691, 86, 695, 684, 696, + 86, 700, 86, 697, 86, 699, 698, 86, 86, 86, + 707, 704, 701, 705, 86, 702, 86, 709, 703, 86, + 86, 86, 86, 713, 706, 86, 86, 86, 86, 86, + 86, 86, 711, 716, 710, 724, 712, 720, 717, 708, + 86, 86, 86, 86, 714, 719, 718, 722, 715, 721, + 170, 86, 86, 86, 723, 86, 86, 726, 86, 86, + 86, 733, 731, 725, 736, 86, 737, 728, 735, 86, + 729, 727, 86, 739, 730, 86, 86, 86, 86, 86, - 86, 734, 86, 738, 743, 86, 735, 745, 86, 791, - 739, 86, 741, 740, 747, 744, 746, 86, 748, 86, - 86, 749, 86, 750, 86, 751, 86, 86, 86, 86, - 752, 86, 753, 756, 86, 758, 754, 755, 86, 86, - 86, 759, 86, 86, 760, 757, 764, 763, 86, 86, - 86, 86, 86, 765, 86, 767, 86, 769, 86, 86, - 86, 762, 86, 761, 772, 768, 766, 775, 161, 770, - 86, 86, 86, 86, 86, 776, 773, 86, 86, 771, - 86, 778, 774, 86, 783, 777, 779, 86, 785, 780, - 781, 86, 782, 86, 788, 784, 786, 790, 787, 86, + 741, 738, 86, 86, 86, 745, 86, 740, 744, 86, + 742, 750, 763, 743, 86, 746, 751, 86, 753, 86, + 749, 86, 747, 754, 86, 748, 755, 752, 756, 86, + 757, 86, 86, 758, 86, 759, 86, 86, 86, 86, + 760, 86, 761, 764, 86, 766, 762, 767, 86, 86, + 86, 772, 86, 768, 86, 765, 771, 86, 773, 86, + 86, 86, 86, 777, 86, 775, 86, 86, 86, 770, + 86, 86, 769, 780, 783, 776, 784, 774, 86, 778, + 86, 86, 86, 781, 86, 86, 86, 779, 786, 794, + 782, 86, 785, 787, 86, 791, 788, 789, 86, 790, - 86, 86, 789, 86, 792, 86, 86, 86, 86, 793, - 796, 795, 86, 797, 86, 798, 86, 86, 799, 800, - 86, 802, 804, 86, 86, 86, 86, 801, 86, 805, - 810, 794, 86, 86, 86, 808, 86, 803, 811, 86, - 809, 807, 812, 806, 813, 814, 86, 86, 86, 815, - 86, 817, 86, 816, 86, 821, 823, 819, 86, 825, - 86, 86, 86, 822, 818, 86, 86, 86, 824, 827, - 86, 826, 86, 820, 828, 86, 834, 831, 86, 835, - 829, 86, 86, 830, 86, 86, 837, 836, 86, 839, - 86, 832, 833, 86, 843, 86, 841, 840, 86, 86, + 792, 86, 793, 795, 798, 796, 86, 86, 86, 86, + 86, 800, 803, 801, 86, 799, 797, 804, 86, 86, + 86, 86, 86, 805, 86, 86, 86, 810, 808, 812, + 86, 86, 86, 86, 86, 802, 806, 807, 809, 86, + 813, 819, 86, 817, 811, 814, 86, 86, 820, 816, + 86, 818, 86, 815, 86, 821, 822, 823, 86, 86, + 86, 824, 86, 86, 826, 825, 830, 828, 827, 829, + 86, 832, 86, 86, 86, 831, 833, 86, 836, 835, + 86, 86, 86, 837, 86, 843, 86, 840, 834, 86, + 86, 86, 86, 838, 839, 846, 86, 848, 845, 86, - 86, 86, 849, 845, 838, 86, 86, 844, 851, 847, - 850, 842, 86, 846, 848, 86, 86, 86, 852, 853, - 86, 86, 859, 854, 86, 86, 86, 86, 86, 860, - 855, 86, 86, 861, 856, 86, 86, 86, 86, 857, - 86, 858, 862, 868, 864, 86, 863, 866, 86, 86, - 869, 865, 867, 86, 86, 86, 874, 870, 873, 871, - 86, 86, 86, 86, 86, 882, 86, 872, 880, 875, - 883, 86, 86, 876, 86, 86, 881, 86, 877, 878, - 879, 86, 888, 86, 86, 884, 886, 86, 887, 86, - 86, 885, 86, 86, 86, 893, 892, 889, 895, 894, + 86, 841, 842, 850, 852, 844, 849, 86, 86, 856, + 86, 86, 847, 854, 857, 86, 86, 858, 851, 853, + 86, 86, 860, 855, 86, 86, 862, 86, 86, 86, + 86, 868, 86, 86, 86, 86, 859, 86, 869, 86, + 861, 870, 86, 863, 86, 864, 865, 875, 866, 86, + 867, 873, 877, 86, 871, 86, 86, 872, 86, 86, + 86, 86, 86, 874, 876, 86, 884, 86, 880, 879, + 86, 86, 86, 878, 86, 86, 893, 161, 881, 891, + 883, 882, 86, 885, 86, 887, 886, 86, 894, 888, + 889, 890, 86, 86, 86, 86, 892, 86, 86, 86, - 891, 86, 890, 86, 86, 86, 896, 86, 86, 903, - 898, 86, 897, 899, 905, 86, 901, 170, 86, 900, - 902, 86, 904, 86, 86, 906, 86, 86, 912, 86, - 86, 913, 907, 908, 915, 86, 86, 86, 909, 914, - 910, 916, 86, 919, 86, 86, 917, 86, 911, 86, - 86, 921, 86, 925, 86, 86, 86, 922, 86, 86, - 86, 918, 926, 927, 920, 86, 86, 86, 86, 86, - 924, 86, 86, 928, 941, 923, 940, 942, 943, 86, - 930, 938, 939, 929, 86, 86, 931, 86, 944, 932, - 948, 945, 86, 933, 86, 946, 934, 86, 947, 950, + 899, 895, 86, 86, 897, 86, 86, 86, 898, 903, + 904, 896, 902, 900, 905, 86, 86, 901, 86, 86, + 907, 908, 86, 86, 909, 910, 86, 906, 911, 915, + 86, 86, 913, 917, 170, 86, 912, 86, 914, 916, + 86, 918, 86, 86, 86, 919, 924, 86, 86, 920, + 86, 925, 927, 86, 86, 86, 931, 921, 922, 926, + 928, 86, 86, 929, 923, 86, 86, 930, 86, 933, + 86, 937, 86, 86, 86, 86, 86, 86, 934, 86, + 938, 932, 939, 86, 86, 86, 958, 86, 936, 86, + 86, 940, 952, 935, 950, 953, 942, 86, 86, 941, - 86, 952, 86, 935, 936, 86, 937, 86, 86, 86, - 949, 86, 86, 960, 86, 963, 86, 969, 965, 86, - 951, 86, 953, 954, 967, 955, 961, 962, 956, 86, - 86, 975, 86, 957, 966, 968, 964, 972, 86, 958, - 959, 971, 973, 86, 86, 86, 86, 976, 86, 978, - 977, 974, 86, 86, 970, 86, 980, 979, 982, 86, - 981, 86, 86, 983, 86, 985, 86, 86, 986, 86, - 86, 990, 86, 86, 984, 989, 86, 86, 993, 86, - 86, 999, 86, 997, 1010, 86, 987, 991, 988, 86, - 992, 994, 995, 86, 1000, 1011, 86, 86, 998, 1001, + 86, 951, 943, 954, 86, 944, 956, 955, 957, 945, + 86, 959, 946, 86, 86, 86, 86, 964, 86, 947, + 948, 86, 949, 86, 960, 86, 972, 86, 86, 962, + 86, 86, 961, 979, 975, 977, 963, 86, 965, 966, + 86, 967, 976, 86, 968, 974, 973, 86, 86, 969, + 86, 978, 86, 983, 86, 970, 971, 984, 981, 980, + 996, 986, 985, 86, 86, 987, 86, 988, 86, 990, + 86, 989, 982, 86, 86, 991, 992, 994, 86, 993, + 86, 86, 995, 86, 86, 86, 86, 998, 86, 1002, + 86, 86, 86, 1001, 86, 86, 1005, 86, 86, 178, - 86, 996, 1002, 1003, 1004, 86, 86, 1006, 1007, 86, - 86, 1005, 86, 86, 86, 86, 86, 86, 1008, 86, - 86, 86, 1009, 1012, 1014, 86, 86, 1015, 1019, 86, - 86, 86, 86, 86, 1013, 1016, 1028, 1017, 86, 1020, - 1021, 1022, 86, 1023, 1018, 1024, 86, 1025, 86, 86, - 86, 1030, 86, 86, 86, 1026, 86, 1027, 1031, 1029, - 86, 86, 1036, 86, 1038, 1034, 1032, 1037, 86, 86, - 86, 86, 86, 1035, 86, 86, 1039, 1044, 86, 1033, - 1041, 86, 86, 1046, 86, 1045, 1047, 86, 1040, 1049, - 1043, 86, 86, 86, 1042, 86, 1048, 86, 86, 1050, + 997, 1009, 1007, 1010, 999, 1000, 1003, 86, 1004, 1012, + 1006, 1011, 86, 86, 1013, 86, 1015, 86, 1014, 1008, + 1017, 1019, 86, 86, 86, 86, 86, 86, 1018, 86, + 1021, 86, 1020, 1022, 1023, 86, 1016, 1024, 86, 1025, + 86, 86, 86, 86, 86, 86, 1027, 1032, 86, 1028, + 86, 1035, 86, 86, 86, 86, 86, 1036, 1026, 1033, + 1030, 1029, 1034, 86, 1031, 1038, 86, 86, 86, 86, + 86, 86, 1037, 1041, 1043, 1039, 1042, 86, 86, 1040, + 86, 86, 1044, 1045, 1049, 86, 1051, 1047, 86, 1050, + 86, 86, 86, 1048, 86, 1046, 1052, 86, 86, 1059, - 86, 86, 1051, 1060, 1055, 1057, 86, 86, 178, 86, - 86, 1052, 86, 1054, 1053, 1061, 1058, 86, 1065, 1059, - 1056, 86, 1062, 86, 1068, 86, 1063, 86, 1067, 86, - 86, 1064, 86, 86, 86, 1066, 86, 86, 1070, 1077, - 1072, 86, 1078, 1080, 86, 86, 86, 1069, 86, 86, - 1071, 86, 86, 1073, 86, 1075, 1074, 1076, 1079, 1083, - 1081, 1082, 1084, 86, 1087, 86, 86, 1085, 86, 86, - 1086, 1089, 1088, 86, 1091, 1090, 1092, 86, 86, 1096, - 1093, 86, 86, 1098, 86, 86, 86, 1094, 86, 86, - 1103, 1095, 86, 1100, 86, 1104, 170, 86, 86, 86, + 1054, 1057, 1060, 86, 86, 86, 86, 1053, 86, 1058, + 1062, 86, 1056, 86, 86, 86, 1055, 86, 86, 86, + 86, 86, 1070, 1073, 1068, 1061, 86, 1063, 1064, 86, + 1074, 1065, 86, 86, 1067, 1066, 86, 1071, 1075, 1072, + 1069, 86, 1078, 86, 86, 86, 86, 1077, 86, 1079, + 1081, 1076, 1082, 86, 86, 86, 86, 1080, 86, 86, + 86, 86, 1087, 1083, 1085, 1092, 1084, 1093, 1086, 1095, + 86, 86, 86, 86, 1094, 86, 1088, 1098, 1090, 1099, + 1089, 1091, 86, 86, 1096, 86, 1100, 86, 86, 86, + 86, 1107, 1097, 1108, 1104, 86, 1106, 86, 86, 86, - 1107, 1097, 1106, 86, 1099, 1101, 86, 1102, 1110, 1105, - 86, 86, 86, 86, 1108, 86, 86, 1109, 86, 1123, - 1124, 1126, 86, 86, 1114, 1111, 1113, 86, 86, 86, - 86, 86, 1128, 1115, 1112, 1131, 1116, 86, 1125, 86, - 1117, 86, 1118, 86, 1129, 1130, 1119, 86, 1120, 1148, - 86, 1133, 1127, 1121, 1139, 1132, 1134, 86, 1122, 1135, - 86, 1136, 86, 86, 1137, 86, 86, 1140, 86, 86, - 1143, 86, 86, 86, 86, 1142, 1138, 1141, 1149, 1150, - 1144, 1147, 1151, 1146, 86, 86, 1152, 86, 86, 1145, - 1153, 1154, 1157, 1155, 86, 86, 86, 86, 176, 86, + 1102, 1109, 86, 86, 1112, 86, 1101, 176, 1103, 86, + 86, 1105, 1114, 86, 86, 86, 1111, 1120, 1117, 1116, + 1110, 86, 1121, 170, 86, 1113, 86, 1115, 1123, 86, + 1124, 1118, 86, 1119, 86, 86, 1122, 86, 86, 1127, + 86, 86, 86, 86, 1140, 86, 86, 86, 1125, 1141, + 86, 1131, 1126, 86, 1128, 1130, 1143, 86, 86, 1165, + 1132, 1129, 1142, 1133, 86, 1146, 86, 1134, 86, 1135, + 1145, 1144, 1147, 1136, 86, 1137, 86, 86, 1150, 1148, + 1138, 86, 1149, 1151, 86, 1139, 1152, 86, 86, 86, + 1153, 1154, 86, 86, 1157, 86, 1156, 1160, 86, 86, - 86, 1166, 86, 1156, 86, 1158, 1165, 86, 1169, 86, - 1159, 86, 1160, 1167, 1168, 86, 1170, 1171, 1161, 1173, - 86, 86, 1176, 1162, 1163, 86, 86, 86, 86, 1172, - 1164, 1177, 86, 86, 1182, 86, 86, 1175, 86, 1174, - 1183, 1185, 86, 1179, 1178, 1181, 86, 86, 86, 1180, - 86, 1186, 86, 86, 1190, 1188, 86, 1191, 1184, 1189, - 86, 1187, 86, 86, 1196, 1193, 86, 86, 86, 86, - 86, 1194, 1192, 1199, 86, 1197, 86, 86, 86, 1195, - 175, 86, 86, 86, 86, 86, 1198, 1206, 1201, 1200, - 1203, 1204, 1205, 1208, 1207, 86, 1202, 86, 86, 86, + 1159, 86, 86, 1155, 1158, 1167, 1166, 1161, 1164, 1168, + 86, 86, 1163, 1169, 86, 86, 1162, 1170, 1171, 86, + 86, 1173, 86, 86, 86, 1183, 86, 86, 1186, 86, + 86, 86, 1172, 86, 86, 1182, 1187, 1174, 86, 1175, + 1184, 1185, 1188, 86, 1176, 86, 1177, 1189, 1193, 1190, + 86, 86, 1178, 86, 86, 1194, 86, 1179, 1180, 86, + 86, 1192, 1191, 1195, 1181, 1199, 86, 86, 1202, 86, + 1203, 1196, 1197, 1200, 86, 86, 86, 1198, 86, 1207, + 1201, 1205, 86, 86, 86, 86, 86, 1208, 86, 86, + 1213, 1206, 86, 1210, 1204, 1211, 86, 86, 1214, 86, - 1209, 86, 86, 86, 86, 1211, 86, 86, 1216, 1210, - 86, 1217, 1213, 1219, 86, 1218, 1212, 1215, 1221, 1214, - 86, 1220, 1223, 1222, 86, 86, 86, 1226, 86, 86, - 86, 1228, 1227, 86, 1229, 86, 86, 86, 1224, 1230, - 86, 86, 1225, 1231, 1237, 86, 1239, 86, 1232, 86, - 86, 1233, 86, 1235, 1241, 1234, 1236, 86, 86, 86, - 86, 1243, 1240, 86, 86, 1238, 86, 86, 1245, 1246, - 86, 1242, 1249, 86, 86, 1248, 1247, 86, 1250, 86, - 1244, 1255, 1251, 1252, 86, 1254, 86, 86, 1256, 86, - 1253, 86, 86, 1257, 1259, 86, 1260, 86, 86, 86, + 86, 86, 1209, 86, 1212, 1216, 86, 86, 86, 86, + 86, 1215, 1223, 1218, 1225, 1220, 1221, 1217, 1222, 86, + 86, 1219, 86, 86, 86, 1224, 1226, 86, 1229, 86, + 86, 86, 86, 1227, 86, 86, 1234, 1235, 86, 1236, + 1239, 1231, 1228, 1230, 1237, 1233, 86, 1232, 86, 1238, + 86, 86, 86, 1241, 86, 1244, 86, 1248, 86, 1240, + 1245, 86, 86, 1246, 1242, 86, 1247, 86, 1243, 86, + 1249, 86, 86, 1255, 1257, 86, 86, 86, 1250, 86, + 86, 1251, 1253, 86, 86, 1252, 1254, 1261, 1259, 86, + 1258, 1260, 1256, 86, 1263, 86, 86, 1262, 1264, 86, - 86, 1266, 1264, 1267, 1258, 86, 86, 86, 86, 86, - 1261, 1268, 86, 1265, 86, 1271, 1262, 1269, 1263, 1270, - 1274, 86, 86, 1272, 1276, 86, 86, 1275, 1273, 86, - 86, 86, 86, 86, 86, 86, 1281, 1282, 1277, 1278, - 86, 86, 86, 86, 1288, 1284, 1283, 1289, 86, 1279, - 86, 1280, 86, 86, 1286, 1292, 86, 1291, 86, 1285, - 86, 86, 1287, 1290, 1296, 86, 86, 86, 86, 86, - 86, 1302, 86, 1295, 1294, 1298, 86, 1293, 170, 86, - 86, 1303, 86, 1297, 1304, 86, 1299, 86, 86, 1301, - 86, 86, 1309, 170, 1300, 1307, 1306, 1308, 1305, 1310, + 86, 86, 86, 86, 1267, 1266, 1268, 86, 1270, 1273, + 86, 1265, 1269, 1272, 86, 86, 1274, 86, 86, 1271, + 86, 1277, 86, 1275, 86, 1278, 86, 86, 1276, 86, + 1282, 1284, 86, 1285, 1339, 86, 86, 86, 1279, 86, + 1286, 1280, 1283, 86, 1288, 1290, 1281, 86, 1287, 86, + 86, 86, 1289, 86, 1291, 1294, 1293, 86, 1296, 86, + 86, 86, 1295, 86, 86, 86, 86, 86, 86, 1297, + 1301, 1292, 1298, 86, 86, 86, 1302, 1303, 86, 1304, + 86, 86, 1299, 1308, 1300, 1309, 1305, 1306, 86, 86, + 86, 86, 86, 1311, 86, 1310, 86, 1307, 1312, 86, - 1311, 86, 86, 1313, 1314, 86, 86, 1315, 1312, 86, - 86, 1316, 86, 86, 1317, 86, 1319, 86, 1318, 1320, - 1321, 86, 86, 86, 86, 1327, 86, 86, 86, 1324, - 86, 86, 1322, 86, 86, 86, 1468, 1331, 1325, 1337, - 1323, 1328, 86, 1326, 86, 1330, 1329, 1333, 86, 1338, - 86, 1340, 86, 1332, 86, 1339, 1334, 86, 1335, 86, - 86, 1336, 1343, 1344, 1341, 86, 86, 86, 1342, 86, - 86, 1347, 86, 86, 1346, 1350, 86, 86, 1345, 1354, - 86, 1349, 1355, 1352, 86, 86, 1348, 1351, 86, 1356, - 86, 86, 86, 1358, 1359, 1353, 86, 86, 86, 86, + 1313, 1317, 86, 86, 1314, 86, 1315, 86, 86, 86, + 1316, 1319, 1323, 86, 1318, 86, 86, 1324, 170, 86, + 1325, 1326, 1320, 86, 86, 86, 86, 1322, 86, 86, + 1331, 86, 1321, 1328, 1365, 1330, 1335, 1332, 1327, 1329, + 1333, 86, 86, 1336, 86, 1337, 1334, 86, 86, 86, + 86, 86, 1338, 1340, 86, 86, 1343, 86, 1341, 86, + 86, 1349, 86, 86, 1342, 86, 1346, 86, 86, 1344, + 86, 86, 1347, 86, 1345, 1359, 1353, 1350, 1355, 1348, + 86, 1360, 1352, 1351, 86, 86, 86, 1356, 1354, 1357, + 1361, 1363, 1358, 1362, 86, 86, 86, 86, 86, 86, - 1360, 86, 86, 86, 86, 1357, 86, 1361, 1366, 86, - 1364, 1362, 86, 86, 1365, 1367, 1363, 86, 1371, 86, - 86, 1368, 86, 86, 1370, 1369, 86, 86, 1372, 1373, - 86, 1375, 86, 86, 1376, 1378, 1383, 1374, 86, 1377, - 86, 86, 86, 86, 86, 1379, 1386, 1381, 1384, 1389, - 1382, 86, 1380, 86, 1385, 86, 1406, 86, 86, 1388, - 1391, 1387, 86, 1390, 168, 1392, 86, 86, 1396, 1394, - 1395, 1404, 1393, 86, 1397, 86, 86, 1407, 1398, 86, - 86, 1399, 1400, 1410, 1405, 1408, 1401, 86, 1409, 86, - 86, 86, 1402, 86, 86, 1411, 1403, 86, 1412, 86, + 1364, 86, 86, 1369, 86, 1368, 86, 1372, 86, 1376, + 86, 86, 86, 1371, 1366, 1367, 1377, 1378, 1370, 1374, + 1373, 86, 86, 1375, 86, 86, 86, 1380, 1381, 86, + 86, 86, 86, 86, 1382, 86, 86, 86, 1386, 86, + 1388, 1379, 86, 86, 1383, 1384, 86, 1387, 1389, 1393, + 1385, 86, 86, 86, 1390, 86, 86, 1392, 1391, 86, + 86, 1394, 1395, 86, 1397, 86, 86, 1398, 1400, 1405, + 86, 1396, 1399, 86, 86, 86, 86, 86, 1401, 86, + 1403, 1406, 1408, 1404, 1407, 1402, 86, 86, 86, 1412, + 1413, 1411, 1410, 1409, 86, 1414, 86, 86, 1415, 86, - 1413, 86, 1415, 86, 86, 86, 1420, 1416, 1414, 1417, - 1422, 1418, 1419, 86, 86, 1425, 1426, 86, 86, 86, - 1486, 86, 86, 1421, 1427, 86, 1429, 1423, 86, 1428, - 86, 1430, 1424, 1431, 86, 1432, 86, 1433, 86, 1434, - 86, 1436, 1435, 1437, 1438, 86, 86, 1439, 1442, 1440, - 86, 1444, 86, 1441, 86, 86, 1445, 86, 86, 1443, - 1448, 1446, 86, 86, 86, 86, 86, 1454, 86, 1455, - 86, 1450, 1449, 86, 1456, 86, 1447, 86, 86, 1453, - 1458, 86, 1451, 1452, 1457, 86, 86, 1460, 1461, 86, - 86, 1459, 1465, 86, 1464, 1467, 86, 86, 86, 86, + 1418, 1416, 86, 86, 1429, 1505, 1428, 1417, 86, 1419, + 1426, 1427, 86, 1420, 86, 86, 1421, 1422, 86, 1430, + 1432, 1423, 86, 1433, 1431, 86, 86, 1424, 86, 1435, + 1434, 1425, 86, 1437, 86, 86, 86, 1438, 1442, 1439, + 86, 86, 86, 1436, 86, 86, 86, 1445, 86, 1443, + 1448, 1449, 86, 1450, 1441, 1440, 86, 86, 86, 1446, + 86, 1444, 1451, 86, 1447, 86, 1458, 86, 1457, 1452, + 86, 1459, 1460, 1461, 1453, 86, 1454, 86, 1455, 86, + 1456, 86, 1464, 1463, 86, 1467, 86, 1470, 1462, 86, + 1468, 86, 86, 1466, 1471, 1469, 86, 86, 86, 1465, - 1469, 86, 86, 1462, 1470, 1466, 1473, 86, 1475, 86, - 1472, 1463, 86, 1476, 86, 86, 86, 1471, 86, 1477, - 1480, 86, 1474, 86, 86, 86, 1482, 86, 86, 86, - 1484, 86, 1488, 86, 86, 166, 1478, 1479, 1481, 1490, - 1485, 86, 86, 1489, 1483, 1487, 1492, 1491, 86, 86, - 1493, 86, 1495, 1494, 86, 1497, 1496, 86, 86, 86, - 86, 86, 1498, 1503, 1504, 1500, 86, 1501, 86, 86, - 86, 1505, 1506, 86, 1502, 86, 1499, 1507, 86, 1510, - 86, 86, 86, 170, 86, 86, 1509, 1517, 1518, 86, - 1520, 86, 1508, 86, 86, 1519, 86, 86, 1514, 86, + 86, 1477, 86, 1478, 86, 1473, 1472, 86, 86, 86, + 86, 86, 1479, 86, 1476, 1481, 1474, 1475, 86, 86, + 1483, 86, 1480, 1482, 86, 1484, 1487, 1488, 86, 1490, + 86, 1485, 86, 86, 1491, 86, 1492, 86, 86, 1489, + 1493, 1496, 86, 86, 1486, 1498, 86, 1495, 86, 1499, + 86, 86, 86, 1503, 86, 1500, 1494, 86, 86, 86, + 1508, 1506, 86, 1497, 86, 86, 86, 1509, 86, 86, + 1511, 86, 1501, 1502, 1510, 86, 1515, 1504, 1513, 1507, + 86, 86, 1512, 86, 1514, 86, 1517, 86, 86, 86, + 1519, 1518, 1520, 1521, 1516, 86, 1522, 86, 86, 86, - 1512, 1511, 86, 86, 1515, 1521, 86, 86, 1516, 86, - 1528, 1522, 86, 86, 1525, 1533, 86, 1523, 86, 1524, - 1526, 1527, 86, 1532, 86, 86, 86, 1529, 1537, 1535, - 86, 1531, 86, 1538, 86, 1540, 86, 1530, 86, 86, - 1541, 86, 86, 86, 1536, 1534, 1546, 86, 1539, 1547, - 1542, 1548, 86, 1543, 1544, 86, 86, 1545, 1549, 1551, - 86, 1550, 1554, 1553, 1552, 86, 86, 1555, 86, 1557, - 86, 86, 86, 86, 1556, 1559, 1560, 86, 86, 86, - 86, 86, 1563, 86, 1558, 86, 1568, 1569, 86, 86, - 1561, 86, 86, 1562, 1565, 1572, 86, 1566, 1564, 1567, + 86, 1528, 1523, 1529, 1525, 1524, 1526, 86, 1532, 86, + 86, 86, 86, 1527, 86, 1530, 1531, 86, 86, 1536, + 86, 1533, 86, 86, 86, 86, 170, 86, 1538, 1535, + 86, 1544, 1545, 86, 1540, 86, 1534, 86, 86, 1546, + 1547, 1541, 1537, 1539, 86, 86, 86, 1542, 86, 1548, + 86, 86, 86, 1543, 86, 1549, 86, 1555, 86, 86, + 1552, 86, 86, 86, 1550, 1551, 1553, 1559, 1554, 1560, + 86, 1556, 86, 175, 86, 86, 1558, 1562, 1564, 1557, + 1563, 1566, 1561, 1565, 86, 86, 86, 86, 1569, 86, + 1570, 86, 86, 86, 1567, 1568, 1573, 1578, 1575, 1574, - 86, 86, 86, 1573, 86, 86, 1570, 86, 1571, 86, - 1575, 1574, 1579, 86, 86, 1576, 1580, 1577, 1581, 86, - 86, 1584, 86, 1578, 86, 1587, 86, 1588, 1583, 1589, - 1590, 86, 1582, 1586, 86, 86, 86, 1585, 1592, 86, - 1593, 86, 86, 86, 1597, 1591, 1598, 1599, 1596, 86, - 86, 165, 86, 86, 86, 1600, 86, 1594, 86, 1601, - 1602, 86, 86, 1595, 86, 1604, 1603, 1605, 86, 86, - 86, 86, 1610, 86, 86, 86, 1606, 1609, 86, 1613, - 86, 1616, 1607, 1612, 1608, 1618, 1617, 86, 86, 86, - 1619, 86, 1614, 1611, 86, 1621, 86, 86, 1624, 1615, + 86, 1571, 1576, 86, 1572, 86, 1577, 86, 1581, 1579, + 86, 86, 1583, 1582, 86, 86, 86, 86, 1580, 86, + 1586, 1587, 86, 86, 86, 170, 86, 1590, 86, 1585, + 86, 1595, 86, 86, 86, 1588, 1584, 1596, 1592, 1589, + 86, 1599, 86, 1591, 1593, 86, 1594, 86, 86, 86, + 1597, 86, 1600, 1598, 86, 86, 86, 86, 86, 1602, + 1606, 1601, 1608, 1603, 1604, 1607, 86, 86, 1611, 86, + 1605, 1612, 1609, 86, 1616, 1610, 86, 1615, 1613, 1617, + 86, 86, 1619, 86, 86, 86, 86, 86, 168, 86, + 1620, 1624, 1625, 1614, 1623, 1618, 86, 86, 86, 1626, - 86, 86, 86, 86, 1629, 1625, 86, 86, 1620, 86, - 86, 1630, 1632, 86, 86, 1622, 1623, 1635, 86, 1634, - 1626, 1628, 1627, 86, 86, 86, 86, 86, 1633, 86, - 1643, 86, 86, 1631, 86, 1641, 86, 86, 86, 1644, - 86, 1648, 86, 1636, 1637, 1638, 1639, 1642, 1640, 86, - 1645, 1652, 1647, 1649, 86, 86, 1646, 86, 1653, 86, - 1650, 1651, 86, 86, 1655, 86, 86, 86, 1656, 86, - 86, 1659, 1654, 1663, 86, 1664, 1665, 86, 1660, 86, - 86, 1657, 86, 1658, 1668, 1662, 86, 1661, 86, 86, - 1669, 86, 1666, 1667, 86, 1670, 86, 86, 1675, 1676, + 86, 1627, 1621, 86, 1628, 86, 1629, 86, 1622, 86, + 86, 86, 86, 1630, 1632, 86, 86, 86, 86, 1631, + 86, 1637, 86, 1633, 1636, 86, 1634, 1640, 86, 1643, + 1635, 86, 1641, 1639, 1644, 86, 1638, 1645, 86, 1648, + 86, 86, 1646, 86, 86, 86, 86, 1642, 86, 86, + 1652, 1647, 1656, 1651, 86, 86, 86, 1660, 86, 1649, + 1650, 1657, 86, 86, 86, 1653, 86, 1655, 1654, 1663, + 86, 86, 1662, 86, 1658, 86, 86, 86, 86, 86, + 1686, 1659, 86, 1661, 86, 1671, 86, 166, 86, 1664, + 1665, 1668, 1666, 86, 1670, 1667, 1672, 1676, 86, 1669, - 86, 86, 163, 1673, 86, 86, 86, 1672, 1671, 86, - 1679, 86, 1680, 1681, 86, 1677, 1674, 1683, 86, 86, - 86, 86, 1678, 1684, 1685, 86, 1682, 86, 86, 1689, - 1686, 1688, 86, 1691, 86, 86, 1690, 1687, 86, 86, - 86, 86, 1697, 86, 1695, 86, 86, 86, 86, 1692, - 86, 1703, 1698, 86, 1696, 86, 1693, 1694, 86, 86, - 86, 1700, 1709, 1699, 1706, 1708, 86, 1704, 1702, 86, - 86, 1711, 1701, 1705, 86, 1707, 86, 86, 86, 86, - 86, 1714, 1717, 86, 1716, 86, 170, 1713, 86, 1710, - 1719, 86, 86, 1718, 86, 86, 1712, 1715, 86, 1727, + 1675, 1673, 1677, 86, 86, 1674, 86, 86, 86, 1678, + 1679, 86, 86, 86, 1683, 86, 86, 1681, 1684, 86, + 1680, 1687, 86, 1693, 1682, 1691, 86, 86, 1688, 86, + 86, 1685, 1692, 86, 1694, 1689, 86, 1697, 1690, 86, + 86, 1696, 86, 1695, 1698, 86, 86, 1703, 1704, 86, + 86, 86, 86, 86, 1701, 86, 1708, 1707, 1709, 1699, + 1700, 86, 1711, 86, 86, 86, 1702, 86, 1705, 86, + 1712, 86, 1706, 1713, 86, 86, 86, 86, 1716, 86, + 86, 1710, 86, 1721, 86, 1714, 1717, 1715, 1719, 86, + 86, 86, 1727, 86, 86, 1722, 1718, 1720, 1725, 86, - 86, 86, 1720, 86, 86, 1722, 1721, 86, 1725, 1728, - 86, 1723, 1724, 1731, 86, 1733, 1732, 86, 86, 1742, - 1726, 1729, 86, 1730, 1735, 86, 1737, 1739, 86, 86, - 1736, 86, 86, 86, 1741, 86, 1744, 1734, 1738, 86, - 86, 1746, 1740, 86, 1747, 1743, 86, 86, 86, 86, - 86, 1752, 1751, 1745, 86, 86, 86, 86, 1759, 86, - 1748, 86, 1760, 1750, 86, 1749, 86, 1754, 86, 1761, - 1763, 1756, 1753, 86, 1757, 86, 1755, 86, 1764, 1796, - 1766, 1767, 86, 1768, 1765, 1762, 1758, 1769, 1773, 86, - 86, 86, 1771, 86, 86, 1770, 86, 1772, 86, 86, + 86, 86, 86, 1728, 1726, 1723, 86, 1733, 1724, 86, + 86, 86, 86, 1738, 86, 1730, 1736, 1729, 86, 86, + 86, 86, 1732, 1734, 1739, 86, 1731, 1737, 1735, 86, + 1741, 86, 86, 86, 86, 1745, 1744, 170, 1740, 1747, + 1743, 1742, 1748, 86, 86, 86, 1750, 1749, 86, 86, + 1751, 1746, 86, 1752, 86, 86, 86, 1759, 86, 86, + 165, 86, 86, 1754, 1760, 86, 1753, 1765, 1757, 1763, + 86, 1755, 1756, 86, 1764, 86, 1769, 1767, 1761, 86, + 1758, 1762, 86, 86, 1768, 1771, 86, 1773, 86, 86, + 86, 86, 86, 1766, 86, 86, 1775, 1776, 86, 1778, - 86, 86, 86, 1774, 86, 1780, 86, 1779, 1781, 86, - 86, 86, 1775, 1783, 86, 1782, 86, 86, 1776, 86, - 1777, 1785, 1778, 1786, 86, 86, 86, 1788, 86, 1784, - 1787, 86, 86, 86, 86, 86, 86, 1789, 1797, 86, - 86, 86, 1791, 86, 86, 1792, 1790, 1793, 86, 1802, - 1794, 1799, 1800, 86, 1798, 86, 1801, 86, 86, 1795, - 1804, 1803, 1808, 86, 86, 86, 86, 1806, 1805, 86, - 1810, 86, 1812, 1813, 86, 86, 86, 86, 1807, 86, - 1814, 1811, 86, 86, 1809, 1817, 1819, 86, 86, 1827, - 86, 1820, 1818, 1816, 1821, 1828, 86, 86, 1815, 1822, + 1772, 86, 1779, 1770, 86, 86, 86, 86, 1774, 1780, + 1783, 86, 1784, 86, 86, 1791, 86, 86, 1777, 1793, + 1782, 86, 1781, 86, 1785, 1786, 1788, 86, 86, 1789, + 86, 86, 1792, 1798, 1787, 1794, 1796, 1795, 1799, 86, + 1800, 1790, 1797, 1801, 86, 86, 86, 86, 1803, 86, + 1802, 86, 1804, 1805, 86, 86, 86, 1807, 86, 86, + 1806, 86, 1812, 1813, 1811, 86, 86, 1815, 86, 86, + 1814, 86, 1808, 86, 86, 1809, 1817, 86, 1810, 1818, + 86, 86, 1819, 86, 86, 86, 86, 86, 86, 1816, + 86, 86, 1820, 1829, 1828, 86, 86, 86, 1823, 1824, - 1826, 86, 1823, 86, 86, 86, 86, 1824, 1831, 1832, - 86, 86, 86, 1825, 86, 1829, 1835, 1833, 86, 1830, - 86, 86, 1844, 1836, 86, 1834, 86, 86, 86, 1839, - 1838, 1837, 86, 1841, 86, 1843, 1842, 1845, 86, 86, - 1840, 86, 86, 1851, 86, 1847, 86, 1846, 1852, 86, - 86, 1853, 1848, 1849, 1854, 86, 1857, 1850, 86, 86, - 86, 86, 86, 1861, 1860, 1865, 86, 86, 1856, 1855, - 1859, 86, 86, 86, 1858, 1863, 1869, 1862, 1864, 86, - 86, 1870, 86, 86, 161, 1866, 86, 1871, 1874, 1875, - 1868, 86, 1867, 1878, 1872, 86, 1877, 86, 86, 86, + 1825, 1821, 86, 1822, 1834, 1826, 86, 86, 1831, 1832, + 86, 86, 86, 1827, 1830, 1833, 86, 1840, 86, 86, + 86, 86, 86, 1836, 86, 1842, 1835, 86, 1844, 86, + 1838, 1837, 86, 1839, 1843, 86, 1845, 86, 1846, 1841, + 86, 86, 86, 86, 1849, 86, 86, 1851, 86, 1858, + 1848, 1852, 1850, 1847, 1853, 1859, 86, 1854, 1855, 1860, + 86, 86, 86, 1856, 86, 1863, 1862, 1864, 86, 86, + 1857, 86, 86, 1861, 86, 1868, 1867, 1865, 86, 1869, + 86, 86, 86, 86, 86, 1877, 1878, 86, 1866, 86, + 1872, 86, 1874, 1876, 86, 1875, 1871, 1870, 86, 86, - 1881, 86, 1873, 1879, 1876, 1880, 86, 1882, 86, 86, - 1885, 86, 86, 1889, 86, 1887, 86, 86, 86, 86, - 86, 1888, 1890, 1884, 1886, 86, 86, 86, 1883, 1894, - 86, 86, 1901, 1893, 1899, 86, 1891, 1892, 86, 1895, - 1896, 1902, 86, 86, 1897, 1898, 86, 86, 1904, 86, - 86, 1908, 86, 86, 1910, 1903, 1900, 86, 86, 86, - 86, 1914, 86, 1905, 1906, 86, 1909, 86, 86, 1907, - 86, 1916, 86, 1917, 1912, 1918, 86, 1913, 86, 1911, - 86, 1919, 170, 86, 86, 1915, 1923, 1920, 86, 1922, - 1926, 86, 86, 86, 1924, 1921, 1930, 86, 86, 1925, + 1884, 1873, 86, 86, 86, 1885, 86, 1880, 1886, 1879, + 86, 86, 86, 1882, 86, 1890, 1881, 86, 1883, 86, + 86, 1894, 1887, 86, 1893, 86, 1892, 1891, 1898, 1888, + 1889, 86, 86, 86, 1896, 1895, 1902, 1897, 86, 86, + 86, 1903, 86, 86, 1908, 86, 1910, 86, 1907, 1899, + 86, 1901, 1904, 1900, 1905, 1911, 86, 86, 86, 86, + 1914, 86, 1906, 1909, 1912, 86, 86, 1918, 86, 86, + 1913, 1915, 1917, 86, 1922, 86, 86, 1916, 1920, 86, + 86, 1919, 86, 86, 1921, 86, 86, 1923, 1924, 86, + 1926, 1927, 1928, 86, 86, 1925, 86, 86, 1929, 1934, - 86, 86, 86, 86, 1928, 1932, 86, 1927, 86, 86, - 1937, 86, 1929, 1933, 1931, 1934, 86, 1940, 1941, 86, - 1938, 1935, 86, 1943, 86, 1942, 1936, 1939, 86, 86, - 1946, 1947, 86, 1944, 86, 86, 86, 1949, 1945, 86, - 86, 86, 1950, 86, 86, 86, 1948, 86, 86, 86, - 1955, 86, 1956, 86, 86, 86, 1960, 1957, 86, 86, - 1951, 1953, 1954, 1952, 1959, 1958, 86, 1961, 86, 86, - 1967, 1964, 86, 1966, 1963, 1968, 86, 1969, 1965, 86, - 1962, 86, 86, 86, 86, 86, 1975, 86, 1978, 86, - 1970, 1971, 1979, 86, 1980, 86, 86, 1973, 1972, 1976, + 86, 86, 1930, 1932, 86, 1936, 1937, 1931, 1939, 86, + 1933, 86, 86, 86, 1938, 1943, 86, 1940, 86, 1945, + 86, 1935, 1941, 86, 86, 86, 86, 1949, 86, 86, + 86, 1944, 1942, 86, 1951, 86, 86, 86, 1952, 1947, + 86, 1954, 1946, 86, 1948, 1955, 1956, 1957, 86, 1950, + 86, 170, 86, 1960, 1958, 1953, 86, 1959, 1963, 86, + 86, 86, 86, 1961, 1967, 86, 86, 1962, 86, 86, + 86, 86, 1965, 1969, 86, 1964, 1968, 1974, 86, 86, + 1966, 1970, 1971, 86, 163, 1977, 1975, 1972, 1978, 86, + 86, 1973, 86, 1979, 1980, 86, 1976, 1981, 86, 1983, - 86, 1977, 1974, 1982, 86, 86, 1983, 1986, 86, 1981, - 86, 86, 1988, 86, 1987, 86, 1989, 1984, 86, 1990, - 1992, 1985, 1995, 86, 86, 86, 86, 1994, 86, 1991, - 86, 1998, 86, 86, 86, 1997, 86, 86, 2002, 86, - 1993, 2001, 86, 86, 2003, 2004, 86, 86, 1996, 1999, - 86, 86, 2012, 86, 2000, 2005, 2006, 2007, 86, 2014, - 2010, 86, 2008, 86, 2015, 86, 2009, 2011, 2017, 86, - 2013, 2018, 86, 2021, 2019, 2016, 86, 86, 86, 86, - 2025, 86, 86, 86, 2027, 2022, 86, 2020, 86, 86, - 2030, 2031, 86, 86, 2033, 86, 86, 2023, 86, 2024, + 1984, 86, 86, 86, 86, 86, 1986, 1982, 86, 86, + 86, 1987, 86, 86, 1985, 86, 86, 86, 1992, 86, + 1993, 86, 86, 1988, 86, 1994, 1997, 86, 1990, 1995, + 1991, 1989, 2001, 1998, 1996, 86, 86, 2005, 86, 2002, + 2003, 2006, 2000, 86, 86, 86, 1999, 86, 86, 86, + 86, 2004, 2012, 86, 86, 86, 2015, 2016, 86, 2017, + 86, 2010, 86, 2008, 2007, 2019, 86, 2009, 2013, 2011, + 2014, 86, 2020, 2018, 86, 2023, 86, 86, 2025, 86, + 2027, 2024, 2026, 2021, 86, 86, 86, 2029, 86, 86, + 2032, 86, 2031, 86, 86, 2022, 86, 2035, 86, 86, - 86, 86, 2039, 86, 86, 2038, 2028, 2035, 2026, 2036, - 2029, 86, 86, 2032, 86, 86, 86, 86, 2045, 86, - 86, 2034, 2037, 2042, 2043, 2040, 86, 2041, 2049, 86, - 86, 2048, 2052, 86, 86, 2053, 2047, 2051, 86, 86, - 2044, 2055, 2056, 86, 86, 2046, 86, 86, 86, 2050, - 86, 2057, 86, 2058, 86, 86, 86, 2062, 2054, 86, - 2065, 2066, 86, 86, 2061, 2067, 86, 86, 2059, 2060, - 2070, 86, 86, 2063, 86, 86, 86, 2069, 2075, 86, - 2074, 86, 2064, 2068, 86, 86, 2071, 86, 2080, 2079, - 86, 86, 2072, 86, 2084, 2076, 2073, 2081, 86, 2077, + 86, 2034, 86, 2028, 86, 2039, 86, 2038, 86, 86, + 2041, 2040, 86, 2030, 2033, 2036, 86, 86, 2049, 86, + 2037, 2042, 2043, 2044, 86, 2051, 2047, 86, 2045, 86, + 2052, 86, 2046, 86, 86, 2055, 86, 2048, 86, 2050, + 2058, 2053, 86, 86, 2054, 2056, 86, 2059, 2062, 86, + 86, 2057, 86, 2064, 86, 86, 86, 2067, 2068, 86, + 86, 86, 2060, 86, 2061, 2070, 86, 86, 86, 86, + 2077, 86, 2072, 2075, 2065, 86, 2063, 2066, 2073, 86, + 2069, 86, 86, 86, 2076, 86, 2071, 86, 2074, 86, + 2080, 86, 2083, 86, 2081, 2087, 2078, 2079, 2086, 86, - 2078, 86, 2082, 2083, 86, 2087, 86, 86, 86, 2085, - 86, 86, 86, 2094, 2086, 2091, 2097, 86, 86, 86, - 86, 2089, 2088, 86, 2098, 2096, 86, 2090, 86, 86, - 2099, 2092, 2093, 2095, 86, 2104, 86, 2100, 2105, 86, - 2101, 2106, 2108, 2109, 86, 2102, 2107, 86, 86, 86, - 86, 86, 2113, 86, 2103, 2111, 86, 86, 86, 86, - 2115, 2118, 2120, 2112, 86, 2114, 86, 86, 86, 2116, - 2110, 86, 170, 86, 86, 86, 86, 2123, 86, 2127, - 86, 2128, 86, 2129, 2117, 2121, 2119, 2124, 2125, 2130, - 86, 2122, 2126, 2131, 86, 2133, 86, 86, 86, 86, + 2090, 86, 86, 86, 86, 2085, 86, 2082, 86, 2089, + 2091, 2093, 86, 2084, 2094, 86, 86, 86, 86, 2088, + 86, 2095, 2092, 86, 2097, 86, 2100, 2096, 86, 86, + 2103, 2098, 2099, 2104, 2105, 86, 86, 86, 86, 86, + 86, 2108, 86, 2101, 86, 2113, 86, 86, 86, 2112, + 86, 2107, 86, 86, 2102, 2106, 2117, 2109, 2110, 86, + 2118, 86, 2120, 2115, 2111, 86, 2114, 2119, 86, 2116, + 2121, 86, 2122, 2125, 86, 86, 2123, 86, 86, 86, + 86, 2124, 86, 2132, 2129, 86, 86, 86, 86, 86, + 86, 2127, 2135, 86, 2137, 86, 2126, 2128, 86, 2138, - 2132, 86, 2134, 2135, 86, 2136, 2137, 86, 86, 2138, - 2139, 86, 2141, 86, 86, 86, 86, 2145, 86, 86, - 2140, 2144, 86, 86, 2146, 2142, 2143, 2147, 2148, 86, - 2150, 86, 2149, 86, 86, 86, 86, 86, 86, 2151, - 2155, 2157, 2152, 2156, 86, 86, 86, 86, 86, 86, - 2162, 86, 2153, 2159, 2154, 2158, 86, 86, 2167, 86, - 2161, 2163, 86, 2160, 86, 2165, 2164, 86, 2168, 86, - 86, 2166, 2171, 2174, 2169, 2173, 86, 86, 86, 86, - 86, 2179, 2172, 86, 86, 2170, 2182, 86, 86, 2181, - 2183, 86, 86, 2175, 2176, 2177, 2180, 2178, 2185, 86, + 2130, 2134, 2131, 2133, 86, 86, 2136, 86, 2139, 86, + 2143, 2144, 86, 2158, 2140, 2145, 86, 86, 2141, 2146, + 2148, 2149, 2151, 2142, 2147, 86, 86, 86, 86, 86, + 2153, 86, 86, 86, 86, 2150, 86, 2155, 86, 2157, + 2152, 2154, 2159, 2156, 2161, 2162, 86, 86, 86, 86, + 86, 170, 86, 2163, 2160, 86, 2165, 86, 86, 2171, + 86, 2166, 2169, 2170, 2167, 2172, 86, 2164, 2173, 86, + 86, 2175, 86, 86, 2168, 86, 86, 86, 2176, 2178, + 2177, 86, 86, 86, 86, 2179, 2180, 2181, 86, 2183, + 2174, 86, 86, 86, 2182, 2184, 86, 2186, 2187, 86, - 2184, 86, 2186, 86, 86, 2189, 86, 86, 86, 86, - 2188, 86, 86, 2190, 86, 2193, 86, 86, 2194, 86, - 86, 86, 86, 86, 86, 86, 2187, 86, 2192, 2191, - 2202, 2196, 2197, 2195, 2199, 86, 2198, 2204, 2201, 2206, - 2207, 86, 2200, 2203, 86, 86, 86, 86, 2205, 2210, - 2211, 86, 86, 2208, 2214, 86, 2213, 86, 86, 86, - 86, 86, 2216, 86, 2209, 2217, 86, 2212, 2218, 86, - 2220, 2222, 86, 2215, 2224, 2221, 86, 86, 2219, 2226, - 86, 86, 86, 86, 2229, 2223, 2228, 86, 2230, 86, - 2225, 86, 2231, 2234, 86, 86, 86, 86, 86, 86, + 86, 2189, 2188, 2185, 86, 2190, 86, 2191, 2192, 86, + 86, 86, 86, 86, 86, 86, 2199, 2197, 86, 2194, + 2198, 86, 86, 86, 86, 2204, 2193, 2201, 86, 2195, + 86, 2196, 2200, 86, 86, 2209, 2205, 2203, 86, 2202, + 86, 86, 2207, 86, 86, 86, 2206, 2210, 2213, 86, + 2208, 86, 2211, 2215, 86, 86, 86, 2214, 2216, 86, + 86, 2217, 2212, 2221, 86, 2218, 2219, 86, 2223, 86, + 2220, 86, 2226, 2224, 2225, 86, 2222, 2227, 86, 86, + 2228, 86, 2231, 2229, 86, 86, 86, 2230, 86, 86, + 2235, 2232, 86, 86, 86, 86, 86, 86, 86, 86, - 2235, 86, 86, 2227, 86, 2240, 2237, 2232, 2238, 2236, - 86, 2233, 2310, 2239, 86, 2242, 86, 2241, 2243, 86, - 86, 2244, 2246, 2247, 86, 2245, 86, 86, 86, 86, - 2249, 2248, 2251, 86, 2250, 2253, 86, 86, 2255, 2254, - 2252, 86, 2256, 86, 86, 86, 86, 86, 2262, 2258, - 2264, 2259, 2257, 86, 2260, 2265, 86, 2261, 86, 86, - 86, 86, 86, 86, 86, 2266, 2270, 2267, 2263, 2271, - 86, 2268, 2269, 2275, 86, 2272, 86, 86, 86, 2274, - 86, 86, 86, 2273, 86, 86, 86, 86, 86, 86, - 2284, 86, 2279, 2281, 2276, 2277, 2278, 2280, 2282, 86, + 86, 2236, 86, 86, 2249, 86, 2234, 2233, 2238, 2239, + 2240, 2241, 86, 2243, 2237, 2248, 86, 86, 2244, 86, + 2242, 86, 2246, 2247, 2252, 86, 86, 86, 2256, 86, + 2253, 2245, 2255, 86, 2250, 86, 86, 2251, 2258, 2254, + 86, 86, 2259, 86, 86, 2260, 2264, 2257, 86, 86, + 2262, 2266, 86, 86, 2267, 2263, 86, 86, 2261, 2269, + 86, 2271, 86, 2268, 2272, 86, 86, 2265, 86, 86, + 2273, 2274, 2277, 86, 86, 86, 2281, 86, 86, 2270, + 2278, 2282, 86, 86, 86, 2280, 2275, 2279, 86, 2276, + 86, 2283, 2286, 86, 86, 2287, 2284, 86, 2285, 2290, - 86, 86, 2301, 86, 2283, 2285, 2291, 2287, 2286, 2289, - 2290, 86, 86, 2293, 2295, 86, 86, 2297, 86, 86, - 2288, 2294, 86, 86, 86, 2296, 2299, 2303, 2300, 2292, - 170, 2305, 3387, 86, 2307, 2308, 2306, 86, 2298, 86, - 86, 86, 2309, 2302, 86, 2312, 86, 86, 2313, 86, - 2317, 86, 2304, 86, 2318, 86, 86, 2321, 2316, 86, - 86, 86, 2314, 86, 2311, 2322, 2325, 2319, 86, 2323, - 2324, 86, 2326, 2315, 2320, 86, 86, 86, 86, 2327, - 86, 2329, 86, 86, 2331, 86, 86, 2332, 86, 86, - 2335, 86, 86, 86, 2341, 86, 2328, 2339, 86, 86, + 86, 86, 2291, 2288, 86, 86, 2292, 2296, 86, 2294, + 2289, 86, 86, 2298, 86, 2299, 86, 2295, 2293, 86, + 86, 86, 86, 2297, 2301, 2300, 86, 86, 2305, 2307, + 2303, 86, 86, 2304, 2308, 86, 86, 86, 2302, 2309, + 2310, 86, 2313, 2306, 2311, 86, 2314, 86, 2312, 86, + 86, 2318, 86, 86, 86, 86, 86, 86, 2315, 2317, + 86, 86, 2325, 86, 86, 2321, 86, 2316, 86, 86, + 2323, 2319, 2320, 2326, 2329, 2324, 2327, 86, 86, 86, + 2322, 86, 2330, 2328, 86, 2332, 2337, 2331, 86, 2335, + 2334, 86, 2340, 86, 86, 86, 2336, 86, 2333, 86, - 2330, 2334, 2342, 86, 2337, 86, 2333, 2336, 2344, 86, - 86, 2338, 86, 86, 2343, 2340, 86, 2349, 86, 2352, - 86, 86, 2347, 86, 86, 86, 86, 2346, 86, 2350, - 86, 2345, 2348, 2353, 86, 86, 2351, 86, 86, 86, - 2354, 86, 2355, 2362, 86, 86, 2366, 2356, 2369, 2358, - 2357, 2360, 2364, 86, 2363, 2359, 2361, 2367, 86, 2365, - 86, 86, 86, 2434, 86, 2368, 86, 2373, 2374, 86, - 86, 86, 2375, 86, 2370, 86, 2371, 2372, 2376, 86, - 86, 2379, 2380, 2382, 86, 2381, 2377, 86, 2378, 2383, - 86, 86, 2384, 86, 86, 86, 2385, 2389, 86, 2390, + 2339, 2342, 86, 2341, 86, 86, 86, 170, 2345, 161, + 2346, 2349, 2347, 2338, 2344, 2343, 2351, 86, 2353, 86, + 2354, 2352, 86, 86, 86, 2348, 86, 86, 86, 2350, + 2355, 2356, 2358, 86, 86, 2359, 86, 2362, 86, 2357, + 2363, 86, 86, 2364, 2367, 86, 86, 86, 2365, 2360, + 86, 2368, 86, 2369, 2370, 86, 2366, 86, 2372, 86, + 2361, 86, 2371, 2373, 86, 2374, 86, 2376, 86, 86, + 2375, 86, 86, 2378, 86, 86, 2381, 86, 86, 86, + 2387, 86, 86, 2385, 86, 86, 2377, 2380, 2388, 86, + 2383, 86, 2379, 2382, 2390, 86, 86, 2384, 86, 86, - 86, 86, 2392, 86, 86, 2394, 86, 2388, 86, 3387, - 86, 2397, 86, 2386, 2387, 2396, 2398, 86, 86, 86, - 2391, 86, 2393, 2395, 86, 86, 2404, 86, 2400, 86, - 2403, 86, 2399, 2406, 86, 2401, 86, 86, 86, 2410, - 2409, 86, 2408, 2402, 2412, 86, 86, 86, 2405, 2407, - 86, 86, 2415, 86, 2411, 2418, 86, 86, 86, 86, - 2413, 2414, 2416, 86, 2423, 86, 86, 2422, 86, 86, - 2417, 2425, 86, 2419, 2421, 2428, 86, 2424, 86, 86, - 2420, 86, 86, 2426, 2427, 2430, 86, 2435, 86, 86, - 2441, 2437, 2429, 2431, 86, 86, 86, 2436, 2438, 2432, + 2389, 2386, 86, 2395, 2398, 86, 86, 2393, 2391, 2392, + 86, 86, 2396, 86, 2399, 2394, 86, 86, 86, 86, + 2397, 86, 86, 86, 86, 2412, 86, 86, 86, 2400, + 2401, 2406, 2411, 2413, 86, 2409, 2402, 2404, 2405, 2408, + 2403, 2410, 2407, 86, 86, 86, 86, 2415, 2414, 86, + 86, 2419, 2420, 86, 86, 86, 2421, 3456, 2416, 86, + 2417, 86, 2418, 2422, 86, 86, 2425, 86, 2428, 86, + 2423, 86, 2424, 2429, 86, 86, 2426, 86, 86, 2427, + 2430, 2432, 2431, 2435, 86, 2436, 86, 86, 2438, 86, + 2434, 2433, 86, 2440, 86, 86, 86, 2443, 86, 86, - 2433, 86, 86, 86, 86, 86, 2442, 2443, 2444, 86, - 2448, 86, 86, 2439, 86, 2440, 86, 2446, 2453, 2450, - 86, 2451, 2455, 86, 86, 86, 2445, 2452, 86, 86, - 2447, 86, 86, 86, 2456, 2460, 2457, 2449, 2459, 86, - 86, 2454, 2461, 86, 86, 86, 86, 2539, 2458, 2462, - 2466, 2467, 2463, 2464, 86, 86, 86, 86, 2468, 2465, - 86, 2471, 2472, 86, 2470, 86, 2469, 86, 86, 86, - 2473, 170, 2475, 86, 2476, 86, 2477, 86, 2474, 2482, - 86, 86, 86, 2480, 86, 2478, 86, 2479, 86, 86, - 2484, 2481, 2483, 86, 2485, 86, 2613, 86, 2489, 86, + 2442, 2444, 86, 86, 86, 86, 2437, 86, 86, 86, + 2439, 2441, 2446, 2445, 2450, 2451, 86, 2453, 86, 2448, + 86, 2447, 86, 86, 2457, 86, 2449, 2452, 2455, 86, + 2459, 86, 2456, 86, 86, 86, 2462, 86, 2454, 2458, + 2465, 86, 86, 86, 2460, 86, 86, 86, 2461, 86, + 2463, 2469, 2470, 86, 2472, 86, 2464, 86, 2475, 86, + 2468, 86, 2466, 86, 86, 2471, 2467, 86, 86, 86, + 2473, 2477, 2474, 86, 2482, 86, 86, 2478, 2484, 86, + 86, 2476, 2485, 2488, 2483, 2479, 2480, 86, 86, 86, + 86, 86, 2489, 2490, 86, 2481, 2491, 2486, 86, 2487, - 2486, 2487, 2490, 2493, 86, 2488, 86, 2494, 2491, 2495, - 86, 2492, 86, 86, 2498, 2496, 2499, 86, 2497, 86, - 86, 86, 86, 2501, 86, 86, 2500, 86, 2503, 86, - 86, 2507, 2508, 2502, 86, 2505, 86, 2504, 86, 2510, - 86, 86, 86, 86, 2511, 2512, 2513, 86, 2506, 86, - 2509, 86, 2515, 86, 2514, 2519, 86, 2518, 86, 86, - 2516, 2517, 86, 86, 2521, 86, 86, 86, 86, 2528, - 2525, 2520, 86, 2527, 86, 86, 86, 86, 2529, 2524, - 86, 86, 2522, 2523, 86, 2533, 86, 2526, 86, 86, - 86, 2538, 2530, 2537, 86, 2531, 2532, 86, 2535, 86, + 86, 86, 86, 2493, 86, 2495, 2497, 2498, 2500, 86, + 2501, 86, 2492, 86, 86, 2494, 86, 2504, 2505, 2499, + 86, 86, 86, 86, 2496, 2506, 2503, 86, 86, 86, + 2502, 2509, 86, 86, 86, 2508, 2510, 2515, 2511, 2516, + 86, 2512, 2513, 86, 2517, 86, 2507, 86, 2514, 86, + 86, 86, 2521, 86, 2522, 86, 2523, 86, 2526, 2520, + 86, 170, 2525, 86, 2524, 86, 2527, 2518, 86, 2519, + 2532, 86, 86, 86, 86, 86, 86, 86, 86, 2543, + 86, 2530, 2534, 2528, 2531, 2529, 2535, 2533, 2538, 86, + 86, 2536, 2537, 2539, 2540, 86, 86, 2544, 2541, 2545, - 2536, 2540, 2534, 2541, 2542, 86, 2543, 86, 86, 2546, - 2544, 2548, 86, 86, 86, 2545, 2547, 86, 2550, 86, - 2552, 86, 86, 2551, 86, 2549, 86, 86, 86, 86, - 86, 86, 2556, 2562, 2558, 2559, 2560, 86, 2554, 86, - 2553, 86, 2555, 2561, 86, 86, 2563, 2564, 86, 86, - 86, 86, 86, 2566, 2557, 2568, 86, 86, 2571, 86, - 2572, 2573, 2569, 2565, 86, 2576, 86, 86, 2567, 2570, - 86, 86, 3387, 2577, 2574, 86, 86, 2580, 86, 2575, - 2581, 86, 86, 2582, 86, 86, 86, 86, 2586, 2585, - 2578, 86, 86, 2579, 2584, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 2546, 2548, 2549, 2542, 2547, 86, + 86, 86, 86, 2551, 86, 86, 2552, 86, 2550, 86, + 2553, 2558, 2554, 86, 2557, 86, 86, 86, 86, 2555, + 86, 2560, 2561, 2562, 2563, 86, 2556, 86, 86, 2559, + 86, 86, 2564, 86, 86, 2569, 86, 2565, 2568, 2566, + 86, 86, 86, 86, 86, 2571, 2570, 86, 2575, 86, + 2578, 2567, 86, 86, 2577, 86, 86, 2574, 2579, 86, + 86, 2572, 2573, 86, 86, 2583, 86, 2576, 86, 2588, + 86, 2580, 86, 2587, 2581, 86, 2585, 86, 2582, 2590, + 2589, 86, 2586, 86, 2584, 86, 2593, 86, 86, 2598, - 2583, 2587, 2590, 2593, 2589, 2588, 2594, 86, 2595, 86, - 2596, 86, 2597, 86, 86, 2591, 2592, 2599, 86, 86, - 2601, 86, 2602, 2600, 86, 86, 2598, 86, 86, 2607, - 86, 86, 2609, 86, 2610, 86, 2603, 2604, 86, 86, - 86, 86, 86, 86, 2606, 86, 86, 2605, 2616, 2611, - 2608, 2612, 2614, 2619, 86, 2620, 86, 86, 86, 86, - 86, 2615, 2617, 86, 86, 2618, 2627, 170, 86, 2629, - 86, 2623, 86, 86, 2625, 86, 86, 2622, 86, 2628, - 86, 2630, 2621, 2624, 86, 2626, 86, 2636, 2631, 3387, - 2632, 86, 2634, 86, 2633, 86, 2638, 86, 2639, 2647, + 2591, 2594, 86, 2596, 86, 86, 2595, 2592, 2597, 2599, + 2600, 86, 86, 2602, 86, 86, 86, 86, 86, 86, + 86, 2601, 2606, 86, 86, 2611, 86, 86, 2609, 2610, + 2604, 2612, 86, 2603, 2605, 86, 2613, 86, 2614, 86, + 86, 2608, 86, 2615, 2617, 2607, 86, 86, 86, 2619, + 86, 2622, 86, 86, 86, 2624, 2623, 2616, 86, 2618, + 2620, 86, 2621, 2627, 86, 86, 86, 86, 2628, 2626, + 86, 2625, 86, 2631, 2632, 86, 86, 2629, 86, 2635, + 86, 2633, 2637, 2636, 2630, 2634, 86, 86, 86, 86, + 86, 86, 86, 2641, 2645, 86, 86, 2644, 2646, 86, - 2637, 2635, 2640, 86, 2641, 86, 86, 2642, 86, 2643, - 86, 2644, 86, 2645, 86, 86, 86, 2649, 86, 86, - 86, 86, 86, 2646, 2655, 86, 86, 2653, 86, 2648, - 86, 2659, 86, 2650, 2660, 86, 86, 86, 2651, 2652, - 2654, 2656, 2661, 2657, 2658, 2663, 2664, 86, 86, 2666, - 86, 86, 86, 86, 2662, 2667, 86, 2665, 86, 2669, - 86, 86, 2675, 86, 2676, 86, 86, 86, 2670, 2668, - 2680, 86, 86, 86, 2671, 86, 2672, 2673, 2679, 2674, - 2681, 86, 2682, 86, 86, 2678, 2677, 86, 86, 86, - 2684, 2683, 2687, 86, 86, 86, 86, 2691, 2686, 2690, + 2638, 2639, 2640, 2647, 86, 2648, 86, 86, 2649, 2642, + 86, 2643, 86, 2652, 86, 2651, 86, 2653, 86, 86, + 86, 86, 86, 86, 86, 2650, 2654, 2660, 86, 2662, + 86, 2656, 2663, 86, 86, 2664, 86, 86, 2655, 2659, + 2657, 2661, 2658, 2666, 86, 86, 2665, 86, 86, 2667, + 2669, 2672, 86, 86, 2674, 86, 86, 86, 86, 86, + 86, 170, 2673, 86, 2668, 86, 2683, 2670, 2671, 86, + 86, 2677, 2681, 2682, 2679, 86, 86, 2676, 2684, 86, + 86, 86, 2675, 2678, 86, 2680, 86, 2690, 86, 86, + 2685, 2686, 86, 2692, 2693, 2694, 86, 2687, 2695, 86, - 2692, 86, 2685, 86, 86, 2693, 2694, 86, 86, 2688, - 86, 86, 86, 2689, 86, 2695, 86, 2696, 86, 2700, - 3387, 86, 2698, 2697, 2704, 2705, 86, 86, 86, 2708, - 86, 2699, 2701, 86, 86, 2702, 86, 86, 2703, 86, - 2711, 86, 2706, 2713, 2709, 86, 2707, 2714, 86, 2710, - 86, 86, 2712, 86, 2715, 2719, 86, 86, 86, 86, - 2716, 86, 2722, 2723, 86, 2720, 2721, 2725, 86, 86, - 2717, 2718, 86, 86, 2726, 86, 86, 2728, 2724, 2731, - 86, 2727, 86, 2732, 86, 2729, 2734, 86, 86, 86, - 86, 86, 2739, 86, 86, 2730, 86, 2735, 2733, 2737, + 2691, 86, 2688, 2700, 2689, 86, 2696, 86, 2697, 86, + 2698, 86, 86, 86, 86, 86, 86, 86, 86, 2699, + 86, 86, 2709, 3456, 86, 86, 2707, 2702, 86, 2713, + 2701, 86, 2704, 2703, 2714, 86, 2706, 2705, 2708, 86, + 86, 2710, 2711, 2712, 86, 2715, 2718, 86, 86, 2717, + 2720, 86, 86, 2719, 86, 86, 86, 86, 86, 86, + 86, 2716, 2723, 2729, 86, 86, 2721, 2730, 86, 2724, + 2722, 86, 86, 86, 2725, 2726, 2727, 2728, 2733, 2731, + 2734, 86, 2736, 2732, 2735, 86, 86, 86, 86, 2737, + 86, 86, 2739, 86, 86, 86, 2741, 2745, 86, 2744, - 2738, 2736, 2741, 86, 2740, 86, 86, 86, 2744, 86, - 2742, 2743, 2745, 86, 86, 2747, 86, 2746, 86, 86, - 86, 86, 2748, 2751, 2749, 2752, 2754, 86, 86, 2750, - 2755, 86, 86, 2756, 2753, 2758, 170, 86, 86, 2759, - 2757, 86, 2760, 2763, 3387, 86, 86, 2765, 86, 86, - 2764, 86, 86, 2768, 86, 86, 2761, 2767, 2772, 2762, - 2769, 86, 2773, 2766, 2770, 2771, 86, 2774, 86, 86, - 86, 86, 2778, 86, 2775, 2776, 86, 2779, 86, 86, - 86, 2780, 86, 86, 86, 2777, 2785, 2786, 2781, 2787, - 2783, 86, 86, 86, 86, 2782, 86, 86, 86, 2791, + 2747, 2738, 2746, 86, 2740, 2748, 86, 2742, 86, 86, + 86, 86, 86, 2743, 86, 86, 86, 86, 2750, 2754, + 2755, 86, 86, 2752, 86, 2759, 86, 2749, 86, 2751, + 2760, 86, 2753, 2763, 86, 86, 2756, 2758, 86, 2761, + 2757, 86, 2766, 2765, 2762, 86, 2764, 2769, 86, 2768, + 86, 86, 86, 86, 2774, 86, 2767, 86, 86, 86, + 86, 2778, 86, 2770, 2777, 86, 2771, 2776, 86, 2775, + 2780, 86, 2772, 2773, 86, 86, 86, 2782, 2779, 2781, + 86, 2783, 2786, 86, 86, 2787, 86, 2784, 2789, 86, + 86, 86, 86, 2795, 86, 86, 2785, 86, 86, 2790, - 86, 2789, 2790, 2788, 2784, 2793, 86, 86, 86, 86, - 2792, 2794, 86, 86, 86, 2799, 86, 86, 2797, 86, - 3387, 2796, 2798, 2802, 86, 2795, 2800, 86, 86, 86, - 2801, 2807, 86, 2803, 86, 2804, 86, 86, 86, 2805, - 86, 2808, 86, 2806, 86, 2810, 86, 2809, 2812, 86, - 2816, 86, 2811, 2817, 86, 2814, 2824, 2813, 2819, 2820, - 2821, 86, 2815, 86, 86, 86, 86, 2822, 86, 2818, - 2825, 2823, 86, 2827, 86, 86, 86, 2828, 86, 86, - 2829, 86, 2832, 86, 86, 2826, 2834, 86, 2837, 2830, - 2835, 86, 86, 2831, 2836, 86, 86, 2838, 2839, 86, + 2792, 2793, 2788, 2791, 2794, 2798, 86, 86, 86, 86, + 86, 86, 2799, 2797, 2800, 2802, 86, 2796, 86, 2803, + 86, 86, 2801, 86, 86, 86, 86, 2805, 2806, 2808, + 2809, 2811, 86, 2812, 86, 2804, 2807, 86, 2810, 2815, + 170, 86, 2813, 86, 86, 2814, 86, 2820, 2816, 2817, + 86, 86, 2822, 86, 86, 2821, 86, 86, 2825, 86, + 86, 2818, 2824, 2846, 2819, 2826, 86, 2828, 86, 2823, + 2830, 86, 86, 2827, 2829, 2831, 86, 2832, 86, 86, + 2835, 86, 86, 2833, 86, 2836, 86, 2837, 86, 86, + 86, 86, 86, 2834, 2842, 2843, 2844, 2838, 2840, 2839, - 86, 2833, 86, 2843, 86, 2841, 86, 86, 2844, 86, - 86, 2847, 2848, 86, 2842, 86, 2840, 86, 2845, 2849, - 86, 86, 86, 86, 2846, 2850, 86, 2853, 2851, 2854, - 86, 86, 2855, 2856, 86, 2852, 2857, 2858, 86, 2859, - 86, 2860, 2862, 2863, 86, 86, 2865, 86, 86, 2864, - 86, 2867, 86, 86, 2861, 2866, 2868, 86, 86, 86, - 2873, 86, 86, 86, 86, 2872, 86, 2875, 2876, 86, - 2869, 86, 2878, 2870, 86, 86, 2877, 2879, 2871, 86, - 86, 2882, 2881, 86, 86, 86, 2874, 2880, 2885, 86, - 2889, 86, 2883, 2884, 86, 86, 86, 86, 2891, 86, + 86, 86, 86, 86, 2845, 86, 2848, 2847, 86, 86, + 2841, 86, 86, 2850, 2851, 86, 86, 2849, 86, 86, + 2856, 86, 2859, 86, 2854, 2853, 86, 2855, 86, 2852, + 2857, 86, 2860, 86, 2858, 2864, 86, 86, 86, 86, + 86, 86, 2861, 86, 2865, 2869, 86, 86, 2867, 86, + 86, 2862, 2863, 2873, 86, 2868, 3456, 2866, 2871, 2876, + 2870, 2874, 86, 2877, 2879, 86, 86, 2872, 86, 86, + 86, 2882, 2878, 2880, 86, 2875, 2881, 86, 86, 2885, + 86, 86, 86, 2886, 86, 86, 2883, 86, 2887, 86, + 2890, 2884, 2892, 86, 86, 2888, 3456, 2889, 2893, 86, - 86, 86, 2886, 2888, 2918, 2887, 2892, 2895, 2890, 2896, - 2893, 86, 2898, 86, 2897, 86, 2894, 2899, 86, 2900, - 2901, 86, 86, 2902, 86, 2903, 86, 2904, 86, 2905, - 86, 86, 86, 2908, 86, 86, 2907, 2909, 86, 2910, - 2912, 86, 86, 2916, 86, 86, 2906, 2913, 2917, 86, - 86, 2911, 2920, 86, 2922, 86, 86, 2921, 86, 86, - 86, 2914, 2915, 2919, 2923, 2924, 86, 2925, 86, 2926, - 2929, 86, 86, 86, 2928, 86, 2930, 2927, 86, 2935, - 86, 86, 2931, 86, 2936, 86, 86, 86, 86, 2933, - 2938, 2939, 86, 2940, 2932, 2934, 2937, 2941, 86, 2942, + 2894, 86, 86, 86, 86, 2891, 2895, 86, 2896, 2897, + 86, 86, 2899, 2901, 2898, 86, 2900, 86, 2902, 86, + 86, 2905, 86, 2903, 2906, 86, 2907, 86, 86, 86, + 2909, 2908, 2911, 86, 86, 2904, 2914, 86, 86, 2915, + 2912, 86, 2910, 2916, 86, 2918, 86, 86, 86, 86, + 86, 2922, 2923, 86, 2913, 86, 2917, 86, 2925, 2924, + 2919, 86, 86, 2921, 86, 2927, 2920, 2926, 86, 86, + 2928, 86, 2933, 2929, 86, 2932, 86, 86, 86, 86, + 2935, 2930, 2936, 86, 2937, 2938, 86, 86, 2931, 2939, + 86, 86, 2942, 2941, 86, 86, 86, 86, 86, 2934, - 86, 86, 2946, 86, 86, 86, 2943, 86, 86, 86, - 2952, 2944, 86, 2947, 86, 86, 86, 2948, 2950, 2945, - 2955, 86, 86, 2957, 2953, 86, 2956, 86, 2951, 86, - 86, 86, 2949, 86, 2958, 2954, 2959, 86, 2962, 2967, - 2960, 2963, 86, 2961, 2964, 86, 2965, 86, 2966, 86, - 86, 2971, 86, 2968, 86, 2970, 86, 86, 86, 2972, - 86, 2969, 86, 2973, 2974, 86, 86, 2978, 2976, 2980, - 2975, 86, 2982, 86, 86, 86, 86, 86, 2983, 86, - 86, 2977, 2984, 86, 2979, 2985, 86, 2986, 86, 2991, - 86, 86, 86, 86, 2988, 2987, 2981, 2994, 2989, 86, + 2945, 2949, 86, 86, 86, 2956, 86, 86, 2948, 86, + 2957, 86, 2940, 2943, 2944, 2946, 86, 2950, 2947, 2951, + 2953, 86, 86, 2954, 2995, 2958, 2960, 2952, 86, 2955, + 2959, 86, 2961, 86, 86, 2962, 86, 2963, 86, 2964, + 86, 2965, 86, 86, 2966, 86, 86, 2967, 2969, 86, + 2970, 86, 86, 86, 2972, 2976, 86, 2977, 86, 86, + 2973, 86, 2978, 2968, 86, 2971, 2980, 86, 2982, 86, + 86, 2981, 2974, 2975, 86, 2983, 2984, 86, 86, 2979, + 86, 86, 86, 2985, 2990, 86, 86, 2986, 86, 2987, + 2988, 86, 2991, 86, 86, 2992, 2996, 86, 86, 86, - 86, 86, 86, 86, 2992, 2993, 86, 86, 2990, 2995, - 2998, 2999, 86, 3000, 86, 2996, 3001, 3004, 86, 86, - 2997, 3002, 3006, 86, 3007, 86, 86, 3009, 86, 86, - 86, 86, 86, 3014, 86, 86, 3013, 3017, 3005, 86, - 3003, 86, 86, 86, 86, 3010, 3011, 3008, 3012, 86, - 3016, 86, 3020, 3023, 86, 3015, 86, 3025, 3021, 86, - 86, 3019, 3018, 86, 3026, 3028, 86, 86, 3022, 3029, - 86, 3031, 86, 86, 86, 86, 3024, 86, 86, 3036, - 86, 3387, 3027, 3034, 3033, 86, 86, 3030, 3040, 86, - 3038, 3032, 86, 3044, 86, 3035, 3037, 3042, 86, 86, + 2989, 2997, 86, 3000, 2994, 86, 2999, 2998, 86, 86, + 2993, 3002, 86, 3001, 3003, 86, 3007, 86, 86, 3004, + 86, 86, 86, 3005, 86, 86, 86, 3006, 3014, 3008, + 3009, 3011, 86, 3012, 86, 86, 86, 3015, 86, 3019, + 3017, 3018, 3013, 86, 86, 86, 3010, 86, 86, 3021, + 86, 3024, 3020, 3016, 3025, 3026, 86, 3029, 3022, 3027, + 86, 3023, 3028, 86, 86, 86, 86, 3033, 86, 86, + 3032, 86, 86, 86, 3034, 86, 3035, 3036, 86, 86, + 86, 3044, 86, 86, 3030, 3031, 3037, 3038, 3040, 3042, + 86, 86, 86, 3039, 3045, 86, 3046, 3041, 86, 86, - 3039, 3041, 3043, 86, 86, 3047, 3048, 86, 3050, 86, - 3045, 86, 3049, 86, 86, 3053, 86, 86, 3052, 86, - 3056, 86, 3051, 3046, 3054, 86, 86, 3059, 86, 86, - 86, 86, 3064, 86, 86, 86, 3055, 3060, 3057, 3058, - 86, 3068, 86, 86, 3063, 3069, 86, 3061, 3070, 3067, - 86, 3066, 86, 3065, 86, 3062, 86, 3072, 3073, 86, - 3074, 86, 3075, 86, 3071, 3078, 86, 3076, 86, 3080, - 86, 86, 86, 3079, 86, 86, 86, 3085, 3086, 86, - 86, 86, 3077, 86, 86, 3081, 86, 3092, 86, 3093, - 86, 86, 3387, 3094, 3082, 3091, 3083, 3084, 3089, 86, + 3048, 86, 86, 3047, 86, 3043, 3053, 86, 86, 86, + 86, 3049, 86, 86, 3056, 86, 3050, 3051, 86, 86, + 86, 3054, 3055, 3060, 3052, 3061, 86, 3057, 3058, 86, + 3062, 86, 3059, 3066, 86, 3063, 86, 3064, 3068, 86, + 3069, 86, 86, 3071, 86, 86, 86, 86, 86, 86, + 3077, 86, 3074, 86, 3076, 3067, 86, 3065, 86, 86, + 3080, 3072, 3073, 3070, 3075, 3079, 86, 86, 3083, 86, + 86, 3086, 86, 3078, 86, 86, 3088, 86, 3082, 86, + 3089, 3081, 86, 3084, 3091, 86, 3092, 86, 86, 3085, + 86, 3095, 86, 86, 3087, 86, 86, 86, 3101, 3090, - 3088, 86, 86, 3090, 3098, 86, 3087, 3097, 3099, 86, - 86, 3095, 86, 3102, 86, 3100, 86, 3105, 86, 86, - 3096, 86, 3104, 86, 86, 3107, 3101, 86, 3103, 3106, - 86, 86, 3108, 86, 86, 86, 3111, 86, 86, 86, - 3113, 3387, 86, 3109, 86, 3112, 3114, 86, 86, 3126, - 3110, 86, 86, 86, 3115, 86, 3123, 3116, 3124, 3117, - 3118, 3120, 3121, 3119, 86, 86, 86, 86, 86, 3122, - 3127, 3129, 3125, 3131, 86, 3132, 86, 86, 3387, 3130, - 86, 3133, 3134, 86, 3128, 3135, 3136, 3137, 86, 3138, - 86, 3139, 3140, 86, 86, 3141, 3142, 3145, 86, 3143, + 3100, 86, 86, 3093, 3097, 3098, 86, 3104, 86, 3102, + 3094, 3096, 86, 86, 86, 3099, 3106, 3105, 86, 86, + 3456, 3103, 3107, 86, 3108, 3111, 3109, 3112, 86, 3114, + 86, 86, 3110, 3113, 86, 86, 3115, 3117, 86, 3116, + 86, 86, 3120, 86, 86, 3118, 3123, 86, 86, 86, + 86, 86, 3128, 86, 86, 3124, 86, 86, 3132, 86, + 3119, 3121, 3122, 86, 3127, 86, 3131, 3125, 3133, 86, + 3134, 86, 3130, 3129, 86, 3126, 3136, 3135, 3137, 86, + 3138, 86, 3139, 86, 86, 3142, 86, 3140, 86, 3144, + 86, 86, 86, 3143, 86, 86, 86, 86, 3150, 3151, - 3144, 86, 86, 86, 3148, 86, 3146, 86, 86, 86, - 86, 86, 3147, 3154, 86, 86, 3153, 86, 86, 86, - 86, 86, 3150, 3157, 3156, 3149, 86, 3158, 86, 3151, - 3152, 3161, 3162, 86, 86, 3159, 86, 3163, 3387, 3160, - 3155, 86, 3164, 3165, 86, 3166, 86, 86, 86, 3167, - 3171, 86, 3168, 3173, 86, 3172, 86, 3169, 86, 86, - 3170, 3174, 86, 3177, 86, 3181, 3175, 3178, 3180, 86, - 86, 86, 3183, 86, 86, 3176, 3182, 3184, 86, 86, - 3187, 86, 86, 3179, 3186, 3188, 86, 3190, 86, 3185, - 86, 3189, 3191, 86, 3192, 86, 3193, 86, 3194, 86, + 86, 86, 86, 86, 86, 3145, 3157, 86, 3158, 86, + 3141, 86, 86, 3159, 3146, 3148, 3147, 3149, 3154, 86, + 3156, 3153, 86, 3155, 86, 86, 86, 3152, 86, 3162, + 3164, 86, 3160, 3165, 86, 86, 86, 3168, 3169, 86, + 3166, 3161, 3167, 86, 3170, 86, 3163, 3171, 86, 86, + 3172, 86, 86, 3173, 86, 86, 3174, 86, 86, 3175, + 3177, 86, 86, 3179, 86, 86, 3178, 86, 3456, 3180, + 86, 86, 3176, 86, 86, 86, 86, 3181, 86, 3189, + 3190, 3193, 3182, 3184, 3183, 3192, 3185, 3191, 3186, 3187, + 86, 86, 86, 3195, 3188, 3197, 86, 86, 3194, 3198, - 3195, 86, 3196, 86, 3197, 86, 86, 3200, 86, 86, - 86, 86, 86, 86, 86, 3199, 3198, 86, 3201, 3205, - 86, 86, 3202, 86, 3209, 86, 3208, 3206, 3210, 86, - 3207, 3203, 3204, 3212, 86, 86, 3211, 86, 3214, 86, - 3216, 86, 86, 3213, 3219, 3218, 86, 86, 86, 86, - 86, 86, 3221, 86, 86, 86, 86, 86, 3227, 3217, - 3220, 3225, 3226, 3215, 86, 3224, 86, 3222, 86, 3223, - 86, 3228, 86, 3230, 3238, 3231, 86, 3232, 3233, 86, - 3234, 86, 86, 3229, 3235, 86, 86, 86, 86, 3236, - 86, 3237, 86, 86, 3244, 3243, 3239, 86, 3246, 3242, + 86, 3199, 3200, 86, 86, 3196, 86, 3203, 86, 3201, + 3204, 86, 3205, 3206, 86, 86, 3207, 3208, 3212, 86, + 3209, 86, 86, 3210, 3211, 3202, 86, 3213, 86, 3215, + 86, 86, 86, 86, 86, 86, 86, 3214, 3221, 86, + 3220, 86, 86, 86, 86, 86, 3217, 86, 3225, 3216, + 3224, 3226, 86, 3218, 3219, 86, 3222, 3229, 3230, 86, + 3227, 86, 3232, 86, 3231, 3228, 3223, 3233, 86, 3234, + 86, 86, 86, 86, 3239, 86, 3236, 3241, 3235, 3240, + 86, 3237, 86, 86, 3238, 86, 86, 86, 3248, 86, + 3243, 3245, 3246, 3249, 86, 3251, 86, 86, 3242, 86, - 3240, 86, 86, 86, 86, 86, 86, 86, 3245, 86, - 3241, 86, 3255, 86, 3247, 3253, 3258, 86, 86, 3250, - 86, 3248, 3249, 3254, 3252, 3257, 86, 86, 86, 86, - 3251, 3260, 3263, 86, 3256, 86, 3265, 86, 3259, 86, - 3266, 3261, 3267, 86, 3264, 3268, 86, 86, 3262, 3270, - 86, 86, 86, 3271, 86, 86, 3272, 3273, 3276, 86, - 86, 86, 86, 86, 86, 86, 3269, 3279, 3280, 86, - 3275, 86, 3278, 3277, 3282, 86, 3283, 86, 3284, 3274, - 86, 3281, 3286, 86, 3285, 86, 3287, 3289, 86, 86, - 3290, 86, 86, 3291, 3293, 3294, 86, 86, 3288, 86, + 3250, 3252, 86, 3244, 3247, 86, 3255, 86, 3256, 86, + 3254, 86, 3253, 3258, 86, 3259, 86, 3260, 86, 86, + 3257, 3261, 86, 3262, 86, 3263, 86, 3264, 86, 3265, + 86, 86, 3268, 86, 86, 86, 86, 3272, 86, 86, + 3267, 3274, 86, 3269, 86, 3266, 86, 3270, 86, 86, + 86, 86, 3278, 3279, 86, 86, 3271, 86, 3273, 3275, + 3283, 3276, 3277, 86, 3280, 3281, 86, 86, 3285, 3288, + 86, 86, 3284, 3282, 3287, 86, 86, 86, 86, 86, + 86, 3286, 3290, 86, 3289, 3294, 86, 86, 86, 3295, + 3296, 86, 86, 86, 3300, 3291, 3292, 3299, 86, 3293, - 86, 86, 3299, 86, 3298, 86, 3295, 3300, 86, 3296, - 3292, 86, 86, 86, 86, 86, 3297, 86, 3304, 86, - 3306, 86, 86, 86, 86, 86, 3301, 3303, 3311, 3312, - 86, 3302, 3305, 86, 3308, 3309, 3307, 3319, 3310, 3313, - 86, 3317, 86, 86, 86, 3314, 86, 3320, 3315, 3318, - 86, 86, 3316, 86, 86, 3321, 3322, 3325, 3323, 3326, - 86, 86, 86, 86, 3328, 86, 3327, 86, 86, 86, - 86, 3329, 3334, 3324, 86, 3331, 86, 86, 86, 86, - 3337, 3330, 3338, 86, 86, 86, 86, 86, 3332, 3333, - 3336, 3341, 86, 3335, 3339, 3342, 86, 3340, 86, 3345, + 3302, 86, 3297, 3303, 86, 86, 3301, 3304, 86, 86, + 86, 86, 86, 86, 3298, 3307, 86, 86, 3306, 86, + 86, 3305, 3312, 86, 3309, 3308, 86, 3311, 3313, 86, + 3315, 86, 3317, 3316, 3314, 3310, 86, 86, 86, 86, + 86, 3318, 86, 86, 86, 3324, 86, 3319, 3322, 3326, + 3323, 86, 3321, 3327, 86, 86, 3329, 3330, 3332, 86, + 86, 3320, 86, 3325, 3334, 86, 3328, 86, 3335, 3333, + 3336, 86, 3337, 86, 86, 3331, 86, 86, 86, 3340, + 86, 3338, 3341, 3342, 86, 3345, 86, 86, 86, 86, + 86, 86, 3348, 86, 3339, 3349, 86, 3351, 86, 3344, - 3344, 3346, 86, 3343, 86, 3347, 86, 3349, 86, 3351, - 86, 3352, 86, 86, 86, 3356, 86, 3353, 3387, 86, - 3354, 3359, 86, 3350, 3357, 86, 86, 3358, 3348, 86, - 86, 86, 86, 3355, 86, 86, 3360, 3361, 86, 3363, - 3365, 86, 86, 3367, 86, 3362, 86, 3368, 86, 3371, - 3364, 3366, 3372, 86, 3369, 86, 86, 3375, 3376, 86, - 86, 3378, 86, 3370, 86, 3373, 86, 3377, 3379, 86, - 86, 3380, 86, 86, 3374, 3381, 3387, 3382, 3385, 86, - 3386, 86, 3387, 3387, 3387, 3383, 3387, 3387, 3387, 3387, - 3387, 3387, 3384, 47, 47, 47, 47, 47, 47, 47, + 3346, 3347, 3352, 86, 86, 3343, 3355, 86, 3350, 3354, + 86, 3357, 3358, 86, 86, 3359, 86, 86, 86, 3353, + 3362, 3363, 86, 86, 3360, 3356, 86, 86, 86, 3368, + 86, 86, 3364, 3367, 86, 3365, 3361, 3369, 86, 86, + 86, 86, 3366, 86, 3373, 86, 86, 86, 3375, 86, + 86, 86, 3370, 3372, 3371, 3380, 3381, 3382, 86, 3377, + 3378, 3374, 86, 86, 3376, 86, 3386, 86, 3379, 86, + 3388, 86, 3389, 86, 3387, 86, 86, 86, 3390, 3394, + 3391, 3384, 3383, 86, 3385, 86, 3395, 86, 3392, 86, + 3397, 86, 86, 86, 3396, 86, 3393, 3398, 86, 86, - 52, 52, 52, 52, 52, 52, 52, 57, 57, 57, - 57, 57, 57, 57, 63, 63, 63, 63, 63, 63, - 63, 68, 68, 68, 68, 68, 68, 68, 74, 74, - 74, 74, 74, 74, 74, 80, 80, 80, 80, 80, - 80, 80, 89, 89, 3387, 89, 89, 89, 89, 160, - 160, 3387, 3387, 3387, 160, 160, 162, 162, 3387, 3387, - 162, 3387, 162, 164, 3387, 3387, 3387, 3387, 3387, 164, - 167, 167, 3387, 3387, 3387, 167, 167, 169, 3387, 3387, - 3387, 3387, 3387, 169, 171, 171, 3387, 171, 171, 171, - 171, 174, 3387, 3387, 3387, 3387, 3387, 174, 177, 177, + 3403, 86, 3400, 86, 86, 3406, 86, 3407, 86, 86, + 86, 3399, 86, 86, 3410, 86, 3405, 3401, 3402, 3408, + 3404, 86, 3409, 86, 3414, 86, 3415, 86, 3413, 86, + 3418, 3411, 3412, 86, 86, 3420, 86, 3421, 3416, 86, + 86, 86, 3425, 86, 3422, 86, 86, 3423, 3427, 86, + 3426, 86, 3419, 3417, 3428, 86, 3429, 86, 3430, 86, + 3424, 86, 3434, 86, 3432, 86, 86, 86, 86, 86, + 86, 3436, 3437, 86, 3440, 86, 3431, 3441, 86, 3456, + 3433, 86, 3444, 86, 3435, 3445, 86, 3438, 3439, 3442, + 3446, 3447, 86, 86, 3443, 3448, 86, 86, 86, 86, - 3387, 3387, 3387, 177, 177, 90, 90, 3387, 90, 90, - 90, 90, 17, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387 + 3449, 86, 3450, 3451, 3454, 86, 3455, 86, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3452, 3456, + 3453, 47, 47, 47, 47, 47, 47, 47, 52, 52, + 52, 52, 52, 52, 52, 57, 57, 57, 57, 57, + 57, 57, 63, 63, 63, 63, 63, 63, 63, 68, + 68, 68, 68, 68, 68, 68, 74, 74, 74, 74, + 74, 74, 74, 80, 80, 80, 80, 80, 80, 80, + 89, 89, 3456, 89, 89, 89, 89, 160, 160, 3456, + 3456, 3456, 160, 160, 162, 162, 3456, 3456, 162, 3456, + 162, 164, 3456, 3456, 3456, 3456, 3456, 164, 167, 167, + + 3456, 3456, 3456, 167, 167, 169, 3456, 3456, 3456, 3456, + 3456, 169, 171, 171, 3456, 171, 171, 171, 171, 174, + 3456, 3456, 3456, 3456, 3456, 174, 177, 177, 3456, 3456, + 3456, 177, 177, 90, 90, 3456, 90, 90, 90, 90, + 17, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456 } ; -static const flex_int16_t yy_chk[6654] = +static const flex_int16_t yy_chk[6782] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2283,18 +2319,18 @@ static const flex_int16_t yy_chk[6654] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3395, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3464, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2758, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2815, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1104, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1121, 32, 36, 36, 37, 37, 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, @@ -2333,9 +2369,9 @@ static const flex_int16_t yy_chk[6654] = 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, - 552, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 556, 214, 218, 216, 208, 209, 211, 205, 210, 211, 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, - 222, 219, 223, 221, 552, 224, 222, 227, 215, 221, + 222, 219, 223, 221, 556, 224, 222, 227, 215, 221, 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, @@ -2359,654 +2395,668 @@ static const flex_int16_t yy_chk[6654] = 313, 315, 316, 319, 311, 312, 317, 317, 314, 318, 308, 321, 318, 320, 322, 316, 324, 320, 323, 323, 313, 319, 315, 325, 312, 326, 325, 327, 328, 329, - 321, 328, 322, 327, 324, 333, 331, 326, 366, 332, - 333, 329, 336, 325, 330, 331, 334, 335, 337, 334, - 335, 334, 366, 330, 169, 336, 330, 332, 341, 341, + 321, 328, 322, 327, 324, 333, 331, 326, 336, 332, + 333, 329, 337, 325, 330, 331, 335, 334, 169, 335, + 334, 336, 334, 330, 337, 340, 330, 332, 340, 341, - 337, 330, 330, 330, 330, 339, 338, 334, 338, 338, - 339, 339, 340, 342, 343, 340, 345, 344, 346, 347, - 347, 348, 349, 349, 351, 345, 348, 346, 353, 343, - 342, 350, 350, 342, 344, 344, 352, 354, 355, 351, - 353, 352, 356, 357, 360, 1304, 361, 358, 358, 357, - 358, 361, 369, 369, 362, 1304, 354, 356, 355, 358, - 362, 363, 364, 394, 360, 365, 363, 364, 365, 367, - 365, 368, 367, 364, 372, 370, 371, 371, 375, 372, - 368, 370, 377, 373, 378, 367, 373, 379, 367, 394, - 367, 376, 373, 382, 376, 384, 373, 377, 375, 378, + 341, 330, 330, 330, 330, 334, 339, 338, 334, 338, + 338, 339, 339, 342, 343, 345, 346, 344, 347, 347, + 354, 348, 349, 349, 345, 346, 348, 350, 350, 343, + 342, 351, 352, 342, 344, 344, 353, 352, 355, 354, + 356, 357, 358, 358, 360, 358, 351, 357, 353, 369, + 369, 361, 363, 362, 358, 356, 361, 363, 355, 362, + 364, 366, 375, 365, 360, 364, 365, 367, 365, 368, + 367, 364, 388, 370, 410, 366, 371, 371, 368, 370, + 372, 377, 375, 367, 376, 372, 367, 376, 367, 373, + 373, 378, 373, 388, 379, 382, 377, 381, 373, 410, - 381, 379, 385, 381, 373, 374, 374, 382, 374, 386, - 384, 385, 376, 388, 386, 386, 389, 387, 390, 381, - 392, 374, 395, 387, 374, 167, 374, 391, 374, 383, - 387, 383, 383, 390, 388, 389, 391, 396, 399, 392, - 393, 383, 395, 383, 383, 383, 393, 397, 383, 398, - 400, 396, 401, 397, 398, 402, 403, 397, 399, 404, - 402, 405, 405, 406, 407, 404, 408, 401, 409, 410, - 400, 403, 398, 411, 409, 414, 407, 412, 413, 413, - 408, 413, 412, 406, 415, 416, 423, 420, 417, 411, - 418, 420, 418, 421, 410, 414, 419, 421, 419, 419, + 381, 167, 373, 384, 385, 376, 378, 373, 379, 382, + 373, 374, 374, 385, 374, 386, 381, 391, 384, 394, + 386, 386, 389, 387, 390, 392, 391, 374, 396, 387, + 374, 166, 374, 395, 374, 383, 387, 383, 383, 390, + 393, 389, 396, 399, 392, 394, 393, 383, 383, 383, + 383, 383, 397, 395, 383, 398, 400, 401, 397, 402, + 398, 404, 397, 399, 402, 403, 406, 404, 405, 405, + 407, 408, 401, 409, 411, 414, 400, 415, 398, 409, + 403, 416, 407, 412, 417, 408, 406, 418, 412, 418, + 411, 413, 413, 415, 413, 414, 420, 416, 417, 419, - 415, 416, 417, 422, 422, 423, 424, 425, 426, 428, - 427, 430, 421, 431, 432, 166, 419, 430, 428, 432, - 429, 424, 431, 425, 427, 429, 426, 434, 433, 428, - 436, 428, 433, 429, 429, 435, 434, 429, 429, 437, - 438, 435, 440, 439, 438, 437, 439, 440, 441, 442, - 442, 436, 443, 444, 444, 445, 446, 447, 447, 449, - 445, 448, 450, 449, 451, 443, 452, 448, 441, 446, - 453, 452, 454, 454, 455, 453, 456, 450, 458, 457, - 459, 454, 461, 459, 460, 451, 455, 464, 460, 466, - 458, 462, 462, 463, 461, 470, 456, 457, 463, 465, + 420, 419, 419, 421, 422, 422, 423, 421, 424, 426, + 425, 428, 430, 433, 427, 436, 164, 433, 430, 419, + 428, 431, 421, 424, 429, 423, 425, 426, 427, 429, + 431, 428, 441, 428, 432, 434, 436, 429, 429, 432, + 435, 429, 429, 437, 434, 439, 435, 438, 439, 437, + 440, 438, 441, 442, 442, 440, 443, 444, 444, 445, + 446, 447, 447, 449, 445, 448, 450, 449, 451, 443, + 452, 448, 453, 446, 455, 452, 456, 453, 454, 454, + 457, 450, 458, 463, 463, 459, 455, 454, 459, 451, + 460, 462, 465, 461, 458, 460, 456, 461, 457, 464, - 465, 468, 468, 473, 471, 472, 475, 476, 464, 478, - 474, 466, 471, 479, 472, 474, 470, 480, 481, 476, - 485, 483, 482, 164, 473, 485, 475, 478, 482, 478, - 483, 479, 481, 484, 486, 487, 489, 480, 488, 484, - 490, 488, 492, 487, 493, 491, 487, 493, 486, 495, - 489, 491, 494, 497, 496, 490, 498, 499, 494, 496, - 500, 499, 492, 495, 501, 500, 502, 503, 504, 505, - 508, 502, 511, 525, 525, 497, 494, 498, 509, 501, - 510, 512, 505, 503, 510, 162, 515, 504, 506, 506, - 508, 511, 523, 509, 506, 513, 506, 512, 516, 513, + 466, 466, 467, 462, 464, 469, 469, 471, 472, 473, + 474, 477, 475, 465, 476, 479, 472, 475, 473, 480, + 481, 483, 482, 477, 467, 486, 485, 483, 471, 484, + 486, 474, 485, 479, 476, 479, 482, 480, 484, 487, + 481, 488, 489, 490, 491, 489, 493, 494, 492, 488, + 494, 496, 488, 487, 492, 495, 498, 490, 497, 491, + 499, 495, 501, 497, 500, 496, 493, 501, 500, 502, + 503, 504, 505, 506, 509, 503, 510, 513, 498, 495, + 511, 499, 162, 514, 502, 512, 506, 504, 514, 512, + 554, 505, 507, 507, 509, 511, 513, 510, 507, 515, - 514, 515, 506, 516, 506, 514, 517, 506, 506, 514, - 518, 520, 519, 521, 506, 523, 524, 522, 519, 518, - 522, 526, 517, 519, 528, 517, 520, 527, 527, 521, - 529, 531, 530, 532, 534, 533, 524, 535, 536, 528, - 533, 559, 529, 534, 559, 537, 526, 530, 539, 543, - 531, 537, 544, 536, 540, 532, 535, 539, 540, 541, - 542, 543, 545, 541, 546, 547, 542, 544, 548, 549, - 550, 553, 551, 549, 551, 554, 554, 556, 546, 553, - 547, 545, 555, 550, 557, 558, 548, 560, 555, 556, - 557, 561, 563, 562, 564, 563, 565, 558, 562, 566, + 507, 516, 518, 554, 517, 516, 507, 520, 507, 517, + 526, 507, 507, 517, 519, 515, 521, 518, 507, 519, + 523, 522, 524, 520, 527, 521, 520, 522, 525, 528, + 528, 525, 522, 526, 529, 523, 530, 530, 524, 531, + 532, 533, 534, 534, 527, 535, 536, 539, 537, 538, + 540, 541, 532, 537, 531, 546, 533, 541, 538, 529, + 543, 546, 548, 544, 535, 540, 539, 544, 536, 543, + 545, 547, 549, 550, 545, 551, 552, 548, 553, 555, + 557, 555, 553, 547, 558, 558, 559, 550, 557, 560, + 551, 549, 559, 561, 552, 562, 564, 563, 565, 561, - 611, 560, 567, 564, 566, 566, 561, 568, 568, 611, - 564, 575, 565, 564, 570, 567, 569, 569, 571, 571, - 570, 572, 572, 573, 576, 574, 579, 580, 578, 573, - 574, 574, 575, 578, 577, 580, 576, 577, 581, 582, - 583, 581, 584, 585, 582, 579, 586, 585, 588, 587, - 589, 590, 586, 587, 592, 589, 591, 591, 593, 594, - 595, 584, 596, 583, 594, 590, 588, 597, 160, 592, - 598, 599, 604, 597, 601, 598, 595, 603, 600, 593, - 607, 600, 596, 602, 602, 599, 600, 608, 604, 600, - 600, 605, 601, 606, 607, 603, 605, 610, 606, 617, + 563, 560, 567, 566, 569, 567, 568, 562, 566, 581, + 564, 570, 581, 565, 571, 568, 570, 570, 572, 572, + 569, 579, 568, 573, 573, 568, 574, 571, 575, 575, + 576, 576, 574, 577, 580, 578, 583, 584, 582, 577, + 578, 578, 579, 582, 585, 584, 580, 585, 586, 587, + 588, 590, 589, 586, 591, 583, 589, 590, 591, 592, + 593, 594, 595, 595, 596, 593, 597, 599, 598, 588, + 600, 602, 587, 598, 601, 594, 602, 592, 603, 596, + 601, 605, 607, 599, 609, 604, 608, 597, 604, 609, + 600, 611, 603, 604, 606, 606, 604, 604, 610, 605, - 618, 612, 608, 610, 612, 613, 614, 615, 616, 613, - 615, 614, 619, 616, 620, 617, 621, 622, 618, 619, - 624, 621, 623, 623, 625, 626, 627, 620, 628, 624, - 629, 613, 630, 635, 643, 627, 629, 622, 630, 631, - 628, 626, 631, 625, 632, 632, 633, 632, 634, 633, - 636, 635, 637, 634, 638, 639, 641, 637, 640, 643, - 650, 639, 641, 640, 636, 642, 644, 646, 642, 645, - 647, 644, 648, 638, 645, 645, 649, 648, 651, 650, - 646, 652, 649, 647, 653, 662, 652, 651, 654, 654, - 655, 648, 648, 656, 657, 658, 656, 655, 659, 664, + 607, 612, 608, 610, 614, 611, 615, 618, 616, 617, + 614, 616, 618, 617, 619, 615, 612, 619, 620, 622, + 621, 623, 625, 620, 626, 624, 629, 625, 623, 627, + 627, 628, 630, 631, 632, 617, 621, 622, 624, 633, + 628, 634, 635, 632, 626, 629, 640, 634, 635, 631, + 643, 633, 636, 630, 641, 636, 637, 637, 638, 637, + 639, 638, 642, 648, 640, 639, 644, 642, 641, 643, + 645, 646, 644, 647, 649, 645, 647, 646, 650, 649, + 651, 652, 653, 650, 650, 654, 655, 653, 648, 656, + 657, 654, 658, 651, 652, 657, 659, 659, 656, 660, - 657, 661, 661, 659, 653, 666, 663, 658, 663, 660, - 662, 656, 667, 659, 660, 660, 668, 665, 664, 665, - 669, 670, 671, 666, 673, 672, 676, 674, 671, 672, - 667, 675, 677, 673, 668, 678, 681, 679, 686, 669, - 683, 670, 674, 680, 676, 682, 675, 678, 684, 680, - 681, 677, 679, 687, 685, 688, 686, 682, 685, 683, - 689, 690, 692, 691, 693, 693, 694, 684, 691, 687, - 694, 695, 696, 688, 698, 697, 692, 699, 689, 689, - 690, 700, 699, 701, 85, 695, 697, 702, 698, 703, - 704, 696, 705, 706, 708, 704, 703, 700, 706, 705, + 661, 653, 653, 661, 662, 655, 660, 663, 664, 665, + 662, 667, 658, 664, 665, 665, 666, 666, 661, 663, + 668, 669, 668, 664, 670, 671, 670, 672, 673, 674, + 675, 676, 678, 681, 677, 683, 667, 676, 677, 679, + 669, 678, 680, 671, 682, 672, 673, 683, 674, 684, + 675, 681, 685, 686, 679, 687, 688, 680, 685, 689, + 690, 691, 692, 682, 684, 693, 692, 695, 688, 687, + 694, 696, 697, 686, 698, 700, 700, 160, 689, 698, + 691, 690, 699, 693, 701, 695, 694, 702, 701, 696, + 696, 697, 703, 704, 705, 706, 699, 707, 708, 709, - 702, 707, 701, 709, 710, 711, 707, 712, 713, 714, - 709, 716, 708, 710, 716, 714, 712, 715, 718, 711, - 713, 717, 715, 720, 719, 717, 721, 722, 723, 723, - 724, 724, 718, 719, 725, 725, 726, 727, 720, 724, - 721, 726, 729, 730, 731, 733, 727, 732, 722, 730, - 734, 732, 735, 736, 737, 739, 738, 733, 740, 736, - 741, 729, 737, 738, 731, 747, 744, 750, 751, 754, - 735, 753, 755, 739, 751, 734, 750, 753, 754, 759, - 741, 744, 747, 740, 742, 761, 742, 756, 755, 742, - 759, 756, 760, 742, 757, 757, 742, 758, 758, 761, + 706, 702, 710, 713, 704, 711, 716, 712, 705, 710, + 711, 703, 709, 707, 712, 714, 715, 708, 717, 718, + 714, 715, 719, 720, 716, 717, 721, 713, 718, 722, + 724, 726, 720, 724, 723, 722, 719, 725, 721, 723, + 727, 725, 728, 730, 729, 726, 731, 731, 737, 727, + 732, 732, 733, 733, 735, 734, 738, 728, 729, 732, + 734, 739, 738, 735, 730, 740, 741, 737, 742, 740, + 743, 744, 745, 747, 748, 746, 749, 744, 741, 752, + 745, 739, 746, 758, 755, 765, 765, 85, 743, 759, + 763, 747, 758, 742, 752, 759, 749, 761, 762, 748, - 762, 763, 773, 742, 742, 766, 742, 763, 765, 767, - 760, 768, 769, 765, 770, 768, 772, 773, 770, 771, - 762, 764, 764, 764, 771, 764, 766, 767, 764, 774, - 778, 778, 779, 764, 770, 772, 769, 776, 775, 764, - 764, 775, 776, 776, 777, 780, 788, 779, 781, 781, - 780, 777, 782, 783, 774, 784, 783, 782, 785, 785, - 784, 786, 787, 786, 789, 788, 790, 792, 789, 791, - 793, 793, 794, 797, 787, 792, 795, 796, 796, 799, - 798, 802, 802, 800, 813, 813, 790, 794, 791, 800, - 795, 797, 798, 801, 803, 814, 814, 805, 801, 803, + 750, 755, 750, 761, 764, 750, 763, 762, 764, 750, + 766, 766, 750, 767, 768, 769, 770, 771, 777, 750, + 750, 773, 750, 771, 767, 774, 773, 775, 779, 769, + 776, 778, 768, 779, 776, 778, 770, 772, 772, 772, + 780, 772, 777, 781, 772, 775, 774, 782, 795, 772, + 783, 778, 787, 783, 785, 772, 772, 784, 781, 780, + 795, 785, 784, 784, 786, 786, 788, 787, 789, 789, + 790, 788, 782, 791, 792, 790, 791, 793, 793, 792, + 794, 796, 794, 797, 798, 800, 799, 797, 801, 801, + 806, 802, 805, 800, 803, 804, 804, 807, 809, 80, - 803, 799, 805, 806, 807, 810, 808, 809, 810, 806, - 807, 808, 811, 809, 812, 815, 816, 819, 811, 817, - 818, 820, 812, 815, 817, 821, 827, 818, 822, 822, - 823, 832, 824, 831, 816, 819, 832, 820, 829, 823, - 824, 825, 825, 826, 821, 827, 830, 829, 834, 826, - 833, 834, 836, 835, 837, 830, 838, 831, 835, 833, - 839, 842, 840, 841, 841, 838, 836, 840, 840, 843, - 845, 844, 846, 839, 847, 851, 842, 847, 853, 837, - 844, 849, 854, 849, 852, 847, 850, 850, 843, 852, - 846, 855, 856, 857, 845, 858, 851, 859, 861, 853, + 796, 808, 806, 809, 798, 799, 802, 808, 803, 811, + 805, 810, 810, 813, 811, 811, 814, 815, 813, 807, + 816, 818, 814, 817, 820, 821, 816, 818, 817, 819, + 820, 824, 819, 821, 822, 822, 815, 823, 823, 824, + 825, 826, 827, 828, 829, 830, 826, 831, 831, 827, + 832, 834, 834, 836, 833, 840, 838, 835, 825, 832, + 829, 828, 833, 835, 830, 838, 839, 842, 841, 845, + 846, 843, 836, 841, 843, 839, 842, 844, 847, 840, + 848, 851, 844, 845, 849, 850, 850, 847, 852, 849, + 849, 853, 854, 848, 855, 846, 851, 858, 856, 858, - 862, 860, 854, 863, 858, 860, 864, 866, 80, 863, - 865, 855, 868, 857, 856, 864, 861, 867, 868, 862, - 859, 869, 865, 870, 871, 871, 866, 872, 870, 873, - 874, 867, 875, 876, 877, 869, 878, 879, 873, 880, - 875, 885, 881, 883, 882, 880, 884, 872, 881, 883, - 874, 889, 890, 876, 892, 878, 877, 879, 882, 886, - 884, 885, 887, 888, 890, 886, 891, 888, 887, 896, - 889, 891, 890, 893, 893, 892, 894, 895, 897, 898, - 895, 899, 894, 900, 900, 898, 901, 896, 902, 903, - 904, 897, 908, 902, 905, 904, 904, 909, 906, 907, + 853, 856, 859, 859, 860, 861, 862, 852, 863, 856, + 861, 864, 855, 865, 866, 867, 854, 868, 869, 870, + 871, 873, 869, 872, 867, 860, 874, 862, 863, 872, + 873, 864, 875, 876, 866, 865, 877, 870, 874, 871, + 868, 878, 877, 879, 882, 880, 883, 876, 885, 878, + 880, 875, 881, 881, 886, 884, 887, 879, 888, 889, + 893, 890, 886, 882, 884, 891, 883, 892, 885, 894, + 895, 891, 896, 892, 893, 894, 887, 897, 889, 898, + 888, 890, 899, 897, 895, 898, 899, 900, 901, 902, + 903, 905, 896, 906, 902, 904, 904, 905, 907, 906, - 907, 899, 906, 910, 901, 903, 911, 903, 910, 905, - 913, 916, 914, 917, 908, 918, 921, 909, 920, 920, - 921, 923, 923, 922, 916, 911, 914, 924, 925, 926, - 928, 927, 925, 917, 913, 928, 918, 919, 922, 934, - 919, 929, 919, 942, 926, 927, 919, 932, 919, 942, - 931, 930, 924, 919, 934, 929, 930, 930, 919, 931, - 933, 932, 935, 936, 933, 937, 938, 935, 939, 940, - 937, 949, 941, 943, 951, 936, 933, 935, 943, 944, - 938, 941, 945, 940, 950, 944, 946, 946, 945, 939, - 947, 948, 951, 949, 953, 947, 954, 948, 75, 955, + 901, 907, 908, 909, 910, 911, 900, 75, 901, 913, + 910, 903, 912, 912, 914, 915, 909, 916, 915, 914, + 908, 917, 916, 916, 918, 911, 920, 913, 918, 919, + 919, 915, 921, 915, 922, 923, 917, 925, 928, 922, + 929, 926, 930, 932, 932, 933, 936, 934, 920, 933, + 938, 928, 921, 954, 923, 926, 935, 935, 939, 954, + 929, 925, 934, 930, 931, 938, 937, 931, 941, 931, + 937, 936, 939, 931, 940, 931, 944, 943, 942, 940, + 931, 946, 941, 942, 942, 931, 943, 945, 948, 947, + 944, 945, 949, 950, 947, 951, 946, 949, 952, 953, - 961, 954, 956, 950, 952, 952, 953, 957, 957, 959, - 952, 958, 952, 955, 956, 960, 958, 959, 952, 961, - 962, 963, 964, 952, 952, 967, 965, 969, 964, 960, - 952, 965, 966, 968, 970, 970, 971, 963, 972, 962, - 971, 974, 976, 967, 966, 969, 978, 974, 975, 968, - 977, 975, 980, 981, 979, 977, 983, 980, 972, 978, - 979, 976, 984, 985, 986, 983, 987, 988, 989, 990, - 986, 984, 981, 989, 991, 987, 992, 997, 993, 985, - 74, 996, 994, 995, 1000, 1003, 988, 996, 991, 990, - 993, 994, 995, 998, 997, 1002, 992, 1004, 1005, 998, + 948, 955, 962, 945, 947, 956, 955, 950, 953, 957, + 961, 956, 952, 958, 958, 957, 951, 959, 960, 963, + 966, 962, 959, 965, 960, 966, 967, 969, 969, 968, + 973, 970, 961, 972, 971, 965, 970, 963, 964, 964, + 967, 968, 971, 974, 964, 975, 964, 972, 976, 973, + 977, 978, 964, 979, 976, 977, 980, 964, 964, 981, + 984, 975, 974, 978, 964, 982, 982, 987, 986, 983, + 987, 979, 980, 983, 986, 988, 989, 981, 990, 991, + 984, 989, 992, 993, 995, 991, 996, 992, 997, 999, + 998, 990, 1000, 995, 988, 996, 998, 1002, 999, 1003, - 1000, 1006, 1007, 1008, 1013, 1003, 1009, 1017, 1008, 1002, - 1012, 1009, 1005, 1013, 1016, 1012, 1004, 1007, 1015, 1006, - 1014, 1014, 1017, 1016, 1015, 1018, 1020, 1021, 1026, 1025, - 1023, 1023, 1021, 1021, 1023, 1027, 1024, 1028, 1018, 1024, - 1029, 1030, 1020, 1025, 1031, 1032, 1033, 1034, 1026, 1035, - 1031, 1027, 1033, 1029, 1035, 1028, 1030, 1036, 1038, 1039, - 1042, 1038, 1034, 1040, 1041, 1032, 1043, 1044, 1040, 1041, - 1046, 1036, 1044, 1045, 1049, 1043, 1042, 1048, 1045, 1050, - 1039, 1051, 1046, 1048, 1053, 1050, 1054, 1051, 1052, 1052, - 1049, 1055, 1057, 1053, 1055, 1056, 1056, 1058, 1059, 1060, + 1001, 1004, 993, 1005, 997, 1001, 1008, 1006, 1009, 1007, + 1012, 1000, 1008, 1003, 1010, 1005, 1006, 1002, 1007, 1014, + 1010, 1004, 1015, 1016, 1017, 1009, 1012, 1018, 1016, 1019, + 1020, 1021, 1022, 1014, 1025, 1026, 1021, 1022, 1030, 1025, + 1028, 1018, 1015, 1017, 1026, 1020, 1028, 1019, 1027, 1027, + 1029, 1031, 1033, 1030, 1037, 1034, 1038, 1037, 1039, 1029, + 1034, 1034, 1036, 1036, 1031, 1040, 1036, 1041, 1033, 1042, + 1038, 1043, 1045, 1044, 1046, 1047, 1052, 1049, 1039, 1044, + 1046, 1040, 1042, 1048, 1051, 1041, 1043, 1051, 1048, 1053, + 1047, 1049, 1045, 1054, 1053, 1055, 1056, 1052, 1054, 1057, - 1061, 1062, 1060, 1063, 1054, 1069, 1064, 1062, 1070, 1063, - 1057, 1064, 1065, 1061, 1066, 1067, 1058, 1065, 1059, 1066, - 1071, 1067, 1072, 1069, 1073, 1073, 1071, 1072, 1070, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 1078, 1079, 1074, 1075, - 1081, 1082, 1083, 1084, 1085, 1081, 1080, 1086, 1087, 1076, - 1085, 1077, 1088, 1086, 1083, 1089, 1089, 1088, 1090, 1082, - 1091, 1092, 1084, 1087, 1093, 1094, 1095, 1096, 1093, 1097, - 1099, 1100, 1100, 1092, 1091, 1095, 1101, 1090, 1103, 1102, - 1106, 1101, 1105, 1094, 1102, 1107, 1096, 1108, 1111, 1099, - 1109, 1114, 1108, 68, 1097, 1106, 1105, 1107, 1103, 1109, + 1059, 1058, 1061, 1062, 1057, 1056, 1058, 1063, 1061, 1064, + 1067, 1055, 1059, 1063, 1066, 1064, 1065, 1065, 1068, 1062, + 1070, 1068, 1071, 1066, 1069, 1069, 1072, 1073, 1067, 1074, + 1073, 1075, 1133, 1076, 1133, 1077, 1085, 1075, 1070, 1076, + 1077, 1071, 1074, 1078, 1079, 1081, 1072, 1080, 1078, 1083, + 1079, 1081, 1080, 1084, 1083, 1086, 1085, 1087, 1088, 1088, + 1089, 1086, 1087, 1090, 1091, 1092, 1095, 1093, 1097, 1089, + 1093, 1084, 1090, 1094, 1096, 1098, 1094, 1095, 1099, 1096, + 1102, 1105, 1091, 1100, 1092, 1101, 1097, 1098, 1103, 1100, + 1106, 1101, 1108, 1103, 1107, 1102, 1110, 1099, 1104, 1104, - 1110, 1110, 1118, 1112, 1113, 1119, 1115, 1114, 1111, 1112, - 1113, 1115, 1116, 1117, 1116, 1120, 1118, 1121, 1117, 1119, - 1120, 1122, 1123, 1124, 1125, 1127, 1127, 1128, 1129, 1123, - 1130, 1131, 1121, 1132, 1255, 1135, 1255, 1131, 1124, 1135, - 1122, 1128, 1133, 1125, 1142, 1130, 1129, 1133, 1136, 1136, - 1137, 1138, 1138, 1132, 1140, 1137, 1133, 1139, 1133, 1141, - 1143, 1133, 1141, 1142, 1139, 1144, 1145, 1146, 1140, 1147, - 1148, 1145, 1150, 1149, 1144, 1148, 1151, 1154, 1143, 1153, - 1153, 1147, 1154, 1150, 1155, 1156, 1146, 1149, 1157, 1155, - 1158, 1159, 1160, 1157, 1158, 1151, 1161, 1162, 1163, 1164, + 1105, 1109, 1111, 1112, 1106, 1109, 1107, 1113, 1115, 1117, + 1108, 1111, 1116, 1116, 1110, 1118, 1119, 1117, 1120, 1122, + 1118, 1119, 1112, 1124, 1123, 1125, 1128, 1115, 1126, 1131, + 1125, 1158, 1113, 1122, 1158, 1124, 1129, 1126, 1120, 1123, + 1127, 1127, 1129, 1130, 1135, 1131, 1128, 1132, 1134, 1130, + 1136, 1137, 1132, 1134, 1138, 1139, 1137, 1141, 1135, 1140, + 1142, 1144, 1144, 1145, 1136, 1146, 1140, 1147, 1149, 1138, + 1148, 1152, 1141, 1150, 1139, 1152, 1148, 1145, 1150, 1142, + 1153, 1153, 1147, 1146, 1156, 1154, 1157, 1150, 1149, 1150, + 1154, 1156, 1150, 1155, 1155, 1159, 1161, 1160, 1162, 1163, - 1159, 1165, 1167, 1166, 1168, 1156, 1169, 1160, 1165, 1172, - 1163, 1161, 1170, 1171, 1164, 1166, 1162, 1173, 1170, 1175, - 1176, 1167, 1174, 1177, 1169, 1168, 1178, 1179, 1171, 1172, - 1181, 1174, 1180, 1184, 1175, 1177, 1183, 1173, 1186, 1176, - 1185, 1187, 1183, 1188, 1189, 1178, 1186, 1180, 1184, 1189, - 1181, 1190, 1179, 1192, 1185, 1193, 1199, 1194, 1197, 1188, - 1191, 1187, 1199, 1190, 63, 1191, 1191, 1195, 1195, 1193, - 1194, 1197, 1192, 1196, 1196, 1198, 1200, 1200, 1196, 1202, - 1201, 1196, 1196, 1203, 1198, 1201, 1196, 1207, 1202, 1203, - 1204, 1210, 1196, 1205, 1211, 1204, 1196, 1212, 1205, 1206, + 1157, 1164, 1165, 1162, 1168, 1161, 1166, 1165, 1167, 1170, + 1170, 1171, 1172, 1164, 1159, 1160, 1171, 1172, 1163, 1167, + 1166, 1173, 1174, 1168, 1175, 1176, 1180, 1174, 1175, 1177, + 1178, 1179, 1181, 1182, 1176, 1184, 1183, 1185, 1180, 1186, + 1182, 1173, 1189, 1187, 1177, 1178, 1188, 1181, 1183, 1187, + 1179, 1190, 1192, 1193, 1184, 1191, 1194, 1186, 1185, 1195, + 1196, 1188, 1189, 1198, 1191, 1197, 1201, 1192, 1194, 1200, + 1202, 1190, 1193, 1204, 1203, 1200, 1205, 1207, 1195, 1209, + 1197, 1201, 1203, 1198, 1202, 1196, 1206, 1210, 1288, 1207, + 1208, 1206, 1205, 1204, 1211, 1208, 1208, 1214, 1209, 1212, - 1206, 1208, 1208, 1213, 1209, 1214, 1212, 1209, 1207, 1209, - 1214, 1210, 1211, 1215, 1216, 1217, 1218, 1221, 1274, 1219, - 1274, 1217, 1218, 1213, 1219, 1220, 1221, 1215, 1223, 1220, - 1230, 1221, 1216, 1221, 1222, 1221, 1226, 1221, 1229, 1222, - 1224, 1224, 1223, 1225, 1225, 1228, 1225, 1226, 1230, 1228, - 1231, 1232, 1233, 1229, 1234, 1235, 1232, 1232, 1236, 1231, - 1235, 1233, 1237, 1238, 1239, 1240, 1243, 1241, 1242, 1242, - 1244, 1237, 1236, 1241, 1243, 1245, 1234, 1246, 1247, 1240, - 1245, 1248, 1238, 1239, 1244, 1249, 1250, 1247, 1248, 1251, - 1253, 1246, 1252, 1252, 1251, 1254, 1254, 1257, 1259, 1258, + 1212, 1210, 1215, 1217, 1217, 1288, 1216, 1211, 1213, 1213, + 1214, 1215, 1216, 1213, 1218, 1219, 1213, 1213, 1221, 1218, + 1220, 1213, 1224, 1221, 1219, 1222, 1220, 1213, 1223, 1223, + 1222, 1213, 1225, 1225, 1226, 1227, 1228, 1226, 1229, 1226, + 1230, 1231, 1232, 1224, 1229, 1233, 1234, 1232, 1237, 1230, + 1235, 1236, 1241, 1237, 1228, 1227, 1235, 1236, 1238, 1233, + 1239, 1231, 1238, 1240, 1234, 1252, 1241, 1247, 1240, 1239, + 1242, 1242, 1243, 1243, 1239, 1243, 1239, 1244, 1239, 1246, + 1239, 1248, 1247, 1246, 1249, 1250, 1251, 1252, 1244, 1253, + 1250, 1250, 1254, 1249, 1253, 1251, 1255, 1256, 1257, 1248, - 1257, 1260, 1262, 1249, 1258, 1253, 1261, 1261, 1263, 1263, - 1260, 1250, 1264, 1264, 1265, 1266, 1267, 1259, 1269, 1265, - 1268, 1268, 1262, 1270, 1271, 1272, 1270, 1275, 1278, 1277, - 1272, 1273, 1277, 1280, 1279, 58, 1266, 1267, 1269, 1279, - 1273, 1281, 1282, 1278, 1271, 1275, 1281, 1280, 1283, 1284, - 1282, 1285, 1284, 1283, 1286, 1286, 1285, 1287, 1288, 1289, - 1290, 1291, 1287, 1293, 1294, 1289, 1295, 1290, 1297, 1293, - 1294, 1295, 1296, 1298, 1291, 1299, 1288, 1297, 1296, 1300, - 1300, 1301, 1303, 1305, 1306, 1307, 1299, 1308, 1309, 1310, - 1312, 1313, 1298, 1308, 1309, 1310, 1312, 1314, 1305, 1315, + 1258, 1259, 1260, 1260, 1261, 1255, 1254, 1259, 1262, 1264, + 1263, 1265, 1261, 1267, 1258, 1263, 1256, 1257, 1266, 1268, + 1265, 1269, 1262, 1264, 1271, 1266, 1269, 1270, 1270, 1272, + 1272, 1267, 1273, 1275, 1273, 1276, 1275, 1277, 1278, 1271, + 1276, 1279, 1279, 1280, 1268, 1281, 1281, 1278, 1282, 1282, + 1283, 1284, 1285, 1286, 1286, 1283, 1277, 1287, 1289, 1290, + 1291, 1289, 1292, 1280, 1295, 1293, 1291, 1292, 1294, 1298, + 1294, 1299, 1284, 1285, 1293, 1297, 1299, 1287, 1297, 1290, + 1300, 1301, 1295, 1302, 1298, 1303, 1301, 1308, 1305, 1304, + 1303, 1302, 1304, 1305, 1300, 1306, 1306, 1307, 1309, 1310, - 1303, 1301, 1316, 1318, 1306, 1313, 1317, 1320, 1307, 1319, - 1319, 1313, 1321, 1322, 1316, 1324, 1324, 1314, 1323, 1315, - 1317, 1318, 1325, 1323, 1326, 1328, 1331, 1320, 1329, 1326, - 1330, 1322, 1332, 1329, 1329, 1331, 1333, 1321, 1334, 1335, - 1332, 1336, 1337, 1346, 1328, 1325, 1336, 1339, 1330, 1336, - 1333, 1337, 1343, 1334, 1335, 1345, 1338, 1335, 1338, 1341, - 1342, 1339, 1344, 1343, 1342, 1341, 1347, 1344, 1344, 1346, - 1348, 1349, 1350, 1351, 1345, 1348, 1349, 1352, 1353, 1356, - 1355, 1357, 1352, 1359, 1347, 1358, 1358, 1359, 1360, 1361, - 1350, 1363, 1364, 1351, 1355, 1362, 1365, 1356, 1353, 1357, + 1311, 1313, 1307, 1314, 1309, 1308, 1310, 1313, 1317, 1314, + 1315, 1316, 1318, 1311, 1317, 1315, 1316, 1319, 1320, 1321, + 1321, 1318, 1322, 1324, 1326, 1325, 1327, 1328, 1324, 1320, + 1329, 1330, 1331, 1332, 1326, 1335, 1319, 1330, 1331, 1332, + 1334, 1327, 1322, 1325, 1336, 1337, 1334, 1328, 1338, 1335, + 1340, 1342, 1339, 1329, 1343, 1335, 1341, 1341, 1344, 1347, + 1338, 1350, 1345, 1352, 1336, 1337, 1339, 1345, 1340, 1346, + 1346, 1342, 1348, 74, 1355, 1356, 1344, 1348, 1351, 1343, + 1350, 1352, 1347, 1351, 1351, 1353, 1357, 1354, 1355, 1359, + 1356, 1358, 1361, 1367, 1353, 1354, 1358, 1363, 1359, 1358, - 1366, 1362, 1367, 1363, 1368, 1377, 1360, 1369, 1361, 1370, - 1365, 1364, 1369, 1371, 1372, 1366, 1370, 1367, 1371, 1373, - 1374, 1374, 1375, 1368, 1376, 1377, 1378, 1378, 1373, 1379, - 1380, 1381, 1372, 1376, 1383, 1379, 1380, 1375, 1382, 1382, - 1383, 1384, 1385, 1386, 1387, 1381, 1388, 1389, 1386, 1396, - 1387, 57, 1388, 1389, 1390, 1390, 1395, 1384, 1391, 1391, - 1393, 1393, 1394, 1385, 1397, 1395, 1394, 1396, 1398, 1399, - 1400, 1401, 1401, 1402, 1404, 1403, 1397, 1400, 1405, 1404, - 1406, 1407, 1398, 1403, 1399, 1408, 1407, 1407, 1409, 1413, - 1408, 1408, 1405, 1402, 1410, 1410, 1411, 1412, 1413, 1406, + 1360, 1357, 1360, 1363, 1357, 1364, 1361, 1365, 1366, 1364, + 1368, 1369, 1367, 1366, 1366, 1370, 1371, 1372, 1365, 1373, + 1370, 1371, 1374, 1375, 1377, 68, 1378, 1374, 1379, 1369, + 1380, 1380, 1382, 1381, 1383, 1372, 1368, 1381, 1377, 1373, + 1385, 1384, 1386, 1375, 1378, 1387, 1379, 1384, 1388, 1389, + 1382, 1390, 1385, 1383, 1394, 1391, 1397, 1393, 1392, 1387, + 1391, 1386, 1393, 1388, 1389, 1392, 1395, 1396, 1396, 1398, + 1390, 1397, 1394, 1399, 1401, 1395, 1400, 1400, 1398, 1402, + 1401, 1403, 1404, 1404, 1405, 1402, 1406, 1407, 63, 1408, + 1405, 1409, 1410, 1399, 1408, 1403, 1418, 1409, 1410, 1411, - 1414, 1415, 1416, 1417, 1418, 1414, 1419, 1420, 1409, 1422, - 1418, 1419, 1421, 1423, 1430, 1411, 1412, 1424, 1421, 1423, - 1415, 1417, 1416, 1424, 1425, 1426, 1427, 1428, 1422, 1432, - 1432, 1434, 1431, 1420, 1429, 1430, 1433, 1435, 1441, 1433, - 1436, 1437, 1437, 1425, 1426, 1427, 1428, 1431, 1429, 1442, - 1434, 1441, 1436, 1438, 1438, 1439, 1435, 1440, 1442, 1443, - 1439, 1440, 1444, 1448, 1444, 1446, 1447, 1449, 1444, 1450, - 1452, 1447, 1443, 1451, 1451, 1452, 1453, 1454, 1448, 1456, - 1455, 1444, 1453, 1446, 1456, 1450, 1457, 1449, 1459, 1460, - 1457, 1458, 1454, 1455, 1461, 1458, 1462, 1466, 1463, 1464, + 1412, 1412, 1406, 1413, 1413, 1411, 1415, 1415, 1407, 1416, + 1417, 1419, 1420, 1416, 1418, 1421, 1424, 1422, 1427, 1417, + 1423, 1423, 1426, 1419, 1422, 1425, 1420, 1426, 1428, 1429, + 1421, 1431, 1427, 1425, 1429, 1429, 1424, 1430, 1432, 1432, + 1433, 1434, 1430, 1430, 1435, 1436, 1437, 1428, 1438, 1439, + 1436, 1431, 1440, 1435, 1442, 1443, 1441, 1444, 1440, 1433, + 1434, 1441, 1469, 1444, 1445, 1437, 1446, 1439, 1438, 1447, + 1448, 1449, 1446, 1450, 1442, 1447, 1451, 1452, 1453, 1454, + 1469, 1443, 1457, 1445, 1455, 1455, 1458, 58, 1459, 1448, + 1449, 1452, 1450, 1456, 1454, 1451, 1456, 1460, 1460, 1453, - 1464, 1468, 52, 1461, 1463, 1469, 1472, 1460, 1459, 1482, - 1469, 1470, 1470, 1471, 1478, 1466, 1462, 1474, 1474, 1471, - 1476, 1479, 1468, 1476, 1477, 1477, 1472, 1483, 1481, 1482, - 1478, 1481, 1484, 1484, 1485, 1486, 1483, 1479, 1487, 1488, - 1489, 1490, 1490, 1491, 1488, 1492, 1493, 1494, 1495, 1485, - 1496, 1496, 1491, 1497, 1489, 1498, 1486, 1487, 1502, 1499, - 1500, 1493, 1502, 1492, 1499, 1501, 1501, 1497, 1495, 1503, - 1504, 1504, 1494, 1498, 1505, 1500, 1506, 1507, 1508, 1509, - 1512, 1507, 1511, 1511, 1509, 1513, 1514, 1506, 1515, 1503, - 1513, 1516, 1517, 1512, 1518, 1519, 1505, 1508, 1520, 1520, + 1459, 1457, 1461, 1461, 1462, 1458, 1463, 1464, 1465, 1462, + 1463, 1466, 1467, 1471, 1467, 1472, 1470, 1465, 1467, 1477, + 1464, 1470, 1473, 1476, 1466, 1474, 1474, 1475, 1471, 1476, + 1478, 1467, 1475, 1480, 1477, 1472, 1479, 1480, 1473, 1482, + 1481, 1479, 1483, 1478, 1481, 1484, 1485, 1486, 1487, 1487, + 1489, 1491, 1492, 1486, 1484, 1493, 1493, 1492, 1494, 1482, + 1483, 1495, 1497, 1497, 1494, 1505, 1485, 1499, 1489, 1501, + 1499, 1502, 1491, 1500, 1500, 1504, 1506, 1508, 1504, 1507, + 1510, 1495, 1509, 1509, 1511, 1501, 1505, 1502, 1507, 1512, + 1514, 1515, 1515, 1513, 1516, 1510, 1506, 1508, 1513, 1517, - 1536, 1522, 1514, 1523, 1521, 1516, 1515, 1525, 1518, 1521, - 1526, 1517, 1517, 1524, 1524, 1526, 1525, 1527, 1531, 1536, - 1519, 1522, 1528, 1523, 1528, 1529, 1530, 1532, 1534, 1540, - 1529, 1539, 1530, 1532, 1535, 1535, 1539, 1527, 1531, 1537, - 1541, 1541, 1534, 1542, 1542, 1537, 1543, 1544, 1545, 1546, - 1547, 1547, 1546, 1540, 1548, 1549, 1550, 1553, 1552, 1558, - 1543, 1556, 1553, 1545, 1552, 1544, 1554, 1549, 1551, 1554, - 1556, 1551, 1548, 1557, 1551, 1589, 1550, 1559, 1557, 1589, - 1559, 1560, 1560, 1561, 1558, 1554, 1551, 1562, 1566, 1561, - 1563, 1564, 1564, 1562, 1566, 1563, 1565, 1565, 1567, 1568, + 1518, 1519, 1520, 1516, 1514, 1511, 1521, 1521, 1512, 1522, + 1523, 1524, 1525, 1526, 1526, 1518, 1524, 1517, 1528, 1530, + 1527, 1531, 1520, 1522, 1527, 1532, 1519, 1525, 1523, 1529, + 1529, 1533, 1534, 1539, 1535, 1533, 1532, 1541, 1528, 1535, + 1531, 1530, 1537, 1537, 1538, 1540, 1539, 1538, 1542, 1543, + 1540, 1534, 1544, 1541, 1545, 1546, 1547, 1547, 1549, 1548, + 57, 1550, 1553, 1543, 1548, 1552, 1542, 1553, 1545, 1551, + 1551, 1544, 1544, 1554, 1552, 1555, 1557, 1555, 1549, 1556, + 1546, 1550, 1557, 1558, 1556, 1559, 1561, 1562, 1562, 1563, + 1564, 1559, 1566, 1554, 1567, 1570, 1564, 1566, 1568, 1568, - 1569, 1570, 1571, 1567, 1572, 1573, 1577, 1572, 1574, 1581, - 1575, 1573, 1568, 1576, 1574, 1575, 1578, 1582, 1569, 1576, - 1570, 1578, 1571, 1579, 1579, 1580, 1583, 1581, 1584, 1577, - 1580, 1585, 1587, 1586, 1588, 1591, 1590, 1582, 1590, 1593, - 1594, 1597, 1584, 1595, 1598, 1585, 1583, 1586, 1599, 1596, - 1587, 1593, 1594, 1600, 1591, 1596, 1595, 1601, 1608, 1588, - 1598, 1597, 1603, 1603, 1604, 1605, 1609, 1600, 1599, 1606, - 1605, 1607, 1607, 1608, 1610, 1611, 1612, 1613, 1601, 1614, - 1609, 1606, 1615, 1616, 1604, 1612, 1614, 1618, 1620, 1622, - 1622, 1615, 1613, 1611, 1615, 1623, 1623, 1621, 1610, 1616, + 1561, 1569, 1569, 1558, 1571, 1572, 1575, 1573, 1563, 1570, + 1573, 1574, 1574, 1576, 1577, 1579, 1581, 1585, 1567, 1581, + 1572, 1579, 1571, 1578, 1575, 1576, 1578, 1580, 1583, 1578, + 1586, 1584, 1580, 1586, 1577, 1581, 1584, 1583, 1587, 1587, + 1588, 1578, 1585, 1589, 1595, 1590, 1588, 1591, 1591, 1589, + 1590, 1592, 1592, 1593, 1596, 1594, 1597, 1595, 1598, 1593, + 1594, 1599, 1600, 1601, 1599, 1602, 1604, 1603, 1600, 1601, + 1602, 1605, 1596, 1603, 1608, 1597, 1605, 1607, 1598, 1606, + 1606, 1609, 1607, 1610, 1611, 1612, 1613, 1614, 1615, 1604, + 1616, 1617, 1608, 1617, 1616, 1618, 1620, 1621, 1611, 1612, - 1621, 1625, 1618, 1624, 1628, 1626, 1629, 1618, 1626, 1627, - 1627, 1630, 1632, 1620, 1633, 1624, 1630, 1628, 1631, 1625, - 1634, 1635, 1638, 1631, 1636, 1629, 1637, 1640, 1638, 1634, - 1633, 1632, 1641, 1636, 1642, 1637, 1636, 1639, 1639, 1643, - 1635, 1644, 1647, 1645, 1650, 1641, 1646, 1640, 1645, 1645, - 1651, 1646, 1642, 1643, 1647, 1652, 1652, 1644, 1653, 1655, - 1658, 1654, 1656, 1656, 1655, 1658, 1657, 1659, 1651, 1650, - 1654, 1660, 1661, 1664, 1653, 1657, 1662, 1656, 1657, 1665, - 1666, 1662, 1662, 1667, 47, 1659, 1669, 1664, 1667, 1668, - 1661, 1673, 1660, 1671, 1665, 1668, 1670, 1670, 1672, 1671, + 1613, 1609, 1622, 1610, 1623, 1614, 1624, 1625, 1620, 1621, + 1623, 1626, 1628, 1615, 1618, 1622, 1627, 1630, 1630, 1631, + 1632, 1635, 1633, 1625, 1636, 1632, 1624, 1634, 1634, 1637, + 1627, 1626, 1638, 1628, 1633, 1639, 1635, 1640, 1636, 1631, + 1641, 1643, 1642, 1645, 1639, 1647, 1648, 1641, 1652, 1648, + 1638, 1642, 1640, 1637, 1642, 1649, 1649, 1643, 1645, 1650, + 1650, 1651, 1653, 1645, 1655, 1653, 1652, 1654, 1654, 1656, + 1647, 1657, 1658, 1651, 1659, 1658, 1657, 1655, 1660, 1659, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1667, 1656, 1668, + 1662, 1666, 1664, 1665, 1669, 1664, 1661, 1660, 1670, 1671, - 1674, 1675, 1666, 1672, 1669, 1673, 1674, 1675, 1677, 1678, - 1679, 1680, 1681, 1682, 1684, 1681, 1679, 1686, 1687, 1682, - 1689, 1681, 1684, 1678, 1680, 1688, 1690, 1691, 1677, 1689, - 1692, 1693, 1695, 1688, 1694, 1694, 1686, 1687, 1695, 1690, - 1691, 1696, 1697, 1699, 1692, 1693, 1700, 1696, 1698, 1698, - 1701, 1702, 1702, 1703, 1704, 1697, 1694, 1705, 1706, 1707, - 1704, 1709, 1709, 1699, 1700, 1710, 1703, 1711, 1712, 1701, - 1713, 1711, 1716, 1712, 1706, 1713, 1714, 1707, 1715, 1705, - 1718, 1714, 1720, 1719, 1721, 1710, 1719, 1715, 1723, 1718, - 1722, 1722, 1724, 1725, 1720, 1716, 1726, 1726, 1728, 1721, + 1673, 1663, 1672, 1674, 1678, 1673, 1673, 1669, 1674, 1668, + 1675, 1681, 1679, 1671, 1680, 1680, 1670, 1682, 1672, 1683, + 1684, 1684, 1675, 1686, 1683, 1685, 1682, 1681, 1686, 1678, + 1679, 1687, 1688, 1689, 1685, 1684, 1690, 1685, 1692, 1693, + 1694, 1690, 1690, 1695, 1696, 1697, 1698, 1698, 1695, 1687, + 1696, 1689, 1692, 1688, 1693, 1699, 1701, 1705, 1706, 1700, + 1702, 1699, 1694, 1697, 1700, 1703, 1702, 1707, 1708, 1714, + 1701, 1703, 1706, 1707, 1710, 1709, 1715, 1705, 1709, 1712, + 1710, 1708, 1716, 1718, 1709, 1719, 1717, 1712, 1714, 1722, + 1716, 1717, 1718, 1720, 1721, 1715, 1723, 1729, 1719, 1724, - 1727, 1729, 1732, 1730, 1724, 1728, 1733, 1723, 1735, 1736, - 1734, 1737, 1725, 1729, 1727, 1730, 1734, 1737, 1738, 1738, - 1735, 1732, 1739, 1740, 1740, 1739, 1733, 1736, 1742, 1743, - 1744, 1745, 1745, 1742, 1746, 1747, 1744, 1747, 1743, 1748, - 1749, 1750, 1748, 1751, 1752, 1753, 1746, 1754, 1755, 1757, - 1753, 1758, 1754, 1756, 1760, 1763, 1758, 1755, 1759, 18, - 1749, 1751, 1752, 1750, 1757, 1756, 1761, 1759, 1762, 1766, - 1763, 1761, 1768, 1762, 1760, 1764, 1764, 1765, 1761, 1769, - 1759, 1770, 1771, 1765, 1772, 1773, 1772, 1774, 1774, 1777, - 1766, 1768, 1775, 1775, 1776, 1776, 1780, 1770, 1769, 1773, + 1724, 1727, 1720, 1722, 1730, 1725, 1726, 1721, 1728, 1728, + 1723, 1725, 1726, 1731, 1727, 1732, 1732, 1729, 1733, 1734, + 1735, 1724, 1730, 1736, 1747, 1734, 1737, 1739, 1739, 1740, + 1741, 1733, 1731, 1742, 1741, 1743, 1744, 1746, 1742, 1736, + 1745, 1744, 1735, 1749, 1737, 1745, 1746, 1747, 1750, 1740, + 1751, 1752, 1753, 1751, 1749, 1743, 1755, 1750, 1754, 1754, + 1756, 1757, 1759, 1752, 1758, 1758, 1760, 1753, 1764, 1761, + 1762, 1765, 1756, 1760, 1767, 1755, 1759, 1766, 1768, 1769, + 1757, 1761, 1762, 1766, 52, 1769, 1767, 1764, 1770, 1770, + 1771, 1765, 1774, 1771, 1772, 1772, 1768, 1774, 1775, 1776, - 1781, 1773, 1771, 1778, 1778, 1779, 1779, 1782, 1782, 1777, - 1783, 1788, 1784, 1785, 1783, 1790, 1785, 1780, 1784, 1787, - 1789, 1781, 1792, 1792, 1791, 1787, 1789, 1791, 1793, 1788, - 1794, 1795, 1795, 1797, 1796, 1794, 1798, 1799, 1799, 1800, - 1790, 1798, 1804, 1802, 1800, 1801, 1803, 1805, 1793, 1796, - 1807, 1801, 1806, 1811, 1797, 1802, 1802, 1802, 1806, 1809, - 1804, 1810, 1802, 1813, 1809, 1809, 1803, 1805, 1811, 1812, - 1807, 1812, 1814, 1815, 1813, 1810, 1816, 1817, 1818, 1815, - 1819, 1819, 1820, 1821, 1821, 1816, 1822, 1814, 1823, 1824, - 1824, 1825, 1825, 1826, 1829, 1829, 1830, 1817, 1831, 1818, + 1777, 1777, 1778, 1781, 1779, 1776, 1779, 1775, 1780, 1782, + 1783, 1780, 1784, 1785, 1778, 1786, 1787, 1788, 1785, 1789, + 1786, 1790, 1792, 1781, 1791, 1787, 1790, 1793, 1783, 1788, + 1784, 1782, 1793, 1791, 1789, 1794, 1795, 1796, 1796, 1793, + 1794, 1797, 1792, 1798, 1800, 1802, 1791, 1797, 1801, 1803, + 1804, 1795, 1804, 1809, 1805, 1806, 1806, 1807, 1807, 1808, + 1808, 1802, 1812, 1800, 1798, 1810, 1810, 1801, 1805, 1803, + 1805, 1811, 1811, 1809, 1813, 1814, 1814, 1815, 1816, 1817, + 1819, 1815, 1817, 1812, 1816, 1820, 1819, 1821, 1822, 1823, + 1824, 1824, 1823, 1821, 1825, 1813, 1826, 1827, 1827, 1829, - 1833, 1834, 1836, 1836, 1837, 1835, 1822, 1831, 1820, 1833, - 1823, 1835, 1838, 1826, 1841, 1840, 1839, 1842, 1842, 1843, - 1844, 1830, 1834, 1839, 1840, 1837, 1846, 1838, 1847, 1848, - 1849, 1846, 1850, 1851, 1847, 1851, 1844, 1849, 1850, 1853, - 1841, 1854, 1855, 1855, 1857, 1843, 1856, 1854, 1858, 1848, - 1859, 1856, 1860, 1857, 1861, 1862, 1863, 1861, 1853, 1864, - 1864, 1865, 1868, 1867, 1860, 1866, 1869, 1865, 1858, 1859, - 1869, 1866, 1871, 1862, 1872, 1873, 1875, 1868, 1874, 1874, - 1873, 1878, 1863, 1867, 1876, 1879, 1869, 1880, 1880, 1879, - 1884, 1881, 1871, 1882, 1884, 1875, 1872, 1881, 1885, 1876, + 1828, 1826, 1830, 1820, 1831, 1831, 1832, 1830, 1836, 1834, + 1833, 1832, 1835, 1822, 1825, 1828, 1833, 1837, 1838, 1839, + 1829, 1834, 1834, 1834, 1838, 1841, 1836, 1842, 1834, 1843, + 1841, 1841, 1835, 1844, 1845, 1844, 1846, 1837, 1848, 1839, + 1847, 1842, 1849, 1850, 1843, 1845, 1847, 1848, 1851, 1851, + 1852, 1846, 1853, 1853, 1854, 1855, 1856, 1856, 1857, 1857, + 1858, 1862, 1849, 1863, 1850, 1861, 1861, 1866, 1868, 1865, + 1869, 1869, 1863, 1867, 1854, 1870, 1852, 1855, 1865, 1867, + 1858, 1874, 1871, 1872, 1868, 1873, 1862, 1876, 1866, 1877, + 1872, 1875, 1875, 1879, 1873, 1880, 1870, 1871, 1879, 1881, - 1878, 1887, 1882, 1883, 1883, 1886, 1886, 1888, 1889, 1885, - 1890, 1891, 1892, 1893, 1885, 1890, 1896, 1896, 1894, 1893, - 1895, 1888, 1887, 1897, 1897, 1895, 1898, 1889, 1900, 1901, - 1898, 1891, 1892, 1894, 1902, 1903, 1903, 1900, 1905, 1905, - 1901, 1906, 1907, 1909, 1910, 1901, 1906, 1906, 1907, 1909, - 1911, 1912, 1913, 1915, 1902, 1911, 1916, 1917, 1913, 1918, - 1916, 1919, 1921, 1912, 1920, 1915, 1922, 1919, 1921, 1917, - 1910, 1923, 1924, 1928, 1929, 1925, 1927, 1924, 1931, 1929, - 1935, 1931, 1932, 1932, 1918, 1922, 1920, 1925, 1927, 1933, - 1933, 1923, 1928, 1934, 1934, 1936, 1937, 1940, 1938, 1939, + 1883, 1880, 1882, 1886, 1891, 1877, 1883, 1874, 1884, 1882, + 1884, 1887, 1892, 1876, 1888, 1888, 1889, 1887, 1890, 1881, + 1893, 1889, 1886, 1894, 1891, 1895, 1894, 1890, 1896, 1897, + 1897, 1892, 1893, 1898, 1899, 1900, 1901, 1902, 1904, 1898, + 1899, 1902, 1905, 1895, 1906, 1907, 1907, 1908, 1909, 1906, + 1911, 1901, 1912, 1915, 1896, 1900, 1912, 1902, 1904, 1913, + 1913, 1914, 1915, 1909, 1905, 1918, 1908, 1914, 1917, 1911, + 1916, 1916, 1917, 1919, 1919, 1920, 1918, 1921, 1922, 1923, + 1924, 1918, 1925, 1926, 1923, 1927, 1928, 1929, 1954, 1926, + 1937, 1921, 1929, 1930, 1931, 1931, 1920, 1922, 1932, 1932, - 1935, 1936, 1937, 1938, 1942, 1939, 1940, 1944, 1945, 1942, - 1944, 1946, 1946, 1948, 1949, 1952, 1950, 1951, 1951, 1957, - 1945, 1950, 1953, 1954, 1952, 1948, 1949, 1953, 1954, 1955, - 1956, 1956, 1955, 1958, 1959, 1960, 1961, 1964, 1962, 1957, - 1961, 1963, 1958, 1962, 1965, 1966, 1967, 1963, 1970, 1969, - 1969, 1972, 1959, 1965, 1960, 1964, 1971, 1973, 1973, 1974, - 1967, 1969, 1975, 1966, 1976, 1971, 1970, 1977, 1974, 1978, - 1983, 1972, 1977, 1983, 1975, 1981, 1981, 1984, 1985, 1990, - 1987, 1989, 1978, 1988, 1992, 1976, 1992, 1989, 1991, 1991, - 1993, 1993, 1994, 1984, 1985, 1987, 1990, 1988, 1996, 1996, + 1924, 1928, 1925, 1927, 1933, 1935, 1930, 1936, 1933, 1945, + 1937, 1938, 1938, 1954, 1935, 1940, 1940, 1946, 1936, 1941, + 1942, 1944, 1946, 1936, 1941, 1941, 1942, 1944, 1947, 1950, + 1948, 1952, 1956, 1951, 1959, 1945, 1948, 1951, 1953, 1953, + 1947, 1950, 1955, 1952, 1957, 1958, 1958, 1960, 1955, 1962, + 1957, 1961, 1964, 1959, 1956, 1965, 1961, 1966, 1969, 1969, + 1968, 1962, 1966, 1968, 1964, 1970, 1970, 1960, 1971, 1971, + 1972, 1973, 1974, 1976, 1965, 1975, 1977, 1973, 1974, 1976, + 1975, 1979, 1982, 1985, 1981, 1977, 1979, 1981, 1983, 1983, + 1972, 1986, 1987, 1989, 1982, 1985, 1990, 1987, 1988, 1988, - 1994, 1997, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2006, - 2000, 2001, 2007, 2002, 2005, 2005, 2012, 2016, 2006, 2008, - 2009, 2010, 2011, 2013, 2014, 2017, 1999, 2018, 2004, 2003, - 2014, 2008, 2009, 2007, 2011, 2020, 2010, 2016, 2013, 2018, - 2019, 2019, 2012, 2014, 2021, 2023, 2022, 2024, 2017, 2022, - 2023, 2026, 2027, 2020, 2027, 2028, 2026, 2029, 2030, 2032, - 2034, 2035, 2029, 2036, 2021, 2030, 2038, 2024, 2032, 2037, - 2035, 2037, 2040, 2028, 2040, 2036, 2041, 2043, 2034, 2042, - 2042, 2044, 2045, 2046, 2045, 2038, 2044, 2047, 2046, 2048, - 2041, 2049, 2047, 2050, 2053, 2051, 2052, 2055, 2057, 2050, + 1991, 1990, 1989, 1986, 1992, 1991, 1994, 1992, 1993, 1993, + 1995, 1996, 1997, 1998, 2001, 1999, 2000, 1998, 2002, 1995, + 1999, 2003, 2000, 2004, 2006, 2006, 1994, 2002, 2007, 1996, + 2009, 1997, 2001, 2008, 2010, 2010, 2006, 2004, 2011, 2003, + 2012, 2013, 2008, 2014, 2015, 2021, 2007, 2011, 2014, 2022, + 2009, 2024, 2012, 2018, 2018, 2020, 2025, 2015, 2020, 2027, + 2036, 2021, 2013, 2026, 2031, 2022, 2024, 2028, 2028, 2026, + 2025, 2029, 2031, 2029, 2030, 2030, 2027, 2033, 2033, 2034, + 2034, 2037, 2038, 2036, 2039, 2040, 2041, 2037, 2038, 2042, + 2042, 2039, 2043, 2044, 2049, 2047, 2045, 2046, 2050, 2048, - 2051, 2058, 2062, 2043, 2128, 2055, 2053, 2048, 2054, 2052, - 2061, 2049, 2128, 2054, 2054, 2058, 2066, 2057, 2059, 2059, - 2060, 2060, 2062, 2063, 2067, 2061, 2064, 2069, 2065, 2063, - 2065, 2064, 2067, 2074, 2066, 2068, 2068, 2070, 2070, 2069, - 2067, 2071, 2071, 2072, 2073, 2076, 2077, 2078, 2077, 2073, - 2079, 2074, 2072, 2080, 2076, 2079, 2079, 2076, 2081, 2082, - 2084, 2085, 2088, 2089, 2086, 2080, 2085, 2081, 2078, 2086, - 2090, 2082, 2084, 2091, 2091, 2088, 2092, 2093, 2095, 2090, - 2094, 2098, 2096, 2089, 2100, 2101, 2099, 2109, 2112, 2120, - 2101, 2110, 2095, 2098, 2092, 2093, 2094, 2096, 2099, 2103, + 2054, 2043, 2053, 2055, 2056, 2056, 2041, 2040, 2045, 2046, + 2047, 2048, 2051, 2050, 2044, 2055, 2057, 2058, 2051, 2061, + 2049, 2059, 2053, 2054, 2059, 2060, 2064, 2063, 2064, 2065, + 2060, 2051, 2063, 2066, 2057, 2067, 2069, 2058, 2066, 2061, + 2071, 2072, 2067, 2073, 2074, 2069, 2074, 2065, 2075, 2079, + 2072, 2076, 2078, 2081, 2078, 2073, 2082, 2076, 2071, 2080, + 2080, 2082, 2083, 2079, 2083, 2084, 2085, 2075, 2086, 2087, + 2084, 2085, 2088, 2091, 2090, 2089, 2092, 2095, 2088, 2081, + 2089, 2092, 2092, 2093, 2096, 2091, 2086, 2090, 2099, 2087, + 2100, 2093, 2097, 2097, 2098, 2098, 2095, 2102, 2096, 2101, - 2102, 2106, 2120, 2108, 2100, 2102, 2110, 2106, 2103, 2108, - 2109, 2111, 2113, 2112, 2114, 2114, 2115, 2116, 2116, 2117, - 2106, 2113, 2118, 2119, 2121, 2115, 2118, 2122, 2119, 2111, - 2123, 2124, 17, 2122, 2125, 2126, 2124, 2124, 2117, 2127, - 2125, 2126, 2127, 2121, 2129, 2132, 2132, 2133, 2133, 2134, - 2135, 2135, 2123, 2136, 2136, 2137, 2138, 2139, 2134, 2151, - 2140, 2143, 2133, 2139, 2129, 2140, 2143, 2137, 2141, 2141, - 2142, 2142, 2144, 2133, 2138, 2146, 2147, 2148, 2144, 2146, - 2149, 2148, 2152, 2153, 2151, 2155, 2154, 2152, 2157, 2156, - 2155, 2158, 2159, 2160, 2161, 2161, 2147, 2159, 2162, 2163, + 2104, 2105, 2102, 2099, 2103, 2101, 2103, 2106, 2106, 2105, + 2100, 2107, 2108, 2108, 2109, 2109, 2110, 2105, 2104, 2111, + 2112, 2114, 2116, 2107, 2111, 2110, 2115, 2118, 2115, 2117, + 2114, 2119, 2120, 2114, 2117, 2117, 2122, 2123, 2112, 2118, + 2119, 2124, 2123, 2116, 2120, 2126, 2124, 2127, 2122, 2132, + 2128, 2129, 2129, 2130, 2131, 2133, 2134, 2136, 2126, 2128, + 2135, 2138, 2136, 2140, 2139, 2132, 2149, 2127, 2151, 2141, + 2134, 2130, 2131, 2138, 2141, 2135, 2139, 2142, 2143, 2146, + 2133, 2150, 2142, 2140, 2148, 2146, 2151, 2143, 2152, 2149, + 2148, 2153, 2154, 2154, 2155, 2158, 2150, 2157, 2146, 2161, - 2149, 2154, 2162, 2164, 2157, 2165, 2153, 2156, 2164, 2166, - 2167, 2158, 2169, 2168, 2163, 2160, 2170, 2169, 2171, 2172, - 2172, 2175, 2167, 2176, 2177, 2174, 2178, 2166, 2184, 2170, - 2179, 2165, 2168, 2174, 2180, 2182, 2171, 2260, 2187, 2181, - 2175, 2186, 2176, 2184, 2189, 2192, 2189, 2177, 2192, 2179, - 2178, 2181, 2187, 2188, 2186, 2180, 2182, 2190, 2190, 2188, - 2191, 2193, 2194, 2260, 2195, 2191, 2196, 2196, 2197, 2197, - 2198, 2200, 2198, 2203, 2193, 2201, 2194, 2195, 2199, 2199, - 2202, 2202, 2203, 2204, 2204, 2203, 2200, 2206, 2201, 2205, - 2205, 2208, 2206, 2209, 2210, 2211, 2208, 2212, 2212, 2213, + 2153, 2156, 2156, 2155, 2159, 2160, 2163, 2165, 2159, 47, + 2160, 2164, 2161, 2152, 2158, 2157, 2166, 2164, 2167, 2171, + 2168, 2166, 2166, 2170, 2167, 2163, 2168, 2169, 2176, 2165, + 2169, 2170, 2174, 2174, 2175, 2175, 2179, 2176, 2180, 2171, + 2177, 2177, 2178, 2178, 2181, 2189, 2182, 2191, 2179, 2175, + 2181, 2182, 2183, 2183, 2184, 2184, 2180, 2185, 2186, 2188, + 2175, 2193, 2185, 2188, 2186, 2189, 2190, 2191, 2194, 2195, + 2190, 2197, 2196, 2194, 2199, 2198, 2197, 2200, 2201, 2202, + 2203, 2203, 2207, 2201, 2204, 2205, 2193, 2196, 2204, 2206, + 2199, 2208, 2195, 2198, 2206, 2209, 2210, 2200, 2211, 2212, - 2213, 2214, 2215, 2215, 2216, 2217, 2217, 2211, 2218, 0, - 2219, 2220, 2220, 2209, 2210, 2219, 2221, 2221, 2222, 2223, - 2214, 2224, 2216, 2218, 2225, 2227, 2228, 2228, 2223, 2229, - 2227, 2231, 2222, 2230, 2230, 2224, 2232, 2233, 2234, 2234, - 2233, 2236, 2232, 2225, 2235, 2235, 2237, 2240, 2229, 2231, - 2238, 2241, 2238, 2244, 2234, 2242, 2242, 2245, 2249, 2246, - 2236, 2237, 2240, 2247, 2248, 2248, 2250, 2247, 2251, 2252, - 2241, 2250, 2255, 2244, 2246, 2254, 2254, 2249, 2256, 2257, - 2245, 2258, 2259, 2251, 2252, 2256, 2261, 2261, 2262, 2263, - 2266, 2263, 2255, 2257, 2267, 2264, 2266, 2262, 2264, 2258, + 2205, 2202, 2213, 2211, 2214, 2214, 2216, 2209, 2207, 2208, + 2217, 2218, 2212, 2219, 2216, 2210, 2220, 2222, 2221, 2223, + 2213, 2224, 2228, 2231, 2226, 2231, 2230, 2229, 18, 2217, + 2218, 2223, 2230, 2232, 2232, 2228, 2219, 2221, 2222, 2226, + 2220, 2229, 2224, 2233, 2234, 2235, 2236, 2234, 2233, 2237, + 2238, 2238, 2239, 2239, 2240, 2242, 2240, 17, 2235, 2243, + 2236, 2251, 2237, 2241, 2241, 2244, 2244, 2245, 2246, 2246, + 2242, 2252, 2243, 2247, 2247, 2248, 2245, 2250, 2253, 2245, + 2248, 2251, 2250, 2254, 2254, 2255, 2255, 2256, 2257, 2257, + 2253, 2252, 2258, 2259, 2259, 2261, 2260, 2262, 2262, 2264, - 2259, 2270, 2268, 2269, 2271, 2273, 2267, 2268, 2269, 2272, - 2273, 2274, 2278, 2264, 2276, 2264, 2277, 2271, 2279, 2276, - 2280, 2277, 2281, 2284, 2279, 2285, 2270, 2278, 2281, 2282, - 2272, 2283, 2286, 2287, 2282, 2286, 2283, 2274, 2285, 2372, - 2288, 2280, 2287, 2289, 2290, 2291, 2296, 2372, 2284, 2288, - 2292, 2293, 2289, 2290, 2294, 2298, 2292, 2293, 2294, 2291, - 2299, 2299, 2300, 2302, 2298, 2305, 2296, 2307, 2300, 2301, - 2301, 2304, 2302, 2303, 2303, 2308, 2304, 2310, 2301, 2309, - 2309, 2311, 2313, 2307, 2314, 2305, 2315, 2305, 2320, 2462, - 2311, 2308, 2310, 2316, 2313, 2318, 2462, 2319, 2318, 2321, + 2261, 2263, 2263, 2265, 2266, 2267, 2256, 2268, 2272, 2270, + 2258, 2260, 2265, 2264, 2270, 2271, 2271, 2273, 2273, 2267, + 2274, 2266, 2275, 2277, 2277, 2279, 2268, 2272, 2275, 2276, + 2278, 2278, 2276, 2280, 2281, 2283, 2281, 2284, 2274, 2277, + 2285, 2285, 2287, 2288, 2279, 2289, 2292, 2290, 2280, 2293, + 2283, 2290, 2291, 2291, 2293, 2294, 2284, 2295, 2297, 2297, + 2289, 2298, 2287, 2300, 2299, 2292, 2288, 2301, 2302, 2303, + 2294, 2299, 2295, 2304, 2304, 2305, 2306, 2300, 2306, 2307, + 2310, 2298, 2307, 2309, 2305, 2301, 2302, 2313, 2311, 2309, + 2314, 2312, 2310, 2311, 2315, 2303, 2312, 2307, 2317, 2307, - 2314, 2315, 2319, 2322, 2322, 2316, 2323, 2323, 2320, 2325, - 2325, 2321, 2326, 2327, 2328, 2326, 2329, 2330, 2327, 2332, - 2328, 2335, 2329, 2331, 2331, 2334, 2330, 2333, 2333, 2336, - 2337, 2337, 2338, 2332, 2340, 2335, 2339, 2334, 2338, 2340, - 2342, 2348, 2343, 2346, 2342, 2343, 2344, 2344, 2336, 2345, - 2339, 2347, 2346, 2349, 2345, 2350, 2350, 2349, 2351, 2353, - 2347, 2348, 2354, 2355, 2353, 2356, 2357, 2358, 2359, 2360, - 2357, 2351, 2361, 2359, 2362, 2360, 2363, 2364, 2361, 2356, - 2365, 2366, 2354, 2355, 2369, 2365, 2368, 2358, 2370, 2380, - 2377, 2371, 2362, 2370, 2375, 2363, 2364, 2371, 2368, 2373, + 2316, 2319, 2320, 2314, 2321, 2316, 2319, 2320, 2322, 2324, + 2323, 2325, 2313, 2327, 2322, 2315, 2323, 2326, 2327, 2321, + 2328, 2329, 2330, 2326, 2317, 2328, 2325, 2332, 2331, 2333, + 2324, 2331, 2334, 2335, 2336, 2330, 2332, 2337, 2333, 2338, + 2339, 2334, 2335, 2337, 2339, 2338, 2329, 2341, 2336, 2343, + 2344, 2345, 2345, 2348, 2346, 2347, 2347, 2349, 2349, 2344, + 2346, 2350, 2348, 2351, 2347, 2353, 2350, 2341, 2354, 2343, + 2355, 2355, 2356, 2357, 2359, 2360, 2362, 2361, 2366, 2368, + 2368, 2353, 2357, 2351, 2354, 2351, 2359, 2356, 2362, 2365, + 2364, 2360, 2361, 2364, 2365, 2367, 2369, 2369, 2366, 2371, - 2369, 2373, 2366, 2375, 2377, 2378, 2378, 2379, 2381, 2381, - 2379, 2385, 2384, 2386, 2388, 2380, 2384, 2385, 2387, 2387, - 2391, 2391, 2393, 2388, 2395, 2386, 2396, 2399, 2400, 2401, - 2402, 2409, 2399, 2407, 2401, 2402, 2403, 2403, 2395, 2407, - 2393, 2410, 2396, 2405, 2405, 2408, 2408, 2409, 2411, 2413, - 2415, 2419, 2414, 2411, 2400, 2414, 2421, 2416, 2417, 2417, - 2419, 2420, 2415, 2410, 2422, 2424, 2424, 2420, 2413, 2416, - 2425, 2426, 0, 2425, 2421, 2427, 2429, 2429, 2431, 2422, - 2430, 2430, 2432, 2431, 2434, 2433, 2435, 2436, 2435, 2434, - 2426, 2437, 2438, 2427, 2433, 2440, 2441, 2439, 2442, 2448, + 2371, 2372, 2378, 2373, 2372, 2374, 2375, 2367, 2373, 2376, + 2380, 2374, 2375, 2377, 2377, 2381, 2378, 2382, 2376, 2379, + 2379, 2384, 2380, 2383, 2383, 2385, 2386, 2384, 2388, 2381, + 2389, 2386, 2388, 2389, 2390, 2390, 2382, 2391, 2392, 2385, + 2393, 2394, 2391, 2397, 2395, 2396, 2396, 2392, 2395, 2393, + 2399, 2400, 2401, 2402, 2403, 2399, 2397, 2404, 2403, 2405, + 2406, 2394, 2407, 2408, 2405, 2409, 2406, 2402, 2407, 2410, + 2411, 2400, 2401, 2412, 2414, 2411, 2415, 2404, 2416, 2417, + 2426, 2408, 2418, 2416, 2409, 2417, 2414, 2419, 2410, 2419, + 2418, 2421, 2415, 2423, 2412, 2424, 2424, 2432, 2425, 2431, - 2432, 2436, 2439, 2442, 2438, 2437, 2443, 2443, 2444, 2444, - 2445, 2445, 2446, 2446, 2447, 2440, 2441, 2448, 2449, 2450, - 2450, 2451, 2451, 2449, 2452, 2453, 2447, 2454, 2455, 2456, - 2456, 2457, 2458, 2458, 2459, 2459, 2452, 2453, 2460, 2461, - 2463, 2464, 2466, 2465, 2455, 2467, 2469, 2454, 2465, 2460, - 2457, 2461, 2463, 2468, 2468, 2469, 2470, 2471, 2472, 2473, - 2474, 2464, 2466, 2475, 2476, 2467, 2476, 2477, 2478, 2478, - 2484, 2472, 2479, 2480, 2474, 2481, 2483, 2471, 2485, 2477, - 2499, 2479, 2470, 2473, 2486, 2475, 2487, 2486, 2480, 0, - 2481, 2488, 2484, 2489, 2483, 2497, 2488, 2502, 2489, 2499, + 2421, 2425, 2427, 2427, 2430, 2431, 2426, 2423, 2430, 2432, + 2433, 2433, 2434, 2437, 2437, 2439, 2441, 2445, 2442, 2446, + 2447, 2434, 2445, 2448, 2449, 2450, 2450, 2456, 2448, 2449, + 2441, 2452, 2452, 2439, 2442, 2457, 2454, 2455, 2455, 2458, + 2460, 2447, 2454, 2456, 2458, 2446, 2461, 2466, 2462, 2461, + 2463, 2464, 2464, 2468, 2469, 2467, 2466, 2457, 2473, 2460, + 2462, 2467, 2463, 2471, 2471, 2472, 2474, 2479, 2472, 2469, + 2480, 2468, 2476, 2476, 2477, 2477, 2478, 2473, 2481, 2480, + 2482, 2478, 2482, 2481, 2474, 2479, 2483, 2484, 2486, 2487, + 2485, 2488, 2489, 2486, 2490, 2490, 2494, 2489, 2491, 2491, - 2487, 2485, 2490, 2490, 2491, 2491, 2492, 2492, 2494, 2494, - 2496, 2496, 2498, 2497, 2500, 2503, 2504, 2502, 2506, 2505, - 2507, 2509, 2508, 2498, 2508, 2510, 2511, 2506, 2515, 2500, - 2512, 2512, 2516, 2503, 2514, 2514, 2517, 2522, 2504, 2505, - 2507, 2509, 2515, 2510, 2511, 2517, 2518, 2518, 2520, 2521, - 2521, 2523, 2524, 2525, 2516, 2522, 2526, 2520, 2527, 2524, - 2529, 2528, 2530, 2530, 2531, 2531, 2532, 2533, 2525, 2523, - 2535, 2535, 2534, 2538, 2526, 2539, 2527, 2528, 2534, 2529, - 2536, 2536, 2537, 2540, 2541, 2533, 2532, 2542, 2537, 2543, - 2539, 2538, 2542, 2544, 2545, 2546, 2551, 2546, 2541, 2545, + 2483, 2484, 2485, 2492, 2492, 2493, 2493, 2495, 2494, 2487, + 2496, 2488, 2497, 2497, 2499, 2496, 2498, 2498, 2500, 2501, + 2502, 2503, 2506, 2504, 2509, 2495, 2499, 2505, 2505, 2507, + 2507, 2501, 2508, 2508, 2510, 2509, 2511, 2512, 2500, 2504, + 2502, 2506, 2503, 2511, 2513, 2514, 2510, 2515, 2516, 2512, + 2514, 2517, 2517, 2518, 2519, 2519, 2520, 2521, 2522, 2523, + 2524, 2527, 2518, 2525, 2513, 2528, 2528, 2515, 2516, 2529, + 2526, 2522, 2526, 2527, 2524, 2530, 2531, 2521, 2529, 2533, + 2534, 2535, 2520, 2523, 2536, 2525, 2537, 2536, 2538, 2539, + 2530, 2531, 2548, 2538, 2539, 2540, 2540, 2533, 2541, 2541, - 2547, 2547, 2540, 2548, 2554, 2548, 2549, 2549, 2553, 2543, - 2555, 2556, 2558, 2544, 2557, 2551, 2559, 2553, 2562, 2557, - 0, 2563, 2555, 2554, 2563, 2564, 2564, 2565, 2566, 2567, - 2567, 2556, 2558, 2568, 2569, 2559, 2570, 2572, 2562, 2573, - 2570, 2575, 2565, 2573, 2568, 2577, 2566, 2574, 2574, 2569, - 2578, 2579, 2572, 2582, 2575, 2580, 2580, 2583, 2584, 2586, - 2577, 2590, 2584, 2585, 2585, 2582, 2583, 2587, 2587, 2588, - 2578, 2579, 2589, 2591, 2588, 2592, 2599, 2590, 2586, 2593, - 2593, 2589, 2598, 2598, 2601, 2591, 2600, 2600, 2602, 2606, - 2603, 2604, 2605, 2605, 2613, 2592, 2616, 2601, 2599, 2603, + 2537, 2547, 2534, 2548, 2535, 2542, 2542, 2544, 2544, 2546, + 2546, 2549, 2550, 2552, 2553, 2554, 2555, 2556, 2557, 2547, + 2558, 2559, 2558, 0, 2560, 2561, 2556, 2550, 2562, 2562, + 2549, 2565, 2553, 2552, 2564, 2564, 2555, 2554, 2557, 2566, + 2567, 2559, 2560, 2561, 2570, 2565, 2568, 2568, 2572, 2567, + 2571, 2571, 2573, 2570, 2575, 2574, 2576, 2577, 2579, 2582, + 2578, 2566, 2574, 2580, 2580, 2583, 2572, 2581, 2581, 2575, + 2573, 2588, 2584, 2590, 2576, 2577, 2578, 2579, 2584, 2582, + 2585, 2585, 2587, 2583, 2586, 2586, 2589, 2593, 2587, 2588, + 2591, 2592, 2590, 2594, 2595, 2596, 2592, 2596, 2598, 2595, - 2604, 2602, 2608, 2608, 2606, 2611, 2612, 2614, 2613, 2615, - 2611, 2612, 2614, 2617, 2620, 2616, 2618, 2615, 2621, 2623, - 2622, 2627, 2617, 2621, 2618, 2622, 2624, 2624, 2626, 2620, - 2625, 2625, 2629, 2626, 2623, 2628, 2628, 2630, 2631, 2629, - 2627, 2632, 2630, 2633, 0, 2634, 2635, 2635, 2636, 2633, - 2634, 2642, 2637, 2638, 2638, 2644, 2631, 2637, 2644, 2632, - 2639, 2639, 2645, 2636, 2642, 2643, 2643, 2645, 2645, 2646, - 2647, 2648, 2649, 2650, 2646, 2647, 2651, 2650, 2649, 2652, - 2653, 2651, 2654, 2655, 2658, 2648, 2656, 2657, 2652, 2658, - 2654, 2659, 2656, 2657, 2661, 2653, 2663, 2662, 2665, 2663, + 2598, 2589, 2597, 2597, 2591, 2599, 2599, 2593, 2601, 2603, + 2604, 2605, 2606, 2594, 2607, 2608, 2609, 2613, 2603, 2607, + 2608, 2610, 2614, 2605, 2616, 2614, 2617, 2601, 2620, 2604, + 2615, 2615, 2606, 2618, 2618, 2619, 2609, 2613, 2621, 2616, + 2610, 2623, 2621, 2620, 2617, 2624, 2619, 2625, 2625, 2624, + 2626, 2628, 2629, 2630, 2631, 2631, 2623, 2633, 2634, 2637, + 2635, 2636, 2636, 2626, 2635, 2641, 2628, 2634, 2640, 2633, + 2638, 2638, 2629, 2630, 2639, 2642, 2643, 2640, 2637, 2639, + 2650, 2641, 2644, 2644, 2649, 2649, 2652, 2642, 2651, 2651, + 2653, 2654, 2655, 2657, 2657, 2656, 2643, 2658, 2659, 2652, - 2667, 2661, 2662, 2659, 2655, 2667, 2668, 2669, 2670, 2671, - 2665, 2668, 2677, 2672, 2673, 2673, 2682, 2674, 2671, 2683, - 0, 2670, 2672, 2678, 2684, 2669, 2674, 2679, 2687, 2678, - 2677, 2685, 2685, 2679, 2686, 2682, 2688, 2689, 2691, 2683, - 2693, 2686, 2695, 2684, 2698, 2688, 2696, 2687, 2690, 2690, - 2696, 2704, 2689, 2697, 2697, 2693, 2704, 2691, 2699, 2700, - 2701, 2706, 2695, 2703, 2699, 2700, 2701, 2702, 2702, 2698, - 2706, 2703, 2707, 2709, 2710, 2712, 2711, 2710, 2713, 2709, - 2711, 2715, 2715, 2716, 2721, 2707, 2717, 2717, 2721, 2712, - 2718, 2718, 2722, 2713, 2720, 2720, 2726, 2722, 2724, 2724, + 2654, 2655, 2650, 2653, 2656, 2661, 2661, 2664, 2666, 2665, + 2667, 2668, 2664, 2659, 2665, 2667, 2669, 2658, 2670, 2668, + 2671, 2673, 2666, 2677, 2675, 2676, 2681, 2670, 2671, 2675, + 2676, 2678, 2678, 2679, 2679, 2669, 2673, 2680, 2677, 2682, + 2682, 2683, 2680, 2685, 2684, 2681, 2686, 2687, 2683, 2684, + 2688, 2689, 2689, 2687, 2690, 2688, 2715, 2691, 2692, 2692, + 2696, 2685, 2691, 2715, 2686, 2693, 2693, 2697, 2697, 2690, + 2699, 2698, 2700, 2696, 2698, 2699, 2699, 2700, 2701, 2702, + 2703, 2704, 2705, 2701, 2707, 2704, 2703, 2705, 2706, 2709, + 2708, 2712, 2713, 2702, 2710, 2711, 2712, 2706, 2708, 2707, - 2727, 2716, 2728, 2729, 2732, 2727, 2730, 2742, 2729, 2729, - 2733, 2733, 2735, 2735, 2728, 2738, 2726, 2740, 2730, 2736, - 2736, 2746, 2737, 2749, 2732, 2737, 2748, 2742, 2738, 2743, - 2743, 2744, 2744, 2745, 2745, 2740, 2746, 2747, 2747, 2748, - 2750, 2749, 2751, 2752, 2752, 2753, 2756, 2760, 2751, 2753, - 2757, 2759, 2756, 2761, 2750, 2757, 2759, 2759, 2762, 2763, - 2764, 2765, 2775, 2766, 2772, 2763, 2764, 2766, 2767, 2767, - 2760, 2770, 2772, 2761, 2773, 2778, 2770, 2773, 2762, 2776, - 2777, 2777, 2776, 2779, 2780, 2781, 2765, 2775, 2779, 2782, - 2783, 2783, 2778, 2778, 2784, 2785, 2786, 2787, 2785, 2788, + 2710, 2711, 2716, 2717, 2713, 2719, 2717, 2716, 2721, 2722, + 2709, 2723, 2724, 2721, 2722, 2725, 2731, 2719, 2726, 2727, + 2727, 2728, 2732, 2736, 2725, 2724, 2733, 2726, 2732, 2723, + 2728, 2737, 2733, 2738, 2731, 2739, 2739, 2740, 2741, 2742, + 2743, 2745, 2736, 2747, 2740, 2744, 2744, 2749, 2742, 2750, + 2752, 2737, 2738, 2750, 2755, 2743, 0, 2741, 2747, 2753, + 2745, 2751, 2751, 2754, 2756, 2753, 2759, 2749, 2758, 2754, + 2756, 2759, 2755, 2757, 2757, 2752, 2758, 2761, 2762, 2764, + 2765, 2767, 2768, 2765, 2766, 2764, 2761, 2771, 2766, 2770, + 2770, 2762, 2772, 2772, 2781, 2767, 0, 2768, 2773, 2773, - 2791, 2810, 2780, 2782, 2810, 2781, 2785, 2788, 2784, 2789, - 2786, 2800, 2790, 2799, 2789, 2789, 2787, 2790, 2790, 2791, - 2792, 2792, 2793, 2793, 2794, 2794, 2795, 2795, 2796, 2796, - 2797, 2798, 2802, 2799, 2801, 2803, 2798, 2800, 2804, 2801, - 2803, 2805, 2806, 2808, 2808, 2811, 2797, 2804, 2809, 2809, - 2814, 2802, 2813, 2813, 2815, 2815, 2823, 2814, 2819, 2816, - 2820, 2805, 2806, 2811, 2816, 2818, 2818, 2819, 2821, 2820, - 2824, 2824, 2825, 2826, 2823, 2827, 2825, 2821, 2828, 2830, - 2829, 2832, 2826, 2831, 2830, 2830, 2842, 2833, 2837, 2828, - 2832, 2833, 2841, 2837, 2827, 2829, 2831, 2838, 2838, 2840, + 2775, 2775, 2776, 2777, 2783, 2771, 2776, 2782, 2777, 2779, + 2779, 2785, 2782, 2784, 2781, 2787, 2783, 2793, 2784, 2784, + 2788, 2788, 2797, 2785, 2790, 2790, 2791, 2791, 2792, 2794, + 2793, 2792, 2796, 2796, 2799, 2787, 2800, 2800, 2801, 2801, + 2797, 2803, 2794, 2802, 2802, 2804, 2804, 2805, 2806, 2807, + 2817, 2808, 2809, 2809, 2799, 2810, 2803, 2808, 2813, 2810, + 2805, 2818, 2814, 2807, 2813, 2816, 2806, 2814, 2819, 2820, + 2816, 2816, 2821, 2817, 2822, 2820, 2823, 2829, 2821, 2827, + 2823, 2818, 2824, 2824, 2827, 2829, 2830, 2832, 2819, 2830, + 2833, 2834, 2834, 2833, 2839, 2836, 2835, 2837, 2838, 2822, - 2840, 2843, 2845, 2845, 2846, 2847, 2841, 2850, 2852, 2851, - 2853, 2842, 2855, 2846, 2857, 2859, 2853, 2847, 2851, 2843, - 2859, 2860, 2861, 2861, 2855, 2862, 2860, 2865, 2852, 2866, - 2872, 2864, 2850, 2873, 2862, 2857, 2864, 2867, 2867, 2872, - 2865, 2867, 2874, 2866, 2869, 2869, 2870, 2870, 2871, 2871, - 2875, 2877, 2881, 2873, 2878, 2875, 2882, 2877, 2879, 2878, - 2883, 2874, 2884, 2879, 2880, 2880, 2885, 2884, 2882, 2886, - 2881, 2887, 2888, 2888, 2890, 2886, 2894, 2891, 2890, 2895, - 2892, 2883, 2891, 2896, 2885, 2892, 2893, 2893, 2898, 2900, - 2900, 2902, 2903, 2904, 2895, 2894, 2887, 2904, 2896, 2906, + 2836, 2840, 2840, 2841, 2844, 2846, 2843, 2848, 2839, 2887, + 2846, 2846, 2832, 2835, 2835, 2837, 2842, 2841, 2838, 2842, + 2843, 2845, 2857, 2844, 2887, 2847, 2848, 2842, 2854, 2845, + 2847, 2847, 2849, 2849, 2850, 2850, 2851, 2851, 2852, 2852, + 2853, 2853, 2855, 2856, 2854, 2858, 2859, 2855, 2857, 2860, + 2858, 2861, 2862, 2863, 2860, 2865, 2865, 2866, 2866, 2867, + 2861, 2868, 2867, 2856, 2871, 2859, 2870, 2870, 2872, 2872, + 2873, 2871, 2862, 2863, 2876, 2873, 2875, 2875, 2877, 2868, + 2878, 2879, 2881, 2876, 2882, 2882, 2884, 2877, 2883, 2878, + 2879, 2885, 2883, 2886, 2889, 2884, 2888, 2890, 2900, 2891, - 2905, 2907, 2908, 2912, 2902, 2903, 2909, 2911, 2898, 2905, - 2908, 2909, 2910, 2910, 2913, 2906, 2911, 2914, 2914, 2915, - 2907, 2912, 2918, 2918, 2919, 2919, 2921, 2923, 2923, 2925, - 2926, 2928, 2927, 2930, 2930, 2931, 2928, 2933, 2915, 2934, - 2913, 2932, 2935, 2933, 2938, 2925, 2926, 2921, 2927, 2939, - 2932, 2937, 2937, 2940, 2940, 2931, 2943, 2944, 2938, 2945, - 2947, 2935, 2934, 2944, 2945, 2948, 2948, 2950, 2939, 2949, - 2949, 2951, 2951, 2952, 2953, 2954, 2943, 2956, 2957, 2955, - 2958, 0, 2947, 2953, 2952, 2955, 2960, 2950, 2959, 2959, - 2957, 2951, 2963, 2963, 2961, 2954, 2956, 2961, 2967, 2962, + 2881, 2888, 2888, 2891, 2886, 2899, 2890, 2889, 2895, 2901, + 2885, 2896, 2896, 2895, 2898, 2898, 2903, 2903, 2905, 2899, + 2904, 2908, 2912, 2900, 2910, 2915, 2909, 2901, 2913, 2904, + 2905, 2909, 2917, 2910, 2913, 2919, 2920, 2915, 2921, 2921, + 2919, 2920, 2912, 2922, 2924, 2925, 2908, 2926, 2932, 2924, + 2927, 2927, 2922, 2917, 2927, 2929, 2929, 2932, 2925, 2930, + 2930, 2926, 2931, 2931, 2933, 2935, 2934, 2937, 2941, 2938, + 2935, 2939, 2943, 2937, 2938, 2942, 2939, 2940, 2940, 2945, + 2947, 2948, 2948, 2944, 2933, 2934, 2941, 2942, 2944, 2946, + 2950, 2951, 2954, 2943, 2950, 2946, 2951, 2945, 2952, 2953, - 2958, 2960, 2962, 2968, 2973, 2969, 2970, 2970, 2972, 2971, - 2967, 2969, 2971, 2975, 2972, 2976, 2976, 2978, 2975, 2977, - 2979, 2980, 2973, 2968, 2977, 2983, 2979, 2981, 2981, 2984, - 2985, 2986, 2987, 2987, 2988, 2989, 2978, 2983, 2980, 2980, - 2990, 2992, 2992, 2994, 2986, 2993, 2993, 2984, 2994, 2990, - 2995, 2989, 2996, 2988, 3000, 2985, 3001, 2996, 2997, 2997, - 2998, 2998, 2999, 2999, 2995, 3002, 3008, 3000, 3003, 3005, - 3005, 3002, 3010, 3003, 3011, 3012, 3013, 3013, 3015, 3015, - 3016, 3017, 3001, 3019, 3018, 3008, 3020, 3021, 3021, 3022, - 3022, 3025, 0, 3024, 3010, 3020, 3011, 3012, 3018, 3024, + 2953, 2955, 2956, 2952, 2958, 2947, 2960, 2960, 2962, 2963, + 2964, 2954, 2966, 2967, 2964, 2968, 2955, 2956, 2965, 2972, + 2969, 2962, 2963, 2968, 2958, 2969, 2971, 2965, 2966, 2970, + 2970, 2973, 2967, 2974, 2974, 2971, 2975, 2972, 2978, 2978, + 2979, 2979, 2981, 2983, 2983, 2985, 2986, 2987, 2988, 2989, + 2991, 2991, 2987, 2992, 2989, 2975, 2993, 2973, 2995, 2996, + 2994, 2985, 2986, 2981, 2988, 2993, 2994, 2998, 2998, 2999, + 3000, 3001, 3001, 2992, 3004, 3006, 3005, 3008, 2996, 3018, + 3006, 2995, 3005, 2999, 3009, 3009, 3010, 3010, 3011, 3000, + 3012, 3013, 3013, 3014, 3004, 3016, 3015, 3019, 3018, 3008, - 3017, 3026, 3027, 3019, 3030, 3030, 3016, 3027, 3032, 3032, - 3033, 3025, 3034, 3035, 3037, 3033, 3036, 3038, 3038, 3035, - 3026, 3041, 3037, 3043, 3039, 3041, 3034, 3042, 3036, 3039, - 3044, 3045, 3042, 3046, 3047, 3050, 3045, 3051, 3049, 3052, - 3047, 0, 3054, 3043, 3056, 3046, 3049, 3055, 3057, 3062, - 3044, 3058, 3061, 3060, 3050, 3062, 3058, 3051, 3060, 3052, - 3054, 3056, 3056, 3055, 3065, 3063, 3067, 3078, 3066, 3057, - 3063, 3066, 3061, 3070, 3070, 3071, 3071, 3072, 0, 3067, - 3077, 3072, 3076, 3076, 3065, 3077, 3078, 3079, 3079, 3081, - 3081, 3082, 3082, 3085, 3082, 3083, 3083, 3085, 3083, 3084, + 3017, 3020, 3022, 3011, 3014, 3015, 3017, 3021, 3021, 3019, + 3012, 3013, 3030, 3023, 3029, 3016, 3023, 3022, 3035, 3024, + 0, 3020, 3024, 3025, 3025, 3031, 3029, 3032, 3032, 3034, + 3033, 3031, 3030, 3033, 3037, 3034, 3035, 3038, 3038, 3037, + 3039, 3040, 3041, 3045, 3042, 3039, 3043, 3043, 3041, 3046, + 3047, 3048, 3049, 3049, 3050, 3045, 3051, 3052, 3054, 3054, + 3040, 3042, 3042, 3057, 3048, 3056, 3052, 3046, 3055, 3055, + 3056, 3058, 3051, 3050, 3062, 3047, 3058, 3057, 3059, 3059, + 3060, 3060, 3061, 3061, 3063, 3064, 3070, 3062, 3065, 3067, + 3067, 3064, 3072, 3065, 3073, 3075, 3074, 3076, 3076, 3078, - 3084, 3087, 3084, 3088, 3089, 3089, 3087, 3090, 3091, 3094, - 3095, 3096, 3088, 3097, 3097, 3100, 3096, 3101, 3103, 3102, - 3104, 3106, 3091, 3102, 3101, 3090, 3107, 3103, 3109, 3094, - 3095, 3107, 3108, 3108, 3113, 3104, 3118, 3109, 0, 3106, - 3100, 3110, 3110, 3111, 3111, 3112, 3112, 3114, 3115, 3113, - 3116, 3119, 3114, 3117, 3120, 3116, 3116, 3115, 3121, 3117, - 3115, 3118, 3122, 3121, 3123, 3125, 3119, 3122, 3124, 3124, - 3126, 3125, 3127, 3127, 3129, 3120, 3126, 3128, 3128, 3130, - 3133, 3133, 3136, 3123, 3130, 3135, 3135, 3139, 3139, 3129, - 3147, 3136, 3140, 3140, 3141, 3141, 3142, 3142, 3143, 3143, + 3078, 3079, 3080, 3082, 3081, 3070, 3084, 3084, 3085, 3085, + 3063, 3083, 3088, 3087, 3072, 3074, 3073, 3075, 3081, 3087, + 3083, 3080, 3089, 3082, 3090, 3093, 3100, 3079, 3098, 3090, + 3094, 3094, 3088, 3096, 3096, 3097, 3101, 3099, 3100, 3107, + 3097, 3089, 3098, 3099, 3101, 3103, 3093, 3102, 3102, 3105, + 3103, 3106, 3108, 3105, 3110, 3109, 3106, 3111, 3114, 3107, + 3109, 3113, 3115, 3111, 3116, 3118, 3110, 3125, 0, 3113, + 3119, 3120, 3108, 3121, 3122, 3124, 3127, 3114, 3129, 3122, + 3124, 3127, 3115, 3118, 3116, 3126, 3119, 3125, 3120, 3120, + 3130, 3126, 3131, 3130, 3121, 3134, 3134, 3136, 3129, 3135, - 3144, 3144, 3145, 3145, 3146, 3146, 3149, 3150, 3150, 3151, - 3152, 3153, 3157, 3155, 3159, 3149, 3147, 3158, 3151, 3156, - 3156, 3163, 3152, 3160, 3160, 3167, 3159, 3157, 3161, 3161, - 3158, 3153, 3155, 3164, 3164, 3168, 3163, 3169, 3168, 3170, - 3170, 3171, 3173, 3167, 3174, 3173, 3175, 3176, 3177, 3179, - 3174, 3178, 3176, 3182, 3185, 3181, 3186, 3189, 3185, 3171, - 3175, 3181, 3182, 3169, 3201, 3179, 3206, 3177, 3198, 3178, - 3208, 3186, 3199, 3198, 3208, 3199, 3209, 3201, 3202, 3202, - 3203, 3203, 3207, 3189, 3204, 3204, 3211, 3213, 3214, 3206, - 3215, 3207, 3216, 3217, 3216, 3215, 3209, 3218, 3218, 3214, + 3135, 3136, 3140, 3140, 3141, 3131, 3142, 3143, 3143, 3141, + 3145, 3145, 3146, 3146, 3150, 3146, 3147, 3147, 3150, 3147, + 3148, 3148, 3152, 3149, 3149, 3142, 3149, 3152, 3153, 3154, + 3154, 3155, 3156, 3159, 3160, 3161, 3163, 3153, 3162, 3162, + 3161, 3166, 3169, 3167, 3168, 3170, 3156, 3172, 3168, 3155, + 3167, 3169, 3173, 3159, 3160, 3175, 3163, 3173, 3174, 3174, + 3170, 3176, 3176, 3179, 3175, 3172, 3166, 3177, 3177, 3178, + 3178, 3180, 3181, 3184, 3182, 3185, 3180, 3183, 3179, 3182, + 3182, 3181, 3186, 3183, 3181, 3189, 3187, 3188, 3190, 3190, + 3185, 3187, 3188, 3191, 3192, 3193, 3193, 3195, 3184, 3191, - 3211, 3219, 3220, 3222, 3221, 3223, 3225, 3227, 3217, 3224, - 3213, 3226, 3227, 3228, 3219, 3225, 3230, 3230, 3231, 3222, - 3229, 3220, 3221, 3226, 3224, 3229, 3232, 3236, 3237, 3245, - 3223, 3232, 3238, 3238, 3228, 3239, 3240, 3240, 3231, 3241, - 3241, 3236, 3242, 3242, 3239, 3243, 3243, 3244, 3237, 3245, - 3246, 3247, 3248, 3246, 3249, 3250, 3247, 3248, 3251, 3252, - 3253, 3256, 3254, 3260, 3251, 3261, 3244, 3254, 3255, 3255, - 3250, 3264, 3253, 3252, 3257, 3257, 3259, 3259, 3260, 3249, - 3266, 3256, 3262, 3262, 3261, 3271, 3264, 3269, 3269, 3270, - 3270, 3272, 3275, 3271, 3273, 3274, 3276, 3277, 3266, 3278, + 3192, 3194, 3194, 3186, 3189, 3196, 3199, 3199, 3201, 3201, + 3196, 3202, 3195, 3205, 3205, 3206, 3206, 3207, 3207, 3214, + 3202, 3208, 3208, 3210, 3210, 3211, 3211, 3212, 3212, 3213, + 3213, 3216, 3217, 3217, 3218, 3219, 3220, 3222, 3222, 3223, + 3216, 3224, 3224, 3218, 3225, 3214, 3237, 3219, 3226, 3231, + 3227, 3228, 3228, 3229, 3229, 3235, 3220, 3236, 3223, 3225, + 3236, 3226, 3227, 3239, 3231, 3232, 3232, 3238, 3238, 3242, + 3243, 3241, 3237, 3235, 3241, 3242, 3245, 3244, 3246, 3249, + 3250, 3239, 3244, 3247, 3243, 3249, 3253, 3254, 3257, 3250, + 3253, 3267, 3266, 3269, 3267, 3245, 3246, 3266, 3275, 3247, - 3273, 3274, 3279, 3279, 3278, 3284, 3275, 3281, 3281, 3276, - 3272, 3285, 3290, 3287, 3288, 3291, 3277, 3292, 3288, 3295, - 3291, 3293, 3294, 3296, 3297, 3301, 3284, 3287, 3296, 3297, - 3302, 3285, 3290, 3303, 3293, 3294, 3292, 3306, 3295, 3298, - 3298, 3304, 3304, 3306, 3305, 3301, 3307, 3307, 3302, 3305, - 3308, 3309, 3303, 3310, 3311, 3308, 3309, 3312, 3310, 3314, - 3314, 3315, 3319, 3312, 3316, 3316, 3315, 3318, 3320, 3321, - 3322, 3318, 3323, 3311, 3324, 3320, 3332, 3325, 3323, 3327, - 3327, 3319, 3329, 3329, 3333, 3330, 3331, 3334, 3321, 3322, - 3325, 3331, 3337, 3324, 3330, 3332, 3336, 3330, 3335, 3335, + 3270, 3270, 3254, 3271, 3271, 3278, 3269, 3273, 3273, 3276, + 3280, 3277, 3282, 3289, 3257, 3277, 3283, 3284, 3276, 3286, + 3288, 3275, 3284, 3290, 3280, 3278, 3285, 3283, 3285, 3287, + 3287, 3291, 3289, 3288, 3286, 3282, 3292, 3293, 3295, 3294, + 3296, 3290, 3297, 3305, 3298, 3296, 3300, 3291, 3294, 3298, + 3295, 3301, 3293, 3299, 3299, 3306, 3301, 3305, 3307, 3307, + 3308, 3292, 3313, 3297, 3309, 3309, 3300, 3310, 3310, 3308, + 3311, 3311, 3312, 3312, 3314, 3306, 3315, 3316, 3317, 3315, + 3318, 3313, 3316, 3317, 3319, 3320, 3321, 3323, 3325, 3322, + 3330, 3320, 3323, 3335, 3314, 3324, 3324, 3326, 3326, 3319, - 3334, 3336, 3339, 3333, 3341, 3337, 3340, 3340, 3342, 3342, - 3343, 3343, 3344, 3345, 3346, 3347, 3347, 3344, 0, 3348, - 3345, 3350, 3350, 3341, 3348, 3349, 3353, 3349, 3339, 3351, - 3352, 3355, 3358, 3346, 3354, 3362, 3351, 3352, 3360, 3354, - 3357, 3357, 3361, 3360, 3363, 3353, 3367, 3361, 3364, 3364, - 3355, 3358, 3366, 3366, 3362, 3368, 3369, 3369, 3370, 3370, - 3371, 3373, 3373, 3363, 3375, 3367, 3381, 3371, 3374, 3374, - 3377, 3375, 3380, 3382, 3368, 3377, 0, 3380, 3383, 3383, - 3384, 3384, 0, 0, 0, 3381, 0, 0, 0, 0, - 0, 0, 3382, 3388, 3388, 3388, 3388, 3388, 3388, 3388, + 3321, 3322, 3328, 3328, 3329, 3318, 3331, 3331, 3325, 3330, + 3333, 3335, 3338, 3338, 3339, 3339, 3340, 3341, 3344, 3329, + 3342, 3343, 3345, 3346, 3340, 3333, 3342, 3343, 3347, 3348, + 3348, 3353, 3344, 3347, 3354, 3345, 3341, 3350, 3350, 3356, + 3357, 3359, 3346, 3360, 3357, 3361, 3362, 3363, 3360, 3364, + 3365, 3366, 3353, 3356, 3354, 3365, 3366, 3367, 3367, 3362, + 3363, 3359, 3370, 3371, 3361, 3372, 3373, 3373, 3364, 3374, + 3375, 3376, 3376, 3377, 3374, 3378, 3375, 3380, 3377, 3381, + 3378, 3371, 3370, 3379, 3372, 3381, 3383, 3383, 3379, 3384, + 3385, 3385, 3388, 3387, 3384, 3389, 3380, 3387, 3390, 3391, - 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3390, 3390, 3390, - 3390, 3390, 3390, 3390, 3391, 3391, 3391, 3391, 3391, 3391, - 3391, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3393, 3393, - 3393, 3393, 3393, 3393, 3393, 3394, 3394, 3394, 3394, 3394, - 3394, 3394, 3396, 3396, 0, 3396, 3396, 3396, 3396, 3397, - 3397, 0, 0, 0, 3397, 3397, 3398, 3398, 0, 0, - 3398, 0, 3398, 3399, 0, 0, 0, 0, 0, 3399, - 3400, 3400, 0, 0, 0, 3400, 3400, 3401, 0, 0, - 0, 0, 0, 3401, 3402, 3402, 0, 3402, 3402, 3402, - 3402, 3403, 0, 0, 0, 0, 0, 3403, 3404, 3404, + 3392, 3393, 3389, 3394, 3396, 3396, 3392, 3398, 3398, 3400, + 3399, 3388, 3401, 3402, 3400, 3403, 3394, 3390, 3391, 3399, + 3393, 3405, 3399, 3404, 3404, 3406, 3405, 3408, 3403, 3409, + 3409, 3401, 3402, 3410, 3411, 3411, 3412, 3412, 3406, 3413, + 3414, 3415, 3416, 3416, 3413, 3417, 3418, 3414, 3418, 3420, + 3417, 3421, 3410, 3408, 3419, 3419, 3420, 3422, 3421, 3423, + 3415, 3424, 3426, 3426, 3423, 3427, 3429, 3430, 3431, 3432, + 3436, 3429, 3430, 3433, 3433, 3437, 3422, 3435, 3435, 0, + 3424, 3438, 3438, 3440, 3427, 3439, 3439, 3431, 3432, 3436, + 3440, 3442, 3442, 3444, 3437, 3443, 3443, 3446, 3449, 3450, - 0, 0, 0, 3404, 3404, 3405, 3405, 0, 3405, 3405, - 3405, 3405, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387 + 3444, 3451, 3446, 3449, 3452, 3452, 3453, 3453, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3450, 0, + 3451, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3458, 3458, + 3458, 3458, 3458, 3458, 3458, 3459, 3459, 3459, 3459, 3459, + 3459, 3459, 3460, 3460, 3460, 3460, 3460, 3460, 3460, 3461, + 3461, 3461, 3461, 3461, 3461, 3461, 3462, 3462, 3462, 3462, + 3462, 3462, 3462, 3463, 3463, 3463, 3463, 3463, 3463, 3463, + 3465, 3465, 0, 3465, 3465, 3465, 3465, 3466, 3466, 0, + 0, 0, 3466, 3466, 3467, 3467, 0, 0, 3467, 0, + 3467, 3468, 0, 0, 0, 0, 0, 3468, 3469, 3469, + + 0, 0, 0, 3469, 3469, 3470, 0, 0, 0, 0, + 0, 3470, 3471, 3471, 0, 3471, 3471, 3471, 3471, 3472, + 0, 0, 0, 0, 0, 3472, 3473, 3473, 0, 0, + 0, 3473, 3473, 3474, 3474, 0, 3474, 3474, 3474, 3474, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456 } ; static yy_state_type yy_last_accepting_state; @@ -3212,7 +3262,7 @@ static void config_end_include(void) } #endif -#line 3213 "" +#line 3263 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3221,9 +3271,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3222 "" +#line 3272 "" -#line 3224 "" +#line 3274 "" #define INITIAL 0 #define quotedstring 1 @@ -3447,7 +3497,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3448 "" +#line 3498 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3480,13 +3530,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 >= 3388 ) + if ( yy_current_state >= 3457 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6613 ); + while ( yy_base[yy_current_state] != 6741 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3631,82 +3681,82 @@ YY_RULE_SETUP case 24: YY_RULE_SETUP #line 238 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } +{ YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } YY_BREAK case 25: YY_RULE_SETUP #line 239 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } +{ YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } YY_BREAK case 26: YY_RULE_SETUP #line 240 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } YY_BREAK case 27: YY_RULE_SETUP #line 241 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } YY_BREAK case 28: YY_RULE_SETUP #line 242 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } YY_BREAK case 29: YY_RULE_SETUP #line 243 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 30: YY_RULE_SETUP #line 244 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 31: YY_RULE_SETUP #line 245 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 32: YY_RULE_SETUP #line 246 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 33: YY_RULE_SETUP #line 247 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 34: YY_RULE_SETUP #line 248 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 35: YY_RULE_SETUP #line 249 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 36: YY_RULE_SETUP #line 250 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_WIN_CERT) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 37: YY_RULE_SETUP #line 251 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 38: YY_RULE_SETUP #line 252 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 39: YY_RULE_SETUP #line 253 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_WIN_CERT) } YY_BREAK case 40: YY_RULE_SETUP @@ -3716,1429 +3766,1454 @@ YY_RULE_SETUP case 41: YY_RULE_SETUP #line 255 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 42: YY_RULE_SETUP #line 256 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 43: YY_RULE_SETUP #line 257 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERSUITES) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 44: YY_RULE_SETUP #line 258 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_USE_SNI) } +{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } YY_BREAK case 45: YY_RULE_SETUP #line 259 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTPS_PORT) } +{ YDVAR(1, VAR_TLS_CIPHERS) } YY_BREAK case 46: YY_RULE_SETUP #line 260 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_ENDPOINT) } +{ YDVAR(1, VAR_TLS_CIPHERSUITES) } YY_BREAK case 47: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } +{ YDVAR(1, VAR_TLS_USE_SNI) } YY_BREAK case 48: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTPS_PORT) } YY_BREAK case 49: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTP_ENDPOINT) } YY_BREAK case 50: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NODELAY) } +{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } YY_BREAK case 51: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } +{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } YY_BREAK case 52: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } +{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } YY_BREAK case 53: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } +{ YDVAR(1, VAR_HTTP_NODELAY) } YY_BREAK case 54: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } YY_BREAK case 55: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_USE_SYSTEMD) } YY_BREAK case 56: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 57: YY_RULE_SETUP #line 271 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 58: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 59: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 60: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 61: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } +{ YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 62: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } +{ YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 63: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_DSCP) } +{ YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 64: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } +{ YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 65: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } +{ YDVAR(1, VAR_IP_FREEBIND) } YY_BREAK case 66: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } +{ YDVAR(1, VAR_IP_DSCP) } YY_BREAK case 67: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 68: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 69: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 70: YY_RULE_SETUP #line 284 "./util/configlexer.lex" -{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 71: YY_RULE_SETUP #line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 72: YY_RULE_SETUP #line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 73: YY_RULE_SETUP #line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } YY_BREAK case 74: YY_RULE_SETUP #line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 75: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 76: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 77: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 78: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 79: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 80: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 81: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 82: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 83: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 84: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 85: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 86: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 87: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 88: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 89: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } YY_BREAK case 90: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_CONNECT) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 91: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 92: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 93: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_UDP_CONNECT) } YY_BREAK case 94: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 95: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 96: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 97: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 98: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 99: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 100: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 101: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 102: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 103: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 104: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 105: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 106: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 107: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_DENY_ANY) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 108: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 109: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 110: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_DENY_ANY) } YY_BREAK case 111: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 112: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 113: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 114: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_NO_CACHE) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 115: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 116: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 117: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_NO_CACHE) } YY_BREAK case 118: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 119: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 120: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 121: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_NO_CACHE) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 122: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 123: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 124: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_NO_CACHE) } YY_BREAK case 125: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(0, VAR_RPZ) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 126: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_TAGS) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 127: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 128: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } +{ YDVAR(0, VAR_RPZ) } YY_BREAK case 129: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG) } +{ YDVAR(1, VAR_TAGS) } YY_BREAK case 130: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG_NAME) } +{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } YY_BREAK case 131: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } YY_BREAK case 132: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_RPZ_LOG) } YY_BREAK case 133: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_RPZ_LOG_NAME) } YY_BREAK case 134: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 135: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 136: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 137: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 138: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_ALLOW_NOTIFY) } YY_BREAK case 139: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 140: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 141: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 142: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 143: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 144: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 145: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 146: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 147: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 148: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 149: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 150: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 151: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 152: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 153: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } YY_BREAK case 154: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } YY_BREAK case 155: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } YY_BREAK case 156: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } YY_BREAK case 157: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 158: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 159: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 160: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 161: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 162: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 163: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 164: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 165: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 166: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 167: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 168: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 169: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 170: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 171: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 172: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 173: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 174: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_MAX_RESTART) } YY_BREAK case 175: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 176: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 177: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 178: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 179: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 180: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 181: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 188: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 189: YY_RULE_SETUP -#line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +#line 403 "./util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 190: YY_RULE_SETUP -#line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } +#line 404 "./util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 191: YY_RULE_SETUP -#line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 405 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 192: YY_RULE_SETUP -#line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +#line 406 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 193: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } YY_BREAK case 194: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_CHECK) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 249: YY_RULE_SETUP #line 464 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 250: YY_RULE_SETUP -#line 466 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } +#line 465 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 251: YY_RULE_SETUP -#line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 466 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 252: YY_RULE_SETUP -#line 469 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +#line 467 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 253: YY_RULE_SETUP -#line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +#line 468 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 254: YY_RULE_SETUP -#line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +#line 469 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 255: YY_RULE_SETUP -#line 472 "./util/configlexer.lex" +#line 471 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 256: YY_RULE_SETUP -#line 474 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 473 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 257: YY_RULE_SETUP -#line 476 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } +#line 474 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 258: YY_RULE_SETUP -#line 478 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } +#line 475 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 259: YY_RULE_SETUP -#line 480 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } +#line 476 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 260: YY_RULE_SETUP -#line 482 "./util/configlexer.lex" +#line 477 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 261: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 479 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 262: YY_RULE_SETUP -#line 485 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +#line 481 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 263: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +#line 483 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 264: YY_RULE_SETUP -#line 487 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +#line 485 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 265: YY_RULE_SETUP -#line 488 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +#line 487 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 266: YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 267: YY_RULE_SETUP #line 490 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 277: YY_RULE_SETUP #line 500 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 278: YY_RULE_SETUP #line 501 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 279: YY_RULE_SETUP #line 502 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 280: YY_RULE_SETUP #line 503 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 286: YY_RULE_SETUP #line 509 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 287: YY_RULE_SETUP #line 510 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 288: YY_RULE_SETUP -#line 512 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +#line 511 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 289: YY_RULE_SETUP -#line 514 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 512 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 290: YY_RULE_SETUP -#line 515 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +#line 513 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 291: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +#line 514 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 292: YY_RULE_SETUP -#line 517 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +#line 515 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 293: YY_RULE_SETUP -#line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +#line 517 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 315: YY_RULE_SETUP #line 540 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 316: YY_RULE_SETUP #line 541 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 317: -/* rule 317 can match eol */ YY_RULE_SETUP #line 542 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 318: +YY_RULE_SETUP +#line 543 "./util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 319: +YY_RULE_SETUP +#line 544 "./util/configlexer.lex" +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } + YY_BREAK +case 320: +YY_RULE_SETUP +#line 545 "./util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 321: +YY_RULE_SETUP +#line 546 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 322: +/* rule 322 can match eol */ +YY_RULE_SETUP +#line 547 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 318: +case 323: YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 546 "./util/configlexer.lex" +#line 551 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 319: +case 324: YY_RULE_SETUP -#line 551 "./util/configlexer.lex" +#line 556 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 320: -/* rule 320 can match eol */ +case 325: +/* rule 325 can match eol */ YY_RULE_SETUP -#line 552 "./util/configlexer.lex" +#line 557 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 321: +case 326: YY_RULE_SETUP -#line 554 "./util/configlexer.lex" +#line 559 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5151,34 +5226,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 322: +case 327: YY_RULE_SETUP -#line 566 "./util/configlexer.lex" +#line 571 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 567 "./util/configlexer.lex" +#line 572 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 323: +case 328: YY_RULE_SETUP -#line 572 "./util/configlexer.lex" +#line 577 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 324: -/* rule 324 can match eol */ +case 329: +/* rule 329 can match eol */ YY_RULE_SETUP -#line 573 "./util/configlexer.lex" +#line 578 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 325: +case 330: YY_RULE_SETUP -#line 575 "./util/configlexer.lex" +#line 580 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5191,38 +5266,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 326: +case 331: YY_RULE_SETUP -#line 587 "./util/configlexer.lex" +#line 592 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 589 "./util/configlexer.lex" +#line 594 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 327: +case 332: YY_RULE_SETUP -#line 593 "./util/configlexer.lex" +#line 598 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 328: -/* rule 328 can match eol */ +case 333: +/* rule 333 can match eol */ YY_RULE_SETUP -#line 594 "./util/configlexer.lex" +#line 599 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 329: +case 334: YY_RULE_SETUP -#line 595 "./util/configlexer.lex" +#line 600 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 330: +case 335: YY_RULE_SETUP -#line 596 "./util/configlexer.lex" +#line 601 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5230,27 +5305,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 601 "./util/configlexer.lex" +#line 606 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 331: +case 336: YY_RULE_SETUP -#line 605 "./util/configlexer.lex" +#line 610 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 332: -/* rule 332 can match eol */ +case 337: +/* rule 337 can match eol */ YY_RULE_SETUP -#line 606 "./util/configlexer.lex" +#line 611 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 333: +case 338: YY_RULE_SETUP -#line 608 "./util/configlexer.lex" +#line 613 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5260,7 +5335,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 614 "./util/configlexer.lex" +#line 619 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5275,39 +5350,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 334: +case 339: YY_RULE_SETUP -#line 628 "./util/configlexer.lex" +#line 633 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 631 "./util/configlexer.lex" +#line 636 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 335: +case 340: YY_RULE_SETUP -#line 635 "./util/configlexer.lex" +#line 640 "./util/configlexer.lex" { LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK -case 336: -/* rule 336 can match eol */ +case 341: +/* rule 341 can match eol */ YY_RULE_SETUP -#line 636 "./util/configlexer.lex" +#line 641 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK -case 337: +case 342: YY_RULE_SETUP -#line 637 "./util/configlexer.lex" +#line 642 "./util/configlexer.lex" { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } YY_BREAK -case 338: +case 343: YY_RULE_SETUP -#line 638 "./util/configlexer.lex" +#line 643 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5316,29 +5391,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 644 "./util/configlexer.lex" +#line 649 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 339: +case 344: YY_RULE_SETUP -#line 648 "./util/configlexer.lex" +#line 653 "./util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 340: -/* rule 340 can match eol */ +case 345: +/* rule 345 can match eol */ YY_RULE_SETUP -#line 649 "./util/configlexer.lex" +#line 654 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 341: +case 346: YY_RULE_SETUP -#line 653 "./util/configlexer.lex" +#line 658 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5347,33 +5422,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 342: +case 347: YY_RULE_SETUP -#line 661 "./util/configlexer.lex" +#line 666 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 343: +case 348: YY_RULE_SETUP -#line 665 "./util/configlexer.lex" +#line 670 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 344: +case 349: YY_RULE_SETUP -#line 669 "./util/configlexer.lex" +#line 674 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 345: +case 350: YY_RULE_SETUP -#line 673 "./util/configlexer.lex" +#line 678 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5374 "" +#line 5449 "" case YY_END_OF_BUFFER: { @@ -5668,7 +5743,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 >= 3388 ) + if ( yy_current_state >= 3457 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5696,11 +5771,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 >= 3388 ) + if ( yy_current_state >= 3457 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3387); + yy_is_jam = (yy_current_state == 3456); return yy_is_jam ? 0 : yy_current_state; } @@ -6339,6 +6414,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 673 "./util/configlexer.lex" +#line 678 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index b52ddf81e..79ff3fec0 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -235,6 +235,9 @@ tcp-upstream{COLON} { YDVAR(1, VAR_TCP_UPSTREAM) } tcp-mss{COLON} { YDVAR(1, VAR_TCP_MSS) } outgoing-tcp-mss{COLON} { YDVAR(1, VAR_OUTGOING_TCP_MSS) } tcp-idle-timeout{COLON} { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } +max-reuse-tcp-queries{COLON} { YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } +tcp-reuse-timeout{COLON} { YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } +tcp-auth-query-timeout{COLON} { YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } edns-tcp-keepalive{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } edns-tcp-keepalive-timeout{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } ssl-upstream{COLON} { YDVAR(1, VAR_SSL_UPSTREAM) } @@ -382,6 +385,7 @@ root-key-sentinel{COLON} { YDVAR(1, VAR_ROOT_KEY_SENTINEL) } val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } val-sig-skew-min{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +val-max-restart{COLON} { YDVAR(1, VAR_VAL_MAX_RESTART) } val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) } val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } @@ -402,6 +406,7 @@ neg-cache-size{COLON} { YDVAR(1, VAR_NEG_CACHE_SIZE) } val-nsec3-keysize-iterations{COLON} { YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } zonemd-permissive-mode{COLON} { YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +zonemd-check{COLON} { YDVAR(1, VAR_ZONEMD_CHECK) } zonemd-reject-absence{COLON} { YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } add-holddown{COLON} { YDVAR(1, VAR_ADD_HOLDDOWN) } del-holddown{COLON} { YDVAR(1, VAR_DEL_HOLDDOWN) } diff --git a/util/configparser.c b/util/configparser.c index 4da644d3a..31de34c72 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.4. */ /* Bison implementation for Yacc-like parsers in C @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30704 -/* Bison version. */ -#define YYBISON_VERSION "3.6.4" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -119,673 +119,7 @@ extern struct config_parser_state* cfg_parser; # endif # endif -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - SPACE = 258, /* SPACE */ - LETTER = 259, /* LETTER */ - NEWLINE = 260, /* NEWLINE */ - COMMENT = 261, /* COMMENT */ - COLON = 262, /* COLON */ - ANY = 263, /* ANY */ - ZONESTR = 264, /* ZONESTR */ - STRING_ARG = 265, /* STRING_ARG */ - VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ - VAR_SERVER = 267, /* VAR_SERVER */ - VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ - VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ - VAR_PORT = 270, /* VAR_PORT */ - VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ - VAR_INTERFACE = 272, /* VAR_INTERFACE */ - VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ - VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ - VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ - VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ - VAR_DO_UDP = 277, /* VAR_DO_UDP */ - VAR_DO_TCP = 278, /* VAR_DO_TCP */ - VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ - VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ - VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ - VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - VAR_CHROOT = 284, /* VAR_CHROOT */ - VAR_USERNAME = 285, /* VAR_USERNAME */ - VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ - VAR_LOGFILE = 287, /* VAR_LOGFILE */ - VAR_PIDFILE = 288, /* VAR_PIDFILE */ - VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ - VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ - VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ - VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ - VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ - VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ - VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ - VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ - VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ - VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ - VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ - VAR_NAME = 300, /* VAR_NAME */ - VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ - VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ - VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ - VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ - VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ - VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ - VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ - VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ - VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ - VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ - VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ - VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ - VAR_IDENTITY = 313, /* VAR_IDENTITY */ - VAR_VERSION = 314, /* VAR_VERSION */ - VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ - VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ - VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ - VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ - VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ - VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ - VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ - VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ - VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ - VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ - VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ - VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ - VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ - VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ - VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ - VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ - VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ - VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ - VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ - VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ - VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ - VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ - VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ - VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ - VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ - VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ - VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ - VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ - VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ - VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ - VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ - VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ - VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ - VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ - VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ - VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ - VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ - VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ - VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ - VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ - VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ - VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ - VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 367, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 379, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */ - VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 392, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 417, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 442, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 447, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 476, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 493, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 516, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 526, /* VAR_ZONEFILE */ - VAR_MASTER = 527, /* VAR_MASTER */ - VAR_URL = 528, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 532, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 542, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 549, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 553, /* VAR_RPZ */ - VAR_TAGS = 554, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 559, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 563, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 564, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 565 /* VAR_ZONEMD_REJECT_ABSENCE */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define SPACE 258 -#define LETTER 259 -#define NEWLINE 260 -#define COMMENT 261 -#define COLON 262 -#define ANY 263 -#define ZONESTR 264 -#define STRING_ARG 265 -#define VAR_FORCE_TOPLEVEL 266 -#define VAR_SERVER 267 -#define VAR_VERBOSITY 268 -#define VAR_NUM_THREADS 269 -#define VAR_PORT 270 -#define VAR_OUTGOING_RANGE 271 -#define VAR_INTERFACE 272 -#define VAR_PREFER_IP4 273 -#define VAR_DO_IP4 274 -#define VAR_DO_IP6 275 -#define VAR_PREFER_IP6 276 -#define VAR_DO_UDP 277 -#define VAR_DO_TCP 278 -#define VAR_TCP_MSS 279 -#define VAR_OUTGOING_TCP_MSS 280 -#define VAR_TCP_IDLE_TIMEOUT 281 -#define VAR_EDNS_TCP_KEEPALIVE 282 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 -#define VAR_CHROOT 284 -#define VAR_USERNAME 285 -#define VAR_DIRECTORY 286 -#define VAR_LOGFILE 287 -#define VAR_PIDFILE 288 -#define VAR_MSG_CACHE_SIZE 289 -#define VAR_MSG_CACHE_SLABS 290 -#define VAR_NUM_QUERIES_PER_THREAD 291 -#define VAR_RRSET_CACHE_SIZE 292 -#define VAR_RRSET_CACHE_SLABS 293 -#define VAR_OUTGOING_NUM_TCP 294 -#define VAR_INFRA_HOST_TTL 295 -#define VAR_INFRA_LAME_TTL 296 -#define VAR_INFRA_CACHE_SLABS 297 -#define VAR_INFRA_CACHE_NUMHOSTS 298 -#define VAR_INFRA_CACHE_LAME_SIZE 299 -#define VAR_NAME 300 -#define VAR_STUB_ZONE 301 -#define VAR_STUB_HOST 302 -#define VAR_STUB_ADDR 303 -#define VAR_TARGET_FETCH_POLICY 304 -#define VAR_HARDEN_SHORT_BUFSIZE 305 -#define VAR_HARDEN_LARGE_QUERIES 306 -#define VAR_FORWARD_ZONE 307 -#define VAR_FORWARD_HOST 308 -#define VAR_FORWARD_ADDR 309 -#define VAR_DO_NOT_QUERY_ADDRESS 310 -#define VAR_HIDE_IDENTITY 311 -#define VAR_HIDE_VERSION 312 -#define VAR_IDENTITY 313 -#define VAR_VERSION 314 -#define VAR_HARDEN_GLUE 315 -#define VAR_MODULE_CONF 316 -#define VAR_TRUST_ANCHOR_FILE 317 -#define VAR_TRUST_ANCHOR 318 -#define VAR_VAL_OVERRIDE_DATE 319 -#define VAR_BOGUS_TTL 320 -#define VAR_VAL_CLEAN_ADDITIONAL 321 -#define VAR_VAL_PERMISSIVE_MODE 322 -#define VAR_INCOMING_NUM_TCP 323 -#define VAR_MSG_BUFFER_SIZE 324 -#define VAR_KEY_CACHE_SIZE 325 -#define VAR_KEY_CACHE_SLABS 326 -#define VAR_TRUSTED_KEYS_FILE 327 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 -#define VAR_USE_SYSLOG 329 -#define VAR_OUTGOING_INTERFACE 330 -#define VAR_ROOT_HINTS 331 -#define VAR_DO_NOT_QUERY_LOCALHOST 332 -#define VAR_CACHE_MAX_TTL 333 -#define VAR_HARDEN_DNSSEC_STRIPPED 334 -#define VAR_ACCESS_CONTROL 335 -#define VAR_LOCAL_ZONE 336 -#define VAR_LOCAL_DATA 337 -#define VAR_INTERFACE_AUTOMATIC 338 -#define VAR_STATISTICS_INTERVAL 339 -#define VAR_DO_DAEMONIZE 340 -#define VAR_USE_CAPS_FOR_ID 341 -#define VAR_STATISTICS_CUMULATIVE 342 -#define VAR_OUTGOING_PORT_PERMIT 343 -#define VAR_OUTGOING_PORT_AVOID 344 -#define VAR_DLV_ANCHOR_FILE 345 -#define VAR_DLV_ANCHOR 346 -#define VAR_NEG_CACHE_SIZE 347 -#define VAR_HARDEN_REFERRAL_PATH 348 -#define VAR_PRIVATE_ADDRESS 349 -#define VAR_PRIVATE_DOMAIN 350 -#define VAR_REMOTE_CONTROL 351 -#define VAR_CONTROL_ENABLE 352 -#define VAR_CONTROL_INTERFACE 353 -#define VAR_CONTROL_PORT 354 -#define VAR_SERVER_KEY_FILE 355 -#define VAR_SERVER_CERT_FILE 356 -#define VAR_CONTROL_KEY_FILE 357 -#define VAR_CONTROL_CERT_FILE 358 -#define VAR_CONTROL_USE_CERT 359 -#define VAR_EXTENDED_STATISTICS 360 -#define VAR_LOCAL_DATA_PTR 361 -#define VAR_JOSTLE_TIMEOUT 362 -#define VAR_STUB_PRIME 363 -#define VAR_UNWANTED_REPLY_THRESHOLD 364 -#define VAR_LOG_TIME_ASCII 365 -#define VAR_DOMAIN_INSECURE 366 -#define VAR_PYTHON 367 -#define VAR_PYTHON_SCRIPT 368 -#define VAR_VAL_SIG_SKEW_MIN 369 -#define VAR_VAL_SIG_SKEW_MAX 370 -#define VAR_CACHE_MIN_TTL 371 -#define VAR_VAL_LOG_LEVEL 372 -#define VAR_AUTO_TRUST_ANCHOR_FILE 373 -#define VAR_KEEP_MISSING 374 -#define VAR_ADD_HOLDDOWN 375 -#define VAR_DEL_HOLDDOWN 376 -#define VAR_SO_RCVBUF 377 -#define VAR_EDNS_BUFFER_SIZE 378 -#define VAR_PREFETCH 379 -#define VAR_PREFETCH_KEY 380 -#define VAR_SO_SNDBUF 381 -#define VAR_SO_REUSEPORT 382 -#define VAR_HARDEN_BELOW_NXDOMAIN 383 -#define VAR_IGNORE_CD_FLAG 384 -#define VAR_LOG_QUERIES 385 -#define VAR_LOG_REPLIES 386 -#define VAR_LOG_LOCAL_ACTIONS 387 -#define VAR_TCP_UPSTREAM 388 -#define VAR_SSL_UPSTREAM 389 -#define VAR_SSL_SERVICE_KEY 390 -#define VAR_SSL_SERVICE_PEM 391 -#define VAR_SSL_PORT 392 -#define VAR_FORWARD_FIRST 393 -#define VAR_STUB_SSL_UPSTREAM 394 -#define VAR_FORWARD_SSL_UPSTREAM 395 -#define VAR_TLS_CERT_BUNDLE 396 -#define VAR_HTTPS_PORT 397 -#define VAR_HTTP_ENDPOINT 398 -#define VAR_HTTP_MAX_STREAMS 399 -#define VAR_HTTP_QUERY_BUFFER_SIZE 400 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 401 -#define VAR_HTTP_NODELAY 402 -#define VAR_HTTP_NOTLS_DOWNSTREAM 403 -#define VAR_STUB_FIRST 404 -#define VAR_MINIMAL_RESPONSES 405 -#define VAR_RRSET_ROUNDROBIN 406 -#define VAR_MAX_UDP_SIZE 407 -#define VAR_DELAY_CLOSE 408 -#define VAR_UDP_CONNECT 409 -#define VAR_UNBLOCK_LAN_ZONES 410 -#define VAR_INSECURE_LAN_ZONES 411 -#define VAR_INFRA_CACHE_MIN_RTT 412 -#define VAR_INFRA_KEEP_PROBING 413 -#define VAR_DNS64_PREFIX 414 -#define VAR_DNS64_SYNTHALL 415 -#define VAR_DNS64_IGNORE_AAAA 416 -#define VAR_DNSTAP 417 -#define VAR_DNSTAP_ENABLE 418 -#define VAR_DNSTAP_SOCKET_PATH 419 -#define VAR_DNSTAP_IP 420 -#define VAR_DNSTAP_TLS 421 -#define VAR_DNSTAP_TLS_SERVER_NAME 422 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 423 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 424 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 425 -#define VAR_DNSTAP_SEND_IDENTITY 426 -#define VAR_DNSTAP_SEND_VERSION 427 -#define VAR_DNSTAP_BIDIRECTIONAL 428 -#define VAR_DNSTAP_IDENTITY 429 -#define VAR_DNSTAP_VERSION 430 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 431 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 432 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 433 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 434 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 435 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 436 -#define VAR_RESPONSE_IP_TAG 437 -#define VAR_RESPONSE_IP 438 -#define VAR_RESPONSE_IP_DATA 439 -#define VAR_HARDEN_ALGO_DOWNGRADE 440 -#define VAR_IP_TRANSPARENT 441 -#define VAR_IP_DSCP 442 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 443 -#define VAR_IP_RATELIMIT 444 -#define VAR_IP_RATELIMIT_SLABS 445 -#define VAR_IP_RATELIMIT_SIZE 446 -#define VAR_RATELIMIT 447 -#define VAR_RATELIMIT_SLABS 448 -#define VAR_RATELIMIT_SIZE 449 -#define VAR_RATELIMIT_FOR_DOMAIN 450 -#define VAR_RATELIMIT_BELOW_DOMAIN 451 -#define VAR_IP_RATELIMIT_FACTOR 452 -#define VAR_RATELIMIT_FACTOR 453 -#define VAR_SEND_CLIENT_SUBNET 454 -#define VAR_CLIENT_SUBNET_ZONE 455 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 456 -#define VAR_CLIENT_SUBNET_OPCODE 457 -#define VAR_MAX_CLIENT_SUBNET_IPV4 458 -#define VAR_MAX_CLIENT_SUBNET_IPV6 459 -#define VAR_MIN_CLIENT_SUBNET_IPV4 460 -#define VAR_MIN_CLIENT_SUBNET_IPV6 461 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 462 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 463 -#define VAR_CAPS_WHITELIST 464 -#define VAR_CACHE_MAX_NEGATIVE_TTL 465 -#define VAR_PERMIT_SMALL_HOLDDOWN 466 -#define VAR_QNAME_MINIMISATION 467 -#define VAR_QNAME_MINIMISATION_STRICT 468 -#define VAR_IP_FREEBIND 469 -#define VAR_DEFINE_TAG 470 -#define VAR_LOCAL_ZONE_TAG 471 -#define VAR_ACCESS_CONTROL_TAG 472 -#define VAR_LOCAL_ZONE_OVERRIDE 473 -#define VAR_ACCESS_CONTROL_TAG_ACTION 474 -#define VAR_ACCESS_CONTROL_TAG_DATA 475 -#define VAR_VIEW 476 -#define VAR_ACCESS_CONTROL_VIEW 477 -#define VAR_VIEW_FIRST 478 -#define VAR_SERVE_EXPIRED 479 -#define VAR_SERVE_EXPIRED_TTL 480 -#define VAR_SERVE_EXPIRED_TTL_RESET 481 -#define VAR_SERVE_EXPIRED_REPLY_TTL 482 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 -#define VAR_SERVE_ORIGINAL_TTL 484 -#define VAR_FAKE_DSA 485 -#define VAR_FAKE_SHA1 486 -#define VAR_LOG_IDENTITY 487 -#define VAR_HIDE_TRUSTANCHOR 488 -#define VAR_TRUST_ANCHOR_SIGNALING 489 -#define VAR_AGGRESSIVE_NSEC 490 -#define VAR_USE_SYSTEMD 491 -#define VAR_SHM_ENABLE 492 -#define VAR_SHM_KEY 493 -#define VAR_ROOT_KEY_SENTINEL 494 -#define VAR_DNSCRYPT 495 -#define VAR_DNSCRYPT_ENABLE 496 -#define VAR_DNSCRYPT_PORT 497 -#define VAR_DNSCRYPT_PROVIDER 498 -#define VAR_DNSCRYPT_SECRET_KEY 499 -#define VAR_DNSCRYPT_PROVIDER_CERT 500 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505 -#define VAR_PAD_RESPONSES 506 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 507 -#define VAR_PAD_QUERIES 508 -#define VAR_PAD_QUERIES_BLOCK_SIZE 509 -#define VAR_IPSECMOD_ENABLED 510 -#define VAR_IPSECMOD_HOOK 511 -#define VAR_IPSECMOD_IGNORE_BOGUS 512 -#define VAR_IPSECMOD_MAX_TTL 513 -#define VAR_IPSECMOD_WHITELIST 514 -#define VAR_IPSECMOD_STRICT 515 -#define VAR_CACHEDB 516 -#define VAR_CACHEDB_BACKEND 517 -#define VAR_CACHEDB_SECRETSEED 518 -#define VAR_CACHEDB_REDISHOST 519 -#define VAR_CACHEDB_REDISPORT 520 -#define VAR_CACHEDB_REDISTIMEOUT 521 -#define VAR_CACHEDB_REDISEXPIRERECORDS 522 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523 -#define VAR_FOR_UPSTREAM 524 -#define VAR_AUTH_ZONE 525 -#define VAR_ZONEFILE 526 -#define VAR_MASTER 527 -#define VAR_URL 528 -#define VAR_FOR_DOWNSTREAM 529 -#define VAR_FALLBACK_ENABLED 530 -#define VAR_TLS_ADDITIONAL_PORT 531 -#define VAR_LOW_RTT 532 -#define VAR_LOW_RTT_PERMIL 533 -#define VAR_FAST_SERVER_PERMIL 534 -#define VAR_FAST_SERVER_NUM 535 -#define VAR_ALLOW_NOTIFY 536 -#define VAR_TLS_WIN_CERT 537 -#define VAR_TCP_CONNECTION_LIMIT 538 -#define VAR_FORWARD_NO_CACHE 539 -#define VAR_STUB_NO_CACHE 540 -#define VAR_LOG_SERVFAIL 541 -#define VAR_DENY_ANY 542 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 543 -#define VAR_LOG_TAG_QUERYREPLY 544 -#define VAR_STREAM_WAIT_SIZE 545 -#define VAR_TLS_CIPHERS 546 -#define VAR_TLS_CIPHERSUITES 547 -#define VAR_TLS_USE_SNI 548 -#define VAR_IPSET 549 -#define VAR_IPSET_NAME_V4 550 -#define VAR_IPSET_NAME_V6 551 -#define VAR_TLS_SESSION_TICKET_KEYS 552 -#define VAR_RPZ 553 -#define VAR_TAGS 554 -#define VAR_RPZ_ACTION_OVERRIDE 555 -#define VAR_RPZ_CNAME_OVERRIDE 556 -#define VAR_RPZ_LOG 557 -#define VAR_RPZ_LOG_NAME 558 -#define VAR_DYNLIB 559 -#define VAR_DYNLIB_FILE 560 -#define VAR_EDNS_CLIENT_STRING 561 -#define VAR_EDNS_CLIENT_STRING_OPCODE 562 -#define VAR_NSID 563 -#define VAR_ZONEMD_PERMISSIVE_MODE 564 -#define VAR_ZONEMD_REJECT_ABSENCE 565 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 66 "./util/configparser.y" - - char* str; - -#line 776 "util/configparser.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ +#include "configparser.h" /* Symbol kind. */ enum yysymbol_kind_t { @@ -895,548 +229,558 @@ enum yysymbol_kind_t YYSYMBOL_VAR_CONTROL_KEY_FILE = 102, /* VAR_CONTROL_KEY_FILE */ YYSYMBOL_VAR_CONTROL_CERT_FILE = 103, /* VAR_CONTROL_CERT_FILE */ YYSYMBOL_VAR_CONTROL_USE_CERT = 104, /* VAR_CONTROL_USE_CERT */ - YYSYMBOL_VAR_EXTENDED_STATISTICS = 105, /* VAR_EXTENDED_STATISTICS */ - YYSYMBOL_VAR_LOCAL_DATA_PTR = 106, /* VAR_LOCAL_DATA_PTR */ - YYSYMBOL_VAR_JOSTLE_TIMEOUT = 107, /* VAR_JOSTLE_TIMEOUT */ - YYSYMBOL_VAR_STUB_PRIME = 108, /* VAR_STUB_PRIME */ - YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 109, /* VAR_UNWANTED_REPLY_THRESHOLD */ - YYSYMBOL_VAR_LOG_TIME_ASCII = 110, /* VAR_LOG_TIME_ASCII */ - YYSYMBOL_VAR_DOMAIN_INSECURE = 111, /* VAR_DOMAIN_INSECURE */ - YYSYMBOL_VAR_PYTHON = 112, /* VAR_PYTHON */ - YYSYMBOL_VAR_PYTHON_SCRIPT = 113, /* VAR_PYTHON_SCRIPT */ - YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 114, /* VAR_VAL_SIG_SKEW_MIN */ - YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 115, /* VAR_VAL_SIG_SKEW_MAX */ - YYSYMBOL_VAR_CACHE_MIN_TTL = 116, /* VAR_CACHE_MIN_TTL */ - YYSYMBOL_VAR_VAL_LOG_LEVEL = 117, /* VAR_VAL_LOG_LEVEL */ - YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 118, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - YYSYMBOL_VAR_KEEP_MISSING = 119, /* VAR_KEEP_MISSING */ - YYSYMBOL_VAR_ADD_HOLDDOWN = 120, /* VAR_ADD_HOLDDOWN */ - YYSYMBOL_VAR_DEL_HOLDDOWN = 121, /* VAR_DEL_HOLDDOWN */ - YYSYMBOL_VAR_SO_RCVBUF = 122, /* VAR_SO_RCVBUF */ - YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 123, /* VAR_EDNS_BUFFER_SIZE */ - YYSYMBOL_VAR_PREFETCH = 124, /* VAR_PREFETCH */ - YYSYMBOL_VAR_PREFETCH_KEY = 125, /* VAR_PREFETCH_KEY */ - YYSYMBOL_VAR_SO_SNDBUF = 126, /* VAR_SO_SNDBUF */ - YYSYMBOL_VAR_SO_REUSEPORT = 127, /* VAR_SO_REUSEPORT */ - YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 128, /* VAR_HARDEN_BELOW_NXDOMAIN */ - YYSYMBOL_VAR_IGNORE_CD_FLAG = 129, /* VAR_IGNORE_CD_FLAG */ - YYSYMBOL_VAR_LOG_QUERIES = 130, /* VAR_LOG_QUERIES */ - YYSYMBOL_VAR_LOG_REPLIES = 131, /* VAR_LOG_REPLIES */ - YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 132, /* VAR_LOG_LOCAL_ACTIONS */ - YYSYMBOL_VAR_TCP_UPSTREAM = 133, /* VAR_TCP_UPSTREAM */ - YYSYMBOL_VAR_SSL_UPSTREAM = 134, /* VAR_SSL_UPSTREAM */ - YYSYMBOL_VAR_SSL_SERVICE_KEY = 135, /* VAR_SSL_SERVICE_KEY */ - YYSYMBOL_VAR_SSL_SERVICE_PEM = 136, /* VAR_SSL_SERVICE_PEM */ - YYSYMBOL_VAR_SSL_PORT = 137, /* VAR_SSL_PORT */ - YYSYMBOL_VAR_FORWARD_FIRST = 138, /* VAR_FORWARD_FIRST */ - YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 139, /* VAR_STUB_SSL_UPSTREAM */ - YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 140, /* VAR_FORWARD_SSL_UPSTREAM */ - YYSYMBOL_VAR_TLS_CERT_BUNDLE = 141, /* VAR_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_HTTPS_PORT = 142, /* VAR_HTTPS_PORT */ - YYSYMBOL_VAR_HTTP_ENDPOINT = 143, /* VAR_HTTP_ENDPOINT */ - YYSYMBOL_VAR_HTTP_MAX_STREAMS = 144, /* VAR_HTTP_MAX_STREAMS */ - YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 145, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 146, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_NODELAY = 147, /* VAR_HTTP_NODELAY */ - YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 148, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - YYSYMBOL_VAR_STUB_FIRST = 149, /* VAR_STUB_FIRST */ - YYSYMBOL_VAR_MINIMAL_RESPONSES = 150, /* VAR_MINIMAL_RESPONSES */ - YYSYMBOL_VAR_RRSET_ROUNDROBIN = 151, /* VAR_RRSET_ROUNDROBIN */ - YYSYMBOL_VAR_MAX_UDP_SIZE = 152, /* VAR_MAX_UDP_SIZE */ - YYSYMBOL_VAR_DELAY_CLOSE = 153, /* VAR_DELAY_CLOSE */ - YYSYMBOL_VAR_UDP_CONNECT = 154, /* VAR_UDP_CONNECT */ - YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 155, /* VAR_UNBLOCK_LAN_ZONES */ - YYSYMBOL_VAR_INSECURE_LAN_ZONES = 156, /* VAR_INSECURE_LAN_ZONES */ - YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 157, /* VAR_INFRA_CACHE_MIN_RTT */ - YYSYMBOL_VAR_INFRA_KEEP_PROBING = 158, /* VAR_INFRA_KEEP_PROBING */ - YYSYMBOL_VAR_DNS64_PREFIX = 159, /* VAR_DNS64_PREFIX */ - YYSYMBOL_VAR_DNS64_SYNTHALL = 160, /* VAR_DNS64_SYNTHALL */ - YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 161, /* VAR_DNS64_IGNORE_AAAA */ - YYSYMBOL_VAR_DNSTAP = 162, /* VAR_DNSTAP */ - YYSYMBOL_VAR_DNSTAP_ENABLE = 163, /* VAR_DNSTAP_ENABLE */ - YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 164, /* VAR_DNSTAP_SOCKET_PATH */ - YYSYMBOL_VAR_DNSTAP_IP = 165, /* VAR_DNSTAP_IP */ - YYSYMBOL_VAR_DNSTAP_TLS = 166, /* VAR_DNSTAP_TLS */ - YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 167, /* VAR_DNSTAP_TLS_SERVER_NAME */ - YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 168, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 169, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 170, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 171, /* VAR_DNSTAP_SEND_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 172, /* VAR_DNSTAP_SEND_VERSION */ - YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 173, /* VAR_DNSTAP_BIDIRECTIONAL */ - YYSYMBOL_VAR_DNSTAP_IDENTITY = 174, /* VAR_DNSTAP_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_VERSION = 175, /* VAR_DNSTAP_VERSION */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 176, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 177, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 178, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 179, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_RESPONSE_IP_TAG = 182, /* VAR_RESPONSE_IP_TAG */ - YYSYMBOL_VAR_RESPONSE_IP = 183, /* VAR_RESPONSE_IP */ - YYSYMBOL_VAR_RESPONSE_IP_DATA = 184, /* VAR_RESPONSE_IP_DATA */ - YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 185, /* VAR_HARDEN_ALGO_DOWNGRADE */ - YYSYMBOL_VAR_IP_TRANSPARENT = 186, /* VAR_IP_TRANSPARENT */ - YYSYMBOL_VAR_IP_DSCP = 187, /* VAR_IP_DSCP */ - YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 188, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - YYSYMBOL_VAR_IP_RATELIMIT = 189, /* VAR_IP_RATELIMIT */ - YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 190, /* VAR_IP_RATELIMIT_SLABS */ - YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 191, /* VAR_IP_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT = 192, /* VAR_RATELIMIT */ - YYSYMBOL_VAR_RATELIMIT_SLABS = 193, /* VAR_RATELIMIT_SLABS */ - YYSYMBOL_VAR_RATELIMIT_SIZE = 194, /* VAR_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 195, /* VAR_RATELIMIT_FOR_DOMAIN */ - YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 196, /* VAR_RATELIMIT_BELOW_DOMAIN */ - YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 197, /* VAR_IP_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_RATELIMIT_FACTOR = 198, /* VAR_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 199, /* VAR_SEND_CLIENT_SUBNET */ - YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 200, /* VAR_CLIENT_SUBNET_ZONE */ - YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 201, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 202, /* VAR_CLIENT_SUBNET_OPCODE */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 203, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 204, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 205, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 206, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 207, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 208, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - YYSYMBOL_VAR_CAPS_WHITELIST = 209, /* VAR_CAPS_WHITELIST */ - YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 210, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 211, /* VAR_PERMIT_SMALL_HOLDDOWN */ - YYSYMBOL_VAR_QNAME_MINIMISATION = 212, /* VAR_QNAME_MINIMISATION */ - YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 213, /* VAR_QNAME_MINIMISATION_STRICT */ - YYSYMBOL_VAR_IP_FREEBIND = 214, /* VAR_IP_FREEBIND */ - YYSYMBOL_VAR_DEFINE_TAG = 215, /* VAR_DEFINE_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_TAG = 216, /* VAR_LOCAL_ZONE_TAG */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 217, /* VAR_ACCESS_CONTROL_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 218, /* VAR_LOCAL_ZONE_OVERRIDE */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 219, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 220, /* VAR_ACCESS_CONTROL_TAG_DATA */ - YYSYMBOL_VAR_VIEW = 221, /* VAR_VIEW */ - YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 222, /* VAR_ACCESS_CONTROL_VIEW */ - YYSYMBOL_VAR_VIEW_FIRST = 223, /* VAR_VIEW_FIRST */ - YYSYMBOL_VAR_SERVE_EXPIRED = 224, /* VAR_SERVE_EXPIRED */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 225, /* VAR_SERVE_EXPIRED_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 226, /* VAR_SERVE_EXPIRED_TTL_RESET */ - YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 227, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 228, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 229, /* VAR_SERVE_ORIGINAL_TTL */ - YYSYMBOL_VAR_FAKE_DSA = 230, /* VAR_FAKE_DSA */ - YYSYMBOL_VAR_FAKE_SHA1 = 231, /* VAR_FAKE_SHA1 */ - YYSYMBOL_VAR_LOG_IDENTITY = 232, /* VAR_LOG_IDENTITY */ - YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 233, /* VAR_HIDE_TRUSTANCHOR */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 234, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 235, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 236, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 237, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 238, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 239, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 240, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 241, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 242, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 243, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 244, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 245, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 246, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 247, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 248, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 249, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 250, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_PAD_RESPONSES = 251, /* VAR_PAD_RESPONSES */ - YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 252, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - YYSYMBOL_VAR_PAD_QUERIES = 253, /* VAR_PAD_QUERIES */ - YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 254, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 255, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 256, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 257, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 258, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 259, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 260, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 261, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 262, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 263, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 264, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 265, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 266, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 267, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 268, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 269, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 270, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 271, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 272, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 273, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 274, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 275, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 276, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 277, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 278, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 279, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 280, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 281, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 282, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 283, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 284, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 285, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 286, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 287, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 288, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 289, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 290, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 291, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 292, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 293, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 294, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 295, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 296, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 297, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 298, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 299, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 300, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 301, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 302, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 303, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 304, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 305, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 306, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 307, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 308, /* VAR_NSID */ - YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 309, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 310, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 311, /* $accept */ - YYSYMBOL_toplevelvars = 312, /* toplevelvars */ - YYSYMBOL_toplevelvar = 313, /* toplevelvar */ - YYSYMBOL_force_toplevel = 314, /* force_toplevel */ - YYSYMBOL_serverstart = 315, /* serverstart */ - YYSYMBOL_contents_server = 316, /* contents_server */ - YYSYMBOL_content_server = 317, /* content_server */ - YYSYMBOL_stubstart = 318, /* stubstart */ - YYSYMBOL_contents_stub = 319, /* contents_stub */ - YYSYMBOL_content_stub = 320, /* content_stub */ - YYSYMBOL_forwardstart = 321, /* forwardstart */ - YYSYMBOL_contents_forward = 322, /* contents_forward */ - YYSYMBOL_content_forward = 323, /* content_forward */ - YYSYMBOL_viewstart = 324, /* viewstart */ - YYSYMBOL_contents_view = 325, /* contents_view */ - YYSYMBOL_content_view = 326, /* content_view */ - YYSYMBOL_authstart = 327, /* authstart */ - YYSYMBOL_contents_auth = 328, /* contents_auth */ - YYSYMBOL_content_auth = 329, /* content_auth */ - YYSYMBOL_rpz_tag = 330, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 331, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 332, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 333, /* rpz_log */ - YYSYMBOL_rpz_log_name = 334, /* rpz_log_name */ - YYSYMBOL_rpzstart = 335, /* rpzstart */ - YYSYMBOL_contents_rpz = 336, /* contents_rpz */ - YYSYMBOL_content_rpz = 337, /* content_rpz */ - YYSYMBOL_server_num_threads = 338, /* server_num_threads */ - YYSYMBOL_server_verbosity = 339, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 340, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 341, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 342, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 343, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 344, /* server_shm_key */ - YYSYMBOL_server_port = 345, /* server_port */ - YYSYMBOL_server_send_client_subnet = 346, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 347, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 348, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 349, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 350, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 351, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 352, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 353, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 354, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 355, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 356, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 357, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 358, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 359, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 360, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 361, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 362, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 363, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 364, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 365, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 366, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 367, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 368, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 369, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 370, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 371, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 372, /* server_tcp_idle_timeout */ - YYSYMBOL_server_tcp_keepalive = 373, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 374, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 375, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 376, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 377, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 378, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 379, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 380, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 381, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 382, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 383, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 384, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 385, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 386, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 387, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 388, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 389, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 390, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 391, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 392, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 393, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 394, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 395, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 396, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 397, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 398, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 399, /* server_log_queries */ - YYSYMBOL_server_log_replies = 400, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 401, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 402, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 403, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 404, /* server_chroot */ - YYSYMBOL_server_username = 405, /* server_username */ - YYSYMBOL_server_directory = 406, /* server_directory */ - YYSYMBOL_server_logfile = 407, /* server_logfile */ - YYSYMBOL_server_pidfile = 408, /* server_pidfile */ - YYSYMBOL_server_root_hints = 409, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 410, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 411, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 412, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 413, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 414, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 415, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 416, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 417, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 418, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 419, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 420, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 421, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 422, /* server_identity */ - YYSYMBOL_server_version = 423, /* server_version */ - YYSYMBOL_server_nsid = 424, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 425, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 426, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 427, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 428, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 429, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 430, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 431, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 432, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 433, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 434, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 435, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 436, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 437, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 438, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 439, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 440, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 441, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 442, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 443, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 444, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 445, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 446, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 447, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 448, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 449, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 450, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 451, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 452, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 453, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 454, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 455, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 456, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 457, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 458, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 459, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 460, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 461, /* server_private_address */ - YYSYMBOL_server_private_domain = 462, /* server_private_domain */ - YYSYMBOL_server_prefetch = 463, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 464, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 465, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 466, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 467, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 468, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 469, /* server_access_control */ - YYSYMBOL_server_module_conf = 470, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 471, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 472, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 473, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 474, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 475, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 476, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 477, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 478, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 479, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 480, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 481, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 482, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 483, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 484, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 485, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 486, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 487, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 488, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 489, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 490, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 491, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 492, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 493, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 494, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 495, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 496, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 497, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 498, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 499, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 500, /* server_local_zone */ - YYSYMBOL_server_local_data = 501, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 502, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 503, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 504, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 505, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 506, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 507, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 508, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 509, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 510, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 511, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 512, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 513, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 514, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 515, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 516, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 517, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 518, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 519, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 520, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 521, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 522, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 523, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 524, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 525, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 526, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 527, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 528, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 529, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 530, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 531, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 532, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 533, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 534, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 535, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 536, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 537, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 538, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 539, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 540, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 541, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 542, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 543, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 544, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 545, /* stub_name */ - YYSYMBOL_stub_host = 546, /* stub_host */ - YYSYMBOL_stub_addr = 547, /* stub_addr */ - YYSYMBOL_stub_first = 548, /* stub_first */ - YYSYMBOL_stub_no_cache = 549, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 550, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 551, /* stub_prime */ - YYSYMBOL_forward_name = 552, /* forward_name */ - YYSYMBOL_forward_host = 553, /* forward_host */ - YYSYMBOL_forward_addr = 554, /* forward_addr */ - YYSYMBOL_forward_first = 555, /* forward_first */ - YYSYMBOL_forward_no_cache = 556, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 557, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 558, /* auth_name */ - YYSYMBOL_auth_zonefile = 559, /* auth_zonefile */ - YYSYMBOL_auth_master = 560, /* auth_master */ - YYSYMBOL_auth_url = 561, /* auth_url */ - YYSYMBOL_auth_allow_notify = 562, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_reject_absence = 563, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 564, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 565, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 566, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 567, /* view_name */ - YYSYMBOL_view_local_zone = 568, /* view_local_zone */ - YYSYMBOL_view_response_ip = 569, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 570, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 571, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 572, /* view_local_data_ptr */ - YYSYMBOL_view_first = 573, /* view_first */ - YYSYMBOL_rcstart = 574, /* rcstart */ - YYSYMBOL_contents_rc = 575, /* contents_rc */ - YYSYMBOL_content_rc = 576, /* content_rc */ - YYSYMBOL_rc_control_enable = 577, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 578, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 579, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 580, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 581, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 582, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 583, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 584, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 585, /* dtstart */ - YYSYMBOL_contents_dt = 586, /* contents_dt */ - YYSYMBOL_content_dt = 587, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 588, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 589, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 590, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 591, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 592, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 593, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 594, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 595, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 596, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 597, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 598, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 599, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 600, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 601, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 602, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 603, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 604, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 605, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 606, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 607, /* pythonstart */ - YYSYMBOL_contents_py = 608, /* contents_py */ - YYSYMBOL_content_py = 609, /* content_py */ - YYSYMBOL_py_script = 610, /* py_script */ - YYSYMBOL_dynlibstart = 611, /* dynlibstart */ - YYSYMBOL_contents_dl = 612, /* contents_dl */ - YYSYMBOL_content_dl = 613, /* content_dl */ - YYSYMBOL_dl_file = 614, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 615, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 616, /* server_log_identity */ - YYSYMBOL_server_response_ip = 617, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 618, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 619, /* dnscstart */ - YYSYMBOL_contents_dnsc = 620, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 621, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 622, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 623, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 624, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 625, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 626, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 627, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 628, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 629, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 630, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 631, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 632, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 633, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 634, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 635, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 636, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 637, /* redis_server_host */ - YYSYMBOL_redis_server_port = 638, /* redis_server_port */ - YYSYMBOL_redis_timeout = 639, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 640, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 641, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 642, /* ipsetstart */ - YYSYMBOL_contents_ipset = 643, /* contents_ipset */ - YYSYMBOL_content_ipset = 644, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 645, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 646 /* ipset_name_v6 */ + YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 105, /* VAR_TCP_REUSE_TIMEOUT */ + YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 106, /* VAR_MAX_REUSE_TCP_QUERIES */ + YYSYMBOL_VAR_EXTENDED_STATISTICS = 107, /* VAR_EXTENDED_STATISTICS */ + YYSYMBOL_VAR_LOCAL_DATA_PTR = 108, /* VAR_LOCAL_DATA_PTR */ + YYSYMBOL_VAR_JOSTLE_TIMEOUT = 109, /* VAR_JOSTLE_TIMEOUT */ + YYSYMBOL_VAR_STUB_PRIME = 110, /* VAR_STUB_PRIME */ + YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 111, /* VAR_UNWANTED_REPLY_THRESHOLD */ + YYSYMBOL_VAR_LOG_TIME_ASCII = 112, /* VAR_LOG_TIME_ASCII */ + YYSYMBOL_VAR_DOMAIN_INSECURE = 113, /* VAR_DOMAIN_INSECURE */ + YYSYMBOL_VAR_PYTHON = 114, /* VAR_PYTHON */ + YYSYMBOL_VAR_PYTHON_SCRIPT = 115, /* VAR_PYTHON_SCRIPT */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116, /* VAR_VAL_SIG_SKEW_MIN */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117, /* VAR_VAL_SIG_SKEW_MAX */ + YYSYMBOL_VAR_VAL_MAX_RESTART = 118, /* VAR_VAL_MAX_RESTART */ + YYSYMBOL_VAR_CACHE_MIN_TTL = 119, /* VAR_CACHE_MIN_TTL */ + YYSYMBOL_VAR_VAL_LOG_LEVEL = 120, /* VAR_VAL_LOG_LEVEL */ + YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 121, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_KEEP_MISSING = 122, /* VAR_KEEP_MISSING */ + YYSYMBOL_VAR_ADD_HOLDDOWN = 123, /* VAR_ADD_HOLDDOWN */ + YYSYMBOL_VAR_DEL_HOLDDOWN = 124, /* VAR_DEL_HOLDDOWN */ + YYSYMBOL_VAR_SO_RCVBUF = 125, /* VAR_SO_RCVBUF */ + YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 126, /* VAR_EDNS_BUFFER_SIZE */ + YYSYMBOL_VAR_PREFETCH = 127, /* VAR_PREFETCH */ + YYSYMBOL_VAR_PREFETCH_KEY = 128, /* VAR_PREFETCH_KEY */ + YYSYMBOL_VAR_SO_SNDBUF = 129, /* VAR_SO_SNDBUF */ + YYSYMBOL_VAR_SO_REUSEPORT = 130, /* VAR_SO_REUSEPORT */ + YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 131, /* VAR_HARDEN_BELOW_NXDOMAIN */ + YYSYMBOL_VAR_IGNORE_CD_FLAG = 132, /* VAR_IGNORE_CD_FLAG */ + YYSYMBOL_VAR_LOG_QUERIES = 133, /* VAR_LOG_QUERIES */ + YYSYMBOL_VAR_LOG_REPLIES = 134, /* VAR_LOG_REPLIES */ + YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 135, /* VAR_LOG_LOCAL_ACTIONS */ + YYSYMBOL_VAR_TCP_UPSTREAM = 136, /* VAR_TCP_UPSTREAM */ + YYSYMBOL_VAR_SSL_UPSTREAM = 137, /* VAR_SSL_UPSTREAM */ + YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 138, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + YYSYMBOL_VAR_SSL_SERVICE_KEY = 139, /* VAR_SSL_SERVICE_KEY */ + YYSYMBOL_VAR_SSL_SERVICE_PEM = 140, /* VAR_SSL_SERVICE_PEM */ + YYSYMBOL_VAR_SSL_PORT = 141, /* VAR_SSL_PORT */ + YYSYMBOL_VAR_FORWARD_FIRST = 142, /* VAR_FORWARD_FIRST */ + YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 143, /* VAR_STUB_SSL_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 144, /* VAR_FORWARD_SSL_UPSTREAM */ + YYSYMBOL_VAR_TLS_CERT_BUNDLE = 145, /* VAR_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_HTTPS_PORT = 146, /* VAR_HTTPS_PORT */ + YYSYMBOL_VAR_HTTP_ENDPOINT = 147, /* VAR_HTTP_ENDPOINT */ + YYSYMBOL_VAR_HTTP_MAX_STREAMS = 148, /* VAR_HTTP_MAX_STREAMS */ + YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 149, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 150, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_NODELAY = 151, /* VAR_HTTP_NODELAY */ + YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 152, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + YYSYMBOL_VAR_STUB_FIRST = 153, /* VAR_STUB_FIRST */ + YYSYMBOL_VAR_MINIMAL_RESPONSES = 154, /* VAR_MINIMAL_RESPONSES */ + YYSYMBOL_VAR_RRSET_ROUNDROBIN = 155, /* VAR_RRSET_ROUNDROBIN */ + YYSYMBOL_VAR_MAX_UDP_SIZE = 156, /* VAR_MAX_UDP_SIZE */ + YYSYMBOL_VAR_DELAY_CLOSE = 157, /* VAR_DELAY_CLOSE */ + YYSYMBOL_VAR_UDP_CONNECT = 158, /* VAR_UDP_CONNECT */ + YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 159, /* VAR_UNBLOCK_LAN_ZONES */ + YYSYMBOL_VAR_INSECURE_LAN_ZONES = 160, /* VAR_INSECURE_LAN_ZONES */ + YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 161, /* VAR_INFRA_CACHE_MIN_RTT */ + YYSYMBOL_VAR_INFRA_KEEP_PROBING = 162, /* VAR_INFRA_KEEP_PROBING */ + YYSYMBOL_VAR_DNS64_PREFIX = 163, /* VAR_DNS64_PREFIX */ + YYSYMBOL_VAR_DNS64_SYNTHALL = 164, /* VAR_DNS64_SYNTHALL */ + YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 165, /* VAR_DNS64_IGNORE_AAAA */ + YYSYMBOL_VAR_DNSTAP = 166, /* VAR_DNSTAP */ + YYSYMBOL_VAR_DNSTAP_ENABLE = 167, /* VAR_DNSTAP_ENABLE */ + YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 168, /* VAR_DNSTAP_SOCKET_PATH */ + YYSYMBOL_VAR_DNSTAP_IP = 169, /* VAR_DNSTAP_IP */ + YYSYMBOL_VAR_DNSTAP_TLS = 170, /* VAR_DNSTAP_TLS */ + YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 171, /* VAR_DNSTAP_TLS_SERVER_NAME */ + YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 172, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 173, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 174, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 175, /* VAR_DNSTAP_SEND_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 176, /* VAR_DNSTAP_SEND_VERSION */ + YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 177, /* VAR_DNSTAP_BIDIRECTIONAL */ + YYSYMBOL_VAR_DNSTAP_IDENTITY = 178, /* VAR_DNSTAP_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_VERSION = 179, /* VAR_DNSTAP_VERSION */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 184, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 185, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_RESPONSE_IP_TAG = 186, /* VAR_RESPONSE_IP_TAG */ + YYSYMBOL_VAR_RESPONSE_IP = 187, /* VAR_RESPONSE_IP */ + YYSYMBOL_VAR_RESPONSE_IP_DATA = 188, /* VAR_RESPONSE_IP_DATA */ + YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 189, /* VAR_HARDEN_ALGO_DOWNGRADE */ + YYSYMBOL_VAR_IP_TRANSPARENT = 190, /* VAR_IP_TRANSPARENT */ + YYSYMBOL_VAR_IP_DSCP = 191, /* VAR_IP_DSCP */ + YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 192, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + YYSYMBOL_VAR_IP_RATELIMIT = 193, /* VAR_IP_RATELIMIT */ + YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 194, /* VAR_IP_RATELIMIT_SLABS */ + YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 195, /* VAR_IP_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT = 196, /* VAR_RATELIMIT */ + YYSYMBOL_VAR_RATELIMIT_SLABS = 197, /* VAR_RATELIMIT_SLABS */ + YYSYMBOL_VAR_RATELIMIT_SIZE = 198, /* VAR_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 199, /* VAR_RATELIMIT_FOR_DOMAIN */ + YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 200, /* VAR_RATELIMIT_BELOW_DOMAIN */ + YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 201, /* VAR_IP_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_RATELIMIT_FACTOR = 202, /* VAR_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 203, /* VAR_SEND_CLIENT_SUBNET */ + YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 204, /* VAR_CLIENT_SUBNET_ZONE */ + YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 205, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 206, /* VAR_CLIENT_SUBNET_OPCODE */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 207, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 208, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 209, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 210, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 211, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 212, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + YYSYMBOL_VAR_CAPS_WHITELIST = 213, /* VAR_CAPS_WHITELIST */ + YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 214, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 215, /* VAR_PERMIT_SMALL_HOLDDOWN */ + YYSYMBOL_VAR_QNAME_MINIMISATION = 216, /* VAR_QNAME_MINIMISATION */ + YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 217, /* VAR_QNAME_MINIMISATION_STRICT */ + YYSYMBOL_VAR_IP_FREEBIND = 218, /* VAR_IP_FREEBIND */ + YYSYMBOL_VAR_DEFINE_TAG = 219, /* VAR_DEFINE_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_TAG = 220, /* VAR_LOCAL_ZONE_TAG */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 221, /* VAR_ACCESS_CONTROL_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 222, /* VAR_LOCAL_ZONE_OVERRIDE */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 223, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 224, /* VAR_ACCESS_CONTROL_TAG_DATA */ + YYSYMBOL_VAR_VIEW = 225, /* VAR_VIEW */ + YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 226, /* VAR_ACCESS_CONTROL_VIEW */ + YYSYMBOL_VAR_VIEW_FIRST = 227, /* VAR_VIEW_FIRST */ + YYSYMBOL_VAR_SERVE_EXPIRED = 228, /* VAR_SERVE_EXPIRED */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 229, /* VAR_SERVE_EXPIRED_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 230, /* VAR_SERVE_EXPIRED_TTL_RESET */ + YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 231, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 232, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 233, /* VAR_SERVE_ORIGINAL_TTL */ + YYSYMBOL_VAR_FAKE_DSA = 234, /* VAR_FAKE_DSA */ + YYSYMBOL_VAR_FAKE_SHA1 = 235, /* VAR_FAKE_SHA1 */ + YYSYMBOL_VAR_LOG_IDENTITY = 236, /* VAR_LOG_IDENTITY */ + YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 237, /* VAR_HIDE_TRUSTANCHOR */ + YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 238, /* VAR_TRUST_ANCHOR_SIGNALING */ + YYSYMBOL_VAR_AGGRESSIVE_NSEC = 239, /* VAR_AGGRESSIVE_NSEC */ + YYSYMBOL_VAR_USE_SYSTEMD = 240, /* VAR_USE_SYSTEMD */ + YYSYMBOL_VAR_SHM_ENABLE = 241, /* VAR_SHM_ENABLE */ + YYSYMBOL_VAR_SHM_KEY = 242, /* VAR_SHM_KEY */ + YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 243, /* VAR_ROOT_KEY_SENTINEL */ + YYSYMBOL_VAR_DNSCRYPT = 244, /* VAR_DNSCRYPT */ + YYSYMBOL_VAR_DNSCRYPT_ENABLE = 245, /* VAR_DNSCRYPT_ENABLE */ + YYSYMBOL_VAR_DNSCRYPT_PORT = 246, /* VAR_DNSCRYPT_PORT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 247, /* VAR_DNSCRYPT_PROVIDER */ + YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 248, /* VAR_DNSCRYPT_SECRET_KEY */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 249, /* VAR_DNSCRYPT_PROVIDER_CERT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 250, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 251, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 252, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 253, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 254, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + YYSYMBOL_VAR_PAD_RESPONSES = 255, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 256, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 257, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 258, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 259, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 260, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 261, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 262, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 263, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 264, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 265, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 266, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 267, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 268, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 269, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 270, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 271, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 272, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 273, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 274, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 275, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 276, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 277, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 278, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 279, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 280, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 281, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 282, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 283, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 284, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 285, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 286, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 287, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 288, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 289, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 290, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 291, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 292, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 293, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 294, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 295, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 296, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 297, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 298, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 299, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 300, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 301, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 302, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 303, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 304, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 305, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 306, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 307, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 308, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 309, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 310, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 311, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 312, /* VAR_NSID */ + YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 313, /* VAR_ZONEMD_PERMISSIVE_MODE */ + YYSYMBOL_VAR_ZONEMD_CHECK = 314, /* VAR_ZONEMD_CHECK */ + YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 315, /* VAR_ZONEMD_REJECT_ABSENCE */ + YYSYMBOL_YYACCEPT = 316, /* $accept */ + YYSYMBOL_toplevelvars = 317, /* toplevelvars */ + YYSYMBOL_toplevelvar = 318, /* toplevelvar */ + YYSYMBOL_force_toplevel = 319, /* force_toplevel */ + YYSYMBOL_serverstart = 320, /* serverstart */ + YYSYMBOL_contents_server = 321, /* contents_server */ + YYSYMBOL_content_server = 322, /* content_server */ + YYSYMBOL_stubstart = 323, /* stubstart */ + YYSYMBOL_contents_stub = 324, /* contents_stub */ + YYSYMBOL_content_stub = 325, /* content_stub */ + YYSYMBOL_forwardstart = 326, /* forwardstart */ + YYSYMBOL_contents_forward = 327, /* contents_forward */ + YYSYMBOL_content_forward = 328, /* content_forward */ + YYSYMBOL_viewstart = 329, /* viewstart */ + YYSYMBOL_contents_view = 330, /* contents_view */ + YYSYMBOL_content_view = 331, /* content_view */ + YYSYMBOL_authstart = 332, /* authstart */ + YYSYMBOL_contents_auth = 333, /* contents_auth */ + YYSYMBOL_content_auth = 334, /* content_auth */ + YYSYMBOL_rpz_tag = 335, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 336, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 337, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 338, /* rpz_log */ + YYSYMBOL_rpz_log_name = 339, /* rpz_log_name */ + YYSYMBOL_rpzstart = 340, /* rpzstart */ + YYSYMBOL_contents_rpz = 341, /* contents_rpz */ + YYSYMBOL_content_rpz = 342, /* content_rpz */ + YYSYMBOL_server_num_threads = 343, /* server_num_threads */ + YYSYMBOL_server_verbosity = 344, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 345, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 346, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 347, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 348, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 349, /* server_shm_key */ + YYSYMBOL_server_port = 350, /* server_port */ + YYSYMBOL_server_send_client_subnet = 351, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 352, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 353, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 354, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 355, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 356, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 357, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 358, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 359, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 360, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 361, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 362, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 363, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 364, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 365, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 366, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 367, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 368, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 369, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 370, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 371, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 372, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 373, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 374, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 375, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 376, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 377, /* server_tcp_idle_timeout */ + YYSYMBOL_server_max_reuse_tcp_queries = 378, /* server_max_reuse_tcp_queries */ + YYSYMBOL_server_tcp_reuse_timeout = 379, /* server_tcp_reuse_timeout */ + YYSYMBOL_server_tcp_auth_query_timeout = 380, /* server_tcp_auth_query_timeout */ + YYSYMBOL_server_tcp_keepalive = 381, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 382, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 383, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 384, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 385, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 386, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 387, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 388, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 389, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 390, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 391, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 392, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 393, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 394, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 395, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 396, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 397, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 398, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 399, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 400, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 401, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 402, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 403, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 404, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 405, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 406, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 407, /* server_log_queries */ + YYSYMBOL_server_log_replies = 408, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 409, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 410, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 411, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 412, /* server_chroot */ + YYSYMBOL_server_username = 413, /* server_username */ + YYSYMBOL_server_directory = 414, /* server_directory */ + YYSYMBOL_server_logfile = 415, /* server_logfile */ + YYSYMBOL_server_pidfile = 416, /* server_pidfile */ + YYSYMBOL_server_root_hints = 417, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 418, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 419, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 420, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 421, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 422, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 423, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 424, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 425, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 426, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 427, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 428, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 429, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 430, /* server_identity */ + YYSYMBOL_server_version = 431, /* server_version */ + YYSYMBOL_server_nsid = 432, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 433, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 434, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 435, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 436, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 437, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 438, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 439, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 440, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 441, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 442, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 443, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 444, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 445, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 446, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 447, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 448, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 449, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 450, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 451, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 452, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 453, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 454, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 455, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 456, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 457, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 458, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 459, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 460, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 461, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 462, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 463, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 464, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 465, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 466, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 467, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 468, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 469, /* server_private_address */ + YYSYMBOL_server_private_domain = 470, /* server_private_domain */ + YYSYMBOL_server_prefetch = 471, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 472, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 473, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 474, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 475, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 476, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 477, /* server_access_control */ + YYSYMBOL_server_module_conf = 478, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 479, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 480, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 481, /* server_val_sig_skew_max */ + YYSYMBOL_server_val_max_restart = 482, /* server_val_max_restart */ + YYSYMBOL_server_cache_max_ttl = 483, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 484, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 485, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 486, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 487, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 488, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 489, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 490, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 491, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 492, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 493, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 494, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 495, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 496, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 497, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 498, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 499, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 500, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_zonemd_permissive_mode = 501, /* server_zonemd_permissive_mode */ + YYSYMBOL_server_add_holddown = 502, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 503, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 504, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 505, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 506, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 507, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 508, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 509, /* server_local_zone */ + YYSYMBOL_server_local_data = 510, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 511, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 512, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 513, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 514, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 515, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 516, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 517, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 518, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 519, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 520, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 521, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 522, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 523, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 524, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 525, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 526, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 527, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 528, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 529, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 530, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 531, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 532, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 533, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 534, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 535, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 536, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 537, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 538, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 539, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 540, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 541, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 542, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 543, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 544, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 545, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 546, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 547, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 548, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 549, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 550, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 551, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 552, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 553, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 554, /* stub_name */ + YYSYMBOL_stub_host = 555, /* stub_host */ + YYSYMBOL_stub_addr = 556, /* stub_addr */ + YYSYMBOL_stub_first = 557, /* stub_first */ + YYSYMBOL_stub_no_cache = 558, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 559, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 560, /* stub_prime */ + YYSYMBOL_forward_name = 561, /* forward_name */ + YYSYMBOL_forward_host = 562, /* forward_host */ + YYSYMBOL_forward_addr = 563, /* forward_addr */ + YYSYMBOL_forward_first = 564, /* forward_first */ + YYSYMBOL_forward_no_cache = 565, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 566, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 567, /* auth_name */ + YYSYMBOL_auth_zonefile = 568, /* auth_zonefile */ + YYSYMBOL_auth_master = 569, /* auth_master */ + YYSYMBOL_auth_url = 570, /* auth_url */ + YYSYMBOL_auth_allow_notify = 571, /* auth_allow_notify */ + YYSYMBOL_auth_zonemd_check = 572, /* auth_zonemd_check */ + YYSYMBOL_auth_zonemd_reject_absence = 573, /* auth_zonemd_reject_absence */ + YYSYMBOL_auth_for_downstream = 574, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 575, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 576, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 577, /* view_name */ + YYSYMBOL_view_local_zone = 578, /* view_local_zone */ + YYSYMBOL_view_response_ip = 579, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 580, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 581, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 582, /* view_local_data_ptr */ + YYSYMBOL_view_first = 583, /* view_first */ + YYSYMBOL_rcstart = 584, /* rcstart */ + YYSYMBOL_contents_rc = 585, /* contents_rc */ + YYSYMBOL_content_rc = 586, /* content_rc */ + YYSYMBOL_rc_control_enable = 587, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 588, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 589, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 590, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 591, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 592, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 593, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 594, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 595, /* dtstart */ + YYSYMBOL_contents_dt = 596, /* contents_dt */ + YYSYMBOL_content_dt = 597, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 598, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 599, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 600, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 601, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 602, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 603, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 604, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 605, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 606, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 607, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 608, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 609, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 610, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 611, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 612, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 613, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 614, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 615, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 616, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 617, /* pythonstart */ + YYSYMBOL_contents_py = 618, /* contents_py */ + YYSYMBOL_content_py = 619, /* content_py */ + YYSYMBOL_py_script = 620, /* py_script */ + YYSYMBOL_dynlibstart = 621, /* dynlibstart */ + YYSYMBOL_contents_dl = 622, /* contents_dl */ + YYSYMBOL_content_dl = 623, /* content_dl */ + YYSYMBOL_dl_file = 624, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 625, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 626, /* server_log_identity */ + YYSYMBOL_server_response_ip = 627, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 628, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 629, /* dnscstart */ + YYSYMBOL_contents_dnsc = 630, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 631, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 632, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 633, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 634, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 635, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 636, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 637, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 638, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 639, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 640, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 641, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 642, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 643, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 644, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 645, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 646, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 647, /* redis_server_host */ + YYSYMBOL_redis_server_port = 648, /* redis_server_port */ + YYSYMBOL_redis_timeout = 649, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 650, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 651, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 652, /* ipsetstart */ + YYSYMBOL_contents_ipset = 653, /* contents_ipset */ + YYSYMBOL_content_ipset = 654, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 655, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 656 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1746,18 +1090,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 657 +#define YYLAST 668 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 311 +#define YYNTOKENS 316 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 336 +#define YYNNTS 341 /* YYNRULES -- Number of rules. */ -#define YYNRULES 648 +#define YYNRULES 658 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 963 +#define YYNSTATES 978 -#define YYMAXUTOK 565 +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 570 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1827,78 +1172,80 @@ static const yytype_int16 yytranslate[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 188, 188, 188, 189, 189, 190, 190, 191, 191, - 191, 192, 192, 193, 193, 194, 194, 195, 197, 203, - 208, 209, 210, 210, 210, 211, 211, 212, 212, 212, - 213, 213, 214, 214, 214, 215, 215, 216, 216, 216, - 217, 217, 217, 218, 218, 219, 219, 220, 220, 221, - 221, 222, 222, 223, 223, 224, 224, 225, 225, 226, - 226, 226, 227, 227, 227, 228, 228, 228, 229, 229, - 230, 230, 231, 231, 232, 232, 233, 233, 233, 234, - 234, 235, 235, 236, 236, 236, 237, 237, 238, 238, - 239, 239, 240, 240, 240, 241, 241, 242, 242, 243, - 243, 244, 244, 245, 245, 246, 246, 246, 247, 247, - 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, - 251, 251, 251, 252, 253, 253, 253, 254, 254, 254, - 255, 255, 256, 256, 257, 257, 257, 258, 258, 258, - 259, 259, 260, 260, 260, 261, 261, 262, 262, 262, - 263, 263, 264, 264, 265, 265, 266, 267, 267, 268, - 268, 269, 269, 270, 271, 271, 272, 272, 273, 273, - 274, 274, 275, 275, 276, 276, 276, 277, 277, 278, - 278, 279, 279, 280, 281, 281, 282, 282, 283, 284, - 284, 285, 285, 286, 286, 287, 287, 288, 288, 288, - 289, 289, 289, 290, 290, 291, 292, 292, 293, 293, - 294, 294, 295, 295, 296, 296, 296, 297, 297, 297, - 298, 298, 298, 299, 299, 300, 300, 301, 301, 302, - 302, 303, 303, 304, 306, 318, 319, 320, 320, 320, - 320, 320, 321, 321, 323, 335, 336, 337, 337, 337, - 337, 338, 338, 340, 354, 355, 356, 356, 356, 356, - 357, 357, 357, 359, 377, 378, 379, 379, 379, 379, - 380, 380, 380, 381, 381, 384, 403, 420, 428, 438, - 446, 463, 464, 465, 465, 465, 465, 465, 466, 466, - 466, 467, 467, 469, 478, 487, 498, 507, 516, 525, - 536, 545, 557, 571, 586, 597, 614, 631, 648, 665, - 680, 695, 708, 723, 732, 741, 750, 759, 768, 777, - 786, 795, 804, 813, 822, 831, 840, 849, 862, 871, - 884, 893, 902, 911, 918, 925, 934, 941, 950, 958, - 965, 972, 980, 989, 997, 1013, 1021, 1029, 1037, 1045, - 1053, 1062, 1071, 1085, 1094, 1103, 1112, 1121, 1130, 1139, - 1146, 1153, 1179, 1187, 1194, 1201, 1208, 1215, 1223, 1231, - 1239, 1246, 1257, 1268, 1275, 1284, 1293, 1302, 1309, 1316, - 1332, 1340, 1348, 1358, 1368, 1378, 1392, 1400, 1413, 1424, - 1432, 1445, 1454, 1463, 1472, 1481, 1491, 1501, 1509, 1522, - 1531, 1539, 1548, 1556, 1569, 1578, 1588, 1595, 1605, 1615, - 1625, 1635, 1645, 1655, 1665, 1675, 1682, 1689, 1696, 1705, - 1714, 1723, 1732, 1739, 1749, 1769, 1776, 1794, 1807, 1820, - 1829, 1838, 1847, 1856, 1866, 1876, 1887, 1896, 1905, 1914, - 1923, 1932, 1941, 1950, 1963, 1976, 1985, 1992, 2001, 2010, - 2019, 2028, 2037, 2045, 2058, 2066, 2111, 2118, 2133, 2143, - 2153, 2160, 2167, 2174, 2183, 2191, 2205, 2226, 2247, 2259, - 2271, 2283, 2292, 2313, 2323, 2332, 2340, 2348, 2361, 2374, - 2389, 2404, 2413, 2422, 2428, 2437, 2446, 2456, 2466, 2476, - 2485, 2495, 2504, 2517, 2530, 2542, 2556, 2568, 2582, 2591, - 2603, 2613, 2620, 2627, 2636, 2645, 2655, 2665, 2675, 2682, - 2689, 2698, 2707, 2717, 2727, 2734, 2741, 2748, 2756, 2766, - 2776, 2786, 2796, 2806, 2845, 2855, 2863, 2871, 2886, 2895, - 2900, 2901, 2902, 2902, 2902, 2903, 2903, 2903, 2904, 2904, - 2906, 2916, 2925, 2932, 2939, 2946, 2953, 2960, 2967, 2972, - 2973, 2974, 2974, 2974, 2975, 2975, 2975, 2976, 2977, 2977, - 2978, 2978, 2979, 2979, 2980, 2981, 2982, 2983, 2984, 2985, - 2987, 2996, 3006, 3013, 3020, 3029, 3036, 3043, 3050, 3057, - 3066, 3075, 3082, 3089, 3099, 3109, 3119, 3129, 3139, 3149, - 3154, 3155, 3156, 3158, 3164, 3169, 3170, 3171, 3173, 3179, - 3189, 3196, 3205, 3213, 3218, 3219, 3221, 3221, 3221, 3222, - 3222, 3223, 3224, 3225, 3226, 3227, 3229, 3239, 3248, 3255, - 3264, 3271, 3280, 3288, 3301, 3309, 3322, 3327, 3328, 3329, - 3329, 3330, 3330, 3330, 3331, 3333, 3345, 3357, 3369, 3384, - 3397, 3410, 3421, 3426, 3427, 3428, 3428, 3430, 3445 + 0, 189, 189, 189, 190, 190, 191, 191, 192, 192, + 192, 193, 193, 194, 194, 195, 195, 196, 198, 204, + 209, 210, 211, 211, 211, 212, 212, 213, 213, 213, + 214, 214, 215, 215, 215, 216, 216, 217, 217, 217, + 218, 218, 218, 219, 219, 220, 220, 221, 221, 222, + 222, 223, 223, 224, 224, 225, 225, 226, 226, 227, + 227, 227, 228, 228, 228, 229, 229, 229, 230, 230, + 231, 231, 232, 232, 233, 233, 234, 234, 234, 235, + 235, 236, 236, 237, 237, 237, 238, 238, 239, 239, + 240, 240, 241, 241, 241, 242, 242, 243, 243, 244, + 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, + 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, + 253, 253, 253, 253, 254, 255, 255, 255, 256, 256, + 256, 257, 257, 258, 258, 259, 259, 259, 260, 260, + 260, 261, 261, 262, 262, 262, 263, 263, 264, 264, + 264, 265, 265, 266, 266, 267, 267, 268, 269, 269, + 270, 270, 271, 271, 272, 273, 273, 274, 274, 275, + 275, 276, 276, 277, 277, 278, 278, 278, 279, 279, + 280, 280, 281, 281, 282, 283, 283, 284, 284, 285, + 286, 286, 287, 287, 288, 288, 289, 289, 290, 290, + 290, 291, 291, 291, 292, 292, 293, 294, 294, 295, + 295, 296, 296, 297, 297, 298, 298, 298, 299, 299, + 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, + 304, 304, 305, 305, 306, 306, 307, 307, 310, 322, + 323, 324, 324, 324, 324, 324, 325, 325, 327, 339, + 340, 341, 341, 341, 341, 342, 342, 344, 358, 359, + 360, 360, 360, 360, 361, 361, 361, 363, 382, 383, + 384, 384, 384, 384, 385, 385, 385, 386, 386, 386, + 389, 408, 425, 433, 443, 451, 468, 469, 470, 470, + 470, 470, 470, 471, 471, 471, 472, 472, 474, 483, + 492, 503, 512, 521, 530, 541, 550, 562, 576, 591, + 602, 619, 636, 653, 670, 685, 700, 713, 728, 737, + 746, 755, 764, 773, 782, 791, 800, 809, 818, 827, + 836, 845, 854, 867, 878, 889, 900, 909, 922, 931, + 940, 949, 956, 963, 972, 979, 988, 996, 1003, 1010, + 1018, 1027, 1035, 1051, 1059, 1067, 1075, 1083, 1091, 1100, + 1109, 1123, 1132, 1141, 1150, 1159, 1168, 1177, 1184, 1191, + 1217, 1225, 1232, 1239, 1246, 1253, 1261, 1269, 1277, 1284, + 1295, 1306, 1313, 1322, 1331, 1340, 1347, 1354, 1370, 1378, + 1386, 1396, 1406, 1416, 1430, 1438, 1451, 1462, 1470, 1483, + 1492, 1501, 1510, 1519, 1529, 1539, 1547, 1560, 1569, 1577, + 1586, 1594, 1607, 1616, 1626, 1633, 1643, 1653, 1663, 1673, + 1683, 1693, 1703, 1713, 1720, 1727, 1734, 1743, 1752, 1761, + 1770, 1777, 1787, 1807, 1814, 1832, 1845, 1858, 1871, 1880, + 1889, 1898, 1907, 1917, 1927, 1938, 1947, 1956, 1965, 1974, + 1983, 1992, 2001, 2014, 2027, 2036, 2043, 2052, 2061, 2070, + 2079, 2088, 2096, 2109, 2117, 2162, 2169, 2184, 2194, 2204, + 2211, 2218, 2225, 2234, 2242, 2256, 2277, 2298, 2310, 2322, + 2334, 2343, 2364, 2374, 2383, 2391, 2399, 2412, 2425, 2440, + 2455, 2464, 2473, 2479, 2488, 2497, 2507, 2517, 2527, 2536, + 2546, 2555, 2568, 2581, 2593, 2607, 2619, 2633, 2642, 2654, + 2664, 2671, 2678, 2687, 2696, 2706, 2716, 2726, 2733, 2740, + 2749, 2758, 2768, 2778, 2785, 2792, 2799, 2807, 2817, 2827, + 2837, 2847, 2857, 2867, 2913, 2923, 2931, 2939, 2954, 2963, + 2968, 2969, 2970, 2970, 2970, 2971, 2971, 2971, 2972, 2972, + 2974, 2984, 2993, 3000, 3007, 3014, 3021, 3028, 3035, 3040, + 3041, 3042, 3042, 3042, 3043, 3043, 3043, 3044, 3045, 3045, + 3046, 3046, 3047, 3047, 3048, 3049, 3050, 3051, 3052, 3053, + 3055, 3064, 3074, 3081, 3088, 3097, 3104, 3111, 3118, 3125, + 3134, 3143, 3150, 3157, 3167, 3177, 3187, 3197, 3207, 3217, + 3222, 3223, 3224, 3226, 3232, 3237, 3238, 3239, 3241, 3247, + 3257, 3264, 3273, 3281, 3286, 3287, 3289, 3289, 3289, 3290, + 3290, 3291, 3292, 3293, 3294, 3295, 3297, 3307, 3316, 3323, + 3332, 3339, 3348, 3356, 3369, 3377, 3390, 3395, 3396, 3397, + 3397, 3398, 3398, 3398, 3399, 3401, 3413, 3425, 3437, 3452, + 3465, 3478, 3489, 3494, 3495, 3496, 3496, 3498, 3513 }; #endif @@ -1947,32 +1294,35 @@ static const char *const yytname[] = "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE", "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", - "VAR_CONTROL_USE_CERT", "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", - "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", - "VAR_LOG_TIME_ASCII", "VAR_DOMAIN_INSECURE", "VAR_PYTHON", - "VAR_PYTHON_SCRIPT", "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", + "VAR_CONTROL_USE_CERT", "VAR_TCP_REUSE_TIMEOUT", + "VAR_MAX_REUSE_TCP_QUERIES", "VAR_EXTENDED_STATISTICS", + "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", + "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", + "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", + "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_VAL_MAX_RESTART", "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", - "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", - "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_SSL_UPSTREAM", - "VAR_FORWARD_SSL_UPSTREAM", "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", - "VAR_HTTP_ENDPOINT", "VAR_HTTP_MAX_STREAMS", - "VAR_HTTP_QUERY_BUFFER_SIZE", "VAR_HTTP_RESPONSE_BUFFER_SIZE", - "VAR_HTTP_NODELAY", "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", - "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", - "VAR_DELAY_CLOSE", "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", - "VAR_INSECURE_LAN_ZONES", "VAR_INFRA_CACHE_MIN_RTT", - "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL", - "VAR_DNS64_IGNORE_AAAA", "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", - "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP", "VAR_DNSTAP_TLS", - "VAR_DNSTAP_TLS_SERVER_NAME", "VAR_DNSTAP_TLS_CERT_BUNDLE", - "VAR_DNSTAP_TLS_CLIENT_KEY_FILE", "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", - "VAR_DNSTAP_SEND_IDENTITY", "VAR_DNSTAP_SEND_VERSION", - "VAR_DNSTAP_BIDIRECTIONAL", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", + "VAR_SSL_UPSTREAM", "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY", + "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", + "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", + "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT", + "VAR_HTTP_MAX_STREAMS", "VAR_HTTP_QUERY_BUFFER_SIZE", + "VAR_HTTP_RESPONSE_BUFFER_SIZE", "VAR_HTTP_NODELAY", + "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", + "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", + "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES", + "VAR_INFRA_CACHE_MIN_RTT", "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", + "VAR_DNS64_SYNTHALL", "VAR_DNS64_IGNORE_AAAA", "VAR_DNSTAP", + "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP", + "VAR_DNSTAP_TLS", "VAR_DNSTAP_TLS_SERVER_NAME", + "VAR_DNSTAP_TLS_CERT_BUNDLE", "VAR_DNSTAP_TLS_CLIENT_KEY_FILE", + "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", "VAR_DNSTAP_SEND_IDENTITY", + "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_BIDIRECTIONAL", + "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES", "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES", "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", @@ -2029,17 +1379,18 @@ static const char *const yytname[] = "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", - "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_REJECT_ABSENCE", "$accept", - "toplevelvars", "toplevelvar", "force_toplevel", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "viewstart", "contents_view", "content_view", "authstart", - "contents_auth", "content_auth", "rpz_tag", "rpz_action_override", - "rpz_cname_override", "rpz_log", "rpz_log_name", "rpzstart", - "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity", - "server_statistics_interval", "server_statistics_cumulative", - "server_extended_statistics", "server_shm_enable", "server_shm_key", - "server_port", "server_send_client_subnet", "server_client_subnet_zone", + "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK", + "VAR_ZONEMD_REJECT_ABSENCE", "$accept", "toplevelvars", "toplevelvar", + "force_toplevel", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "viewstart", "contents_view", + "content_view", "authstart", "contents_auth", "content_auth", "rpz_tag", + "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name", + "rpzstart", "contents_rpz", "content_rpz", "server_num_threads", + "server_verbosity", "server_statistics_interval", + "server_statistics_cumulative", "server_extended_statistics", + "server_shm_enable", "server_shm_key", "server_port", + "server_send_client_subnet", "server_client_subnet_zone", "server_client_subnet_always_forward", "server_client_subnet_opcode", "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6", @@ -2050,50 +1401,52 @@ static const char *const yytname[] = "server_interface_automatic", "server_do_ip4", "server_do_ip6", "server_do_udp", "server_do_tcp", "server_prefer_ip4", "server_prefer_ip6", "server_tcp_mss", "server_outgoing_tcp_mss", - "server_tcp_idle_timeout", "server_tcp_keepalive", - "server_tcp_keepalive_timeout", "server_tcp_upstream", - "server_udp_upstream_without_downstream", "server_ssl_upstream", - "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", - "server_tls_cert_bundle", "server_tls_win_cert", - "server_tls_additional_port", "server_tls_ciphers", - "server_tls_ciphersuites", "server_tls_session_ticket_keys", - "server_tls_use_sni", "server_https_port", "server_http_endpoint", - "server_http_max_streams", "server_http_query_buffer_size", - "server_http_response_buffer_size", "server_http_nodelay", - "server_http_notls_downstream", "server_use_systemd", - "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", - "server_log_queries", "server_log_replies", "server_log_tag_queryreply", - "server_log_servfail", "server_log_local_actions", "server_chroot", - "server_username", "server_directory", "server_logfile", - "server_pidfile", "server_root_hints", "server_dlv_anchor_file", - "server_dlv_anchor", "server_auto_trust_anchor_file", - "server_trust_anchor_file", "server_trusted_keys_file", - "server_trust_anchor", "server_trust_anchor_signaling", - "server_root_key_sentinel", "server_domain_insecure", - "server_hide_identity", "server_hide_version", "server_hide_trustanchor", - "server_identity", "server_version", "server_nsid", "server_so_rcvbuf", - "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", - "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size", - "server_edns_buffer_size", "server_msg_buffer_size", - "server_msg_cache_size", "server_msg_cache_slabs", - "server_num_queries_per_thread", "server_jostle_timeout", - "server_delay_close", "server_udp_connect", "server_unblock_lan_zones", - "server_insecure_lan_zones", "server_rrset_cache_size", - "server_rrset_cache_slabs", "server_infra_host_ttl", - "server_infra_lame_ttl", "server_infra_cache_numhosts", - "server_infra_cache_lame_size", "server_infra_cache_slabs", - "server_infra_cache_min_rtt", "server_infra_keep_probing", - "server_target_fetch_policy", "server_harden_short_bufsize", - "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_harden_below_nxdomain", - "server_harden_referral_path", "server_harden_algo_downgrade", - "server_use_caps_for_id", "server_caps_whitelist", - "server_private_address", "server_private_domain", "server_prefetch", - "server_prefetch_key", "server_deny_any", - "server_unwanted_reply_threshold", "server_do_not_query_address", - "server_do_not_query_localhost", "server_access_control", - "server_module_conf", "server_val_override_date", - "server_val_sig_skew_min", "server_val_sig_skew_max", + "server_tcp_idle_timeout", "server_max_reuse_tcp_queries", + "server_tcp_reuse_timeout", "server_tcp_auth_query_timeout", + "server_tcp_keepalive", "server_tcp_keepalive_timeout", + "server_tcp_upstream", "server_udp_upstream_without_downstream", + "server_ssl_upstream", "server_ssl_service_key", + "server_ssl_service_pem", "server_ssl_port", "server_tls_cert_bundle", + "server_tls_win_cert", "server_tls_additional_port", + "server_tls_ciphers", "server_tls_ciphersuites", + "server_tls_session_ticket_keys", "server_tls_use_sni", + "server_https_port", "server_http_endpoint", "server_http_max_streams", + "server_http_query_buffer_size", "server_http_response_buffer_size", + "server_http_nodelay", "server_http_notls_downstream", + "server_use_systemd", "server_do_daemonize", "server_use_syslog", + "server_log_time_ascii", "server_log_queries", "server_log_replies", + "server_log_tag_queryreply", "server_log_servfail", + "server_log_local_actions", "server_chroot", "server_username", + "server_directory", "server_logfile", "server_pidfile", + "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", + "server_auto_trust_anchor_file", "server_trust_anchor_file", + "server_trusted_keys_file", "server_trust_anchor", + "server_trust_anchor_signaling", "server_root_key_sentinel", + "server_domain_insecure", "server_hide_identity", "server_hide_version", + "server_hide_trustanchor", "server_identity", "server_version", + "server_nsid", "server_so_rcvbuf", "server_so_sndbuf", + "server_so_reuseport", "server_ip_transparent", "server_ip_freebind", + "server_ip_dscp", "server_stream_wait_size", "server_edns_buffer_size", + "server_msg_buffer_size", "server_msg_cache_size", + "server_msg_cache_slabs", "server_num_queries_per_thread", + "server_jostle_timeout", "server_delay_close", "server_udp_connect", + "server_unblock_lan_zones", "server_insecure_lan_zones", + "server_rrset_cache_size", "server_rrset_cache_slabs", + "server_infra_host_ttl", "server_infra_lame_ttl", + "server_infra_cache_numhosts", "server_infra_cache_lame_size", + "server_infra_cache_slabs", "server_infra_cache_min_rtt", + "server_infra_keep_probing", "server_target_fetch_policy", + "server_harden_short_bufsize", "server_harden_large_queries", + "server_harden_glue", "server_harden_dnssec_stripped", + "server_harden_below_nxdomain", "server_harden_referral_path", + "server_harden_algo_downgrade", "server_use_caps_for_id", + "server_caps_whitelist", "server_private_address", + "server_private_domain", "server_prefetch", "server_prefetch_key", + "server_deny_any", "server_unwanted_reply_threshold", + "server_do_not_query_address", "server_do_not_query_localhost", + "server_access_control", "server_module_conf", + "server_val_override_date", "server_val_sig_skew_min", + "server_val_sig_skew_max", "server_val_max_restart", "server_cache_max_ttl", "server_cache_max_negative_ttl", "server_cache_min_ttl", "server_bogus_ttl", "server_val_clean_additional", "server_val_permissive_mode", @@ -2130,11 +1483,11 @@ static const char *const yytname[] = "stub_prime", "forward_name", "forward_host", "forward_addr", "forward_first", "forward_no_cache", "forward_ssl_upstream", "auth_name", "auth_zonefile", "auth_master", "auth_url", "auth_allow_notify", - "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream", - "auth_fallback_enabled", "view_name", "view_local_zone", - "view_response_ip", "view_response_ip_data", "view_local_data", - "view_local_data_ptr", "view_first", "rcstart", "contents_rc", - "content_rc", "rc_control_enable", "rc_control_port", + "auth_zonemd_check", "auth_zonemd_reject_absence", "auth_for_downstream", + "auth_for_upstream", "auth_fallback_enabled", "view_name", + "view_local_zone", "view_response_ip", "view_response_ip_data", + "view_local_data", "view_local_data_ptr", "view_first", "rcstart", + "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", "rc_control_interface", "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file", "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable", @@ -2208,11 +1561,11 @@ static const yytype_int16 yytoknum[] = 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565 + 565, 566, 567, 568, 569, 570 }; #endif -#define YYPACT_NINF (-299) +#define YYPACT_NINF (-300) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -2226,103 +1579,104 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -299, 0, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, 292, -39, -35, -43, -44, -28, -67, -93, - -108, -298, -221, -222, -292, 3, 4, 5, 6, 37, - 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 54, 55, 56, 57, 58, 79, + -300, 0, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, 296, -43, -38, -42, -44, -28, -29, -149, + -109, -299, -192, -190, -291, 3, 4, 27, 28, 31, + 32, 33, 34, 35, 37, 38, 39, 40, 41, 53, + 54, 55, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 91, - 92, 94, 96, 97, 98, 99, 101, 103, 104, 105, + 92, 93, 95, 97, 98, 99, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 132, 133, 134, 135, 136, 137, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, + 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 212, 213, 214, 216, 222, 223, 224, 225, 226, - 228, 229, 231, 232, 237, 238, 240, 241, 242, 244, - 245, 246, 247, 248, 249, 250, 252, 253, 254, 255, - 257, 258, 259, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 285, 286, 287, 289, 290, 291, 293, 327, 328, - 329, 330, 334, 335, 336, 378, 379, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 380, 381, 382, 383, 384, 385, 386, -299, -299, -299, - -299, -299, -299, -299, -299, 390, 394, 395, 420, 421, - 422, -299, -299, -299, -299, -299, -299, -299, 431, 444, - 445, 446, 447, 448, 449, -299, -299, -299, -299, -299, - -299, -299, -299, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, 459, 460, 461, 462, 463, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 503, 505, - 522, 523, 524, 525, 526, 527, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 528, 529, 530, 531, 532, - 543, 544, 545, 546, 547, 548, 549, 551, 552, 553, - 554, 555, 556, 557, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, 560, -299, -299, 563, -299, -299, - 566, 567, 576, 577, 578, 580, 581, 582, 583, 584, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, 585, 586, 587, 592, 593, 594, -299, -299, -299, - -299, -299, -299, -299, 595, 596, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, 597, - 598, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 599, 600, 601, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 602, 603, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, 604, - 605, 606, 607, 608, 609, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 610, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 611, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 612, -299, -299, 613, 614, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, 615, 616, 617, -299, -299, -299, -299, -299, -299, - -299, -299, -299 + 210, 211, 212, 213, 214, 216, 217, 218, 220, 226, + 227, 228, 229, 230, 232, 233, 235, 241, 242, 243, + 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, + 256, 257, 258, 259, 262, 263, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 289, 290, 291, 293, 294, 295, + 297, 331, 332, 333, 334, 338, 339, 340, 382, 383, + 384, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, 385, 386, + 387, 388, 389, 390, 396, -300, -300, -300, -300, -300, + -300, -300, -300, 400, 401, 428, 429, 430, 439, -300, + -300, -300, -300, -300, -300, -300, 452, 453, 454, 455, + 456, 457, 458, -300, -300, -300, -300, -300, -300, -300, + -300, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, 469, 470, 471, 511, 513, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, 530, 531, + 532, 533, 534, 535, 536, 537, -300, -300, -300, -300, + -300, -300, -300, -300, -300, 538, 539, 540, 551, 552, + 553, 554, 555, 556, 557, 559, 560, 561, 562, 563, + 564, 565, 568, 571, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, 574, -300, -300, 575, -300, -300, + 584, 585, 586, 588, 589, 590, 591, 592, 593, 594, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 595, 600, 601, 602, 603, 604, -300, -300, -300, + -300, -300, -300, -300, 605, 606, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, 607, + 608, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, 609, + 610, 611, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, 612, 613, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, 614, 615, 616, 617, 618, 619, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 620, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 621, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, 622, + -300, -300, 623, 624, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, 625, 626, 627, -300, + -300, -300, -300, -300, -300, -300, -300, -300 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -2330,10 +1684,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 234, 244, 529, 589, 548, - 253, 603, 626, 263, 642, 280, 594, 3, 17, 21, - 236, 246, 255, 265, 282, 531, 550, 591, 596, 605, - 628, 644, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 238, 248, 539, 599, 558, + 257, 613, 636, 267, 652, 285, 604, 3, 17, 21, + 240, 250, 259, 269, 287, 541, 560, 601, 606, 615, + 638, 654, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2355,134 +1709,337 @@ static const yytype_int16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 22, 23, - 86, 89, 98, 200, 201, 24, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 37, 77, 25, 90, - 91, 48, 70, 85, 26, 27, 30, 31, 28, 29, - 32, 33, 34, 35, 36, 121, 212, 122, 124, 125, - 126, 214, 219, 215, 226, 227, 228, 229, 127, 128, - 129, 130, 131, 132, 133, 196, 87, 76, 102, 119, - 120, 224, 221, 123, 38, 39, 40, 41, 42, 78, - 92, 93, 108, 64, 74, 65, 204, 205, 103, 58, - 59, 203, 60, 61, 232, 112, 116, 137, 147, 174, - 150, 225, 113, 71, 43, 44, 45, 100, 138, 139, - 140, 141, 46, 47, 49, 50, 52, 53, 51, 145, - 151, 54, 55, 56, 62, 81, 117, 95, 146, 88, - 170, 96, 97, 114, 115, 222, 101, 57, 79, 82, - 63, 66, 104, 105, 80, 171, 106, 67, 68, 69, - 213, 118, 188, 189, 190, 191, 192, 193, 194, 202, - 107, 75, 233, 109, 110, 111, 172, 72, 73, 94, - 83, 84, 99, 134, 135, 223, 136, 142, 143, 144, - 175, 176, 178, 180, 181, 179, 182, 197, 148, 149, - 154, 155, 152, 153, 156, 157, 159, 158, 216, 218, - 217, 173, 183, 184, 185, 186, 187, 206, 208, 207, - 209, 210, 211, 230, 231, 177, 195, 198, 199, 220, - 0, 0, 0, 0, 0, 0, 0, 235, 237, 238, - 239, 241, 242, 243, 240, 0, 0, 0, 0, 0, - 0, 245, 247, 248, 249, 250, 251, 252, 0, 0, - 0, 0, 0, 0, 0, 254, 256, 257, 260, 261, - 258, 262, 259, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 264, 266, 267, 268, 269, 273, 274, 270, - 271, 272, 0, 0, 0, 0, 0, 285, 289, 290, - 291, 292, 281, 283, 284, 286, 287, 288, 0, 0, - 0, 0, 0, 0, 0, 0, 530, 532, 534, 533, - 539, 535, 536, 537, 538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 549, 551, 553, 552, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 0, 590, 592, 0, 595, 597, + 0, 20, 22, 23, 86, 89, 98, 201, 202, 24, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 37, 77, 25, 90, 91, 48, 70, 85, 26, 27, + 30, 31, 28, 29, 32, 33, 34, 235, 236, 237, + 35, 36, 122, 213, 123, 125, 126, 127, 215, 220, + 216, 227, 228, 229, 230, 128, 129, 130, 131, 132, + 133, 134, 197, 87, 76, 102, 120, 121, 225, 222, + 124, 38, 39, 40, 41, 42, 78, 92, 93, 109, + 64, 74, 65, 205, 206, 103, 58, 59, 204, 60, + 61, 233, 113, 117, 138, 148, 175, 151, 226, 114, + 71, 43, 44, 45, 100, 139, 140, 141, 142, 46, + 47, 49, 50, 52, 53, 51, 146, 152, 54, 55, + 56, 62, 81, 118, 95, 147, 88, 171, 96, 97, + 115, 116, 223, 101, 57, 79, 82, 63, 66, 104, + 105, 106, 80, 172, 107, 67, 68, 69, 214, 119, + 189, 190, 191, 192, 193, 194, 195, 203, 108, 75, + 234, 110, 111, 112, 173, 72, 73, 94, 83, 84, + 99, 135, 136, 224, 137, 143, 144, 145, 176, 177, + 179, 181, 182, 180, 183, 198, 149, 150, 155, 156, + 153, 154, 157, 158, 160, 159, 217, 219, 218, 174, + 184, 185, 186, 187, 188, 207, 209, 208, 210, 211, + 212, 231, 232, 178, 196, 199, 200, 221, 0, 0, + 0, 0, 0, 0, 0, 239, 241, 242, 243, 245, + 246, 247, 244, 0, 0, 0, 0, 0, 0, 249, + 251, 252, 253, 254, 255, 256, 0, 0, 0, 0, + 0, 0, 0, 258, 260, 261, 264, 265, 262, 266, + 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 268, 270, 271, 272, 273, 277, 278, 279, 274, + 275, 276, 0, 0, 0, 0, 0, 290, 294, 295, + 296, 297, 286, 288, 289, 291, 292, 293, 0, 0, + 0, 0, 0, 0, 0, 0, 540, 542, 544, 543, + 549, 545, 546, 547, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 604, 606, 607, 608, 610, 611, 609, 612, 613, 614, - 615, 0, 0, 0, 0, 0, 0, 627, 629, 630, - 631, 632, 633, 634, 0, 0, 643, 645, 646, 294, - 293, 300, 313, 311, 323, 319, 320, 324, 321, 322, - 325, 326, 327, 328, 329, 359, 360, 361, 362, 363, - 389, 390, 391, 397, 398, 316, 399, 400, 403, 401, - 402, 406, 407, 408, 422, 374, 375, 377, 378, 409, - 425, 368, 370, 426, 432, 433, 434, 317, 388, 452, - 453, 369, 446, 352, 312, 364, 423, 429, 410, 0, - 0, 456, 318, 295, 351, 414, 296, 314, 315, 365, - 366, 454, 412, 416, 417, 297, 457, 392, 421, 353, - 373, 427, 428, 431, 445, 367, 450, 448, 449, 380, - 387, 418, 419, 381, 382, 411, 436, 354, 355, 358, - 330, 332, 333, 334, 335, 336, 343, 344, 345, 346, - 347, 348, 349, 458, 459, 461, 393, 394, 395, 396, - 404, 405, 462, 463, 464, 0, 0, 0, 413, 383, - 385, 599, 473, 477, 475, 474, 478, 476, 0, 0, - 481, 482, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 415, 430, 451, 486, 487, 384, 465, 0, - 0, 0, 0, 0, 0, 437, 438, 439, 440, 441, - 442, 443, 444, 600, 376, 371, 435, 350, 298, 299, - 372, 488, 489, 490, 491, 492, 494, 493, 495, 496, - 497, 331, 338, 483, 485, 484, 337, 0, 357, 420, - 460, 356, 386, 339, 340, 342, 341, 0, 499, 379, - 447, 500, 501, 502, 506, 505, 503, 504, 507, 508, - 509, 510, 512, 511, 522, 0, 526, 527, 0, 0, - 528, 513, 520, 514, 515, 516, 519, 521, 517, 518, - 275, 276, 277, 278, 279, 540, 542, 541, 544, 545, - 546, 547, 543, 570, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 571, 581, 582, 583, 584, 585, 586, - 587, 588, 593, 598, 616, 617, 618, 621, 619, 620, - 622, 623, 624, 625, 635, 636, 637, 638, 639, 640, - 647, 648, 424, 455, 472, 601, 602, 479, 480, 466, - 467, 0, 0, 0, 471, 641, 498, 523, 524, 525, - 470, 468, 469 + 0, 0, 0, 0, 559, 561, 563, 562, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 0, 600, 602, 0, 605, 607, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 614, 616, 617, 618, 620, 621, 619, 622, 623, 624, + 625, 0, 0, 0, 0, 0, 0, 637, 639, 640, + 641, 642, 643, 644, 0, 0, 653, 655, 656, 299, + 298, 305, 318, 316, 328, 324, 325, 329, 326, 327, + 330, 331, 332, 336, 337, 367, 368, 369, 370, 371, + 397, 398, 399, 405, 406, 321, 407, 408, 411, 409, + 410, 414, 415, 416, 430, 382, 383, 385, 386, 417, + 433, 376, 378, 434, 441, 442, 443, 322, 396, 461, + 462, 377, 455, 360, 317, 372, 431, 438, 418, 0, + 0, 465, 323, 300, 359, 422, 301, 319, 320, 373, + 374, 463, 420, 424, 425, 334, 333, 302, 466, 400, + 429, 361, 381, 435, 436, 437, 440, 454, 375, 459, + 457, 458, 388, 395, 426, 427, 389, 390, 419, 445, + 362, 363, 366, 338, 340, 335, 341, 342, 343, 344, + 351, 352, 353, 354, 355, 356, 357, 467, 468, 470, + 401, 402, 403, 404, 412, 413, 471, 472, 473, 0, + 0, 0, 421, 391, 393, 609, 482, 486, 484, 483, + 487, 485, 0, 0, 490, 491, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 423, 439, 460, 495, + 496, 392, 474, 0, 0, 0, 0, 0, 0, 446, + 447, 448, 449, 450, 451, 452, 453, 610, 384, 379, + 444, 358, 303, 304, 380, 497, 498, 499, 500, 501, + 503, 502, 504, 505, 506, 339, 346, 492, 494, 493, + 345, 0, 365, 428, 469, 364, 394, 347, 348, 350, + 349, 0, 508, 387, 456, 509, 510, 511, 515, 514, + 512, 513, 516, 517, 518, 519, 521, 520, 532, 0, + 536, 537, 0, 0, 538, 522, 530, 523, 524, 525, + 529, 531, 526, 527, 528, 280, 281, 282, 283, 284, + 550, 552, 551, 554, 555, 556, 557, 553, 580, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 581, 591, + 592, 593, 594, 595, 596, 597, 598, 603, 608, 626, + 627, 628, 631, 629, 630, 632, 633, 634, 635, 645, + 646, 647, 648, 649, 650, 657, 658, 432, 464, 481, + 611, 612, 488, 489, 475, 476, 0, 0, 0, 480, + 651, 507, 533, 534, 535, 479, 477, 478 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 265, 591, 618, - 619, 620, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299 + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 269, 628, 629, 630, 631, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 257, 20, 33, 477, - 21, 34, 491, 22, 35, 505, 23, 36, 522, 537, - 538, 539, 540, 541, 24, 37, 542, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + -1, 1, 17, 18, 19, 32, 261, 20, 33, 485, + 21, 34, 499, 22, 35, 513, 23, 36, 531, 547, + 548, 549, 550, 551, 24, 37, 552, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 486, 487, + 488, 489, 490, 491, 492, 500, 501, 502, 503, 504, + 505, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 514, 515, 516, 517, 518, 519, 520, 25, 38, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 26, + 39, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 27, 40, 615, 616, 28, 41, 618, 619, 473, + 474, 475, 476, 29, 42, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 30, 43, 647, 648, + 649, 650, 651, 652, 653, 477, 31, 44, 656, 657, + 658 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 2, 521, 478, 506, 479, 480, 614, 493, 654, 655, + 617, 3, 4, 659, 660, 494, 495, 521, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 661, 662, 507, + 508, 663, 664, 665, 666, 667, 5, 668, 669, 670, + 671, 672, 6, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 673, 674, 675, 509, 481, 558, 559, + 560, 561, 562, 563, 564, 565, 641, 642, 643, 644, + 645, 646, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 7, 690, 691, 692, + 482, 693, 694, 695, 496, 696, 497, 697, 698, 699, + 483, 700, 701, 702, 8, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 510, 511, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, 747, 748, 749, 750, 751, 9, 752, 753, 754, + 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 512, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 10, 809, 810, 811, 522, + 812, 523, 524, 525, 526, 527, 813, 814, 815, 816, + 817, 528, 818, 819, 11, 820, 484, 523, 524, 525, + 498, 821, 822, 823, 824, 825, 826, 528, 827, 828, + 829, 830, 831, 832, 833, 12, 834, 835, 836, 837, + 529, 530, 838, 839, 13, 542, 543, 544, 545, 546, + 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, + 850, 851, 852, 853, 854, 855, 856, 857, 14, 858, + 859, 860, 15, 861, 862, 863, 553, 864, 16, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 865, 866, 867, 868, 77, 78, 79, 869, 870, + 871, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 872, 873, 874, 875, 876, 877, 878, 879, + 880, 121, 122, 123, 124, 125, 881, 126, 127, 128, + 882, 883, 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, 884, 885, + 886, 155, 156, 157, 158, 159, 160, 161, 162, 887, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 908, 214, 909, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, + 920, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 921, 922, 923, 924, 925, 926, 927, 241, 928, + 929, 930, 931, 932, 933, 934, 242, 243, 935, 244, + 245, 936, 246, 247, 937, 938, 248, 249, 250, 251, + 252, 253, 254, 255, 939, 940, 941, 256, 942, 943, + 944, 945, 946, 947, 948, 949, 257, 258, 259, 260, + 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 970, 971, 972, 973, 974, 975, 976, 977, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 554, 555, 556, 557 +}; + +static const yytype_int16 yycheck[] = +{ + 0, 45, 45, 45, 47, 48, 115, 45, 299, 300, + 309, 11, 12, 10, 10, 53, 54, 45, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 10, 10, 81, + 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, + 10, 10, 52, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 10, 10, 10, 108, 110, 97, 98, + 99, 100, 101, 102, 103, 104, 266, 267, 268, 269, + 270, 271, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 96, 10, 10, 10, + 143, 10, 10, 10, 142, 10, 144, 10, 10, 10, + 153, 10, 10, 10, 114, 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, 187, 188, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 166, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 227, 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, 225, 10, 10, 10, 273, + 10, 275, 276, 277, 278, 279, 10, 10, 10, 10, + 10, 285, 10, 10, 244, 10, 289, 275, 276, 277, + 288, 10, 10, 10, 10, 10, 10, 285, 10, 10, + 10, 10, 10, 10, 10, 265, 10, 10, 10, 10, + 314, 315, 10, 10, 274, 303, 304, 305, 306, 307, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 298, 10, + 10, 10, 302, 10, 10, 10, 37, 10, 308, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 10, 10, 10, 10, 49, 50, 51, 10, 10, + 10, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 105, 106, 107, 108, 109, 10, 111, 112, 113, + 10, 10, 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, 10, 10, + 10, 145, 146, 147, 148, 149, 150, 151, 152, 10, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 10, 226, 10, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 10, 10, 10, 10, 10, 10, 10, 272, 10, + 10, 10, 10, 10, 10, 10, 280, 281, 10, 283, + 284, 10, 286, 287, 10, 10, 290, 291, 292, 293, + 294, 295, 296, 297, 10, 10, 10, 301, 10, 10, + 10, 10, 10, 10, 10, 10, 310, 311, 312, 313, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 37, 37, 37, 37 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_int16 yystos[] = +{ + 0, 317, 0, 11, 12, 46, 52, 96, 114, 166, + 225, 244, 265, 274, 298, 302, 308, 318, 319, 320, + 323, 326, 329, 332, 340, 584, 595, 617, 621, 629, + 642, 652, 321, 324, 327, 330, 333, 341, 585, 596, + 618, 622, 630, 643, 653, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 105, 106, 107, 108, 109, 111, 112, 113, 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, 145, 146, 147, 148, 149, + 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 226, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 272, 280, 281, 283, 284, 286, 287, 290, 291, + 292, 293, 294, 295, 296, 297, 301, 310, 311, 312, + 313, 322, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, @@ -2494,231 +2051,34 @@ static const yytype_int16 yydefgoto[] = 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 478, 479, 480, 481, 482, 483, - 484, 492, 493, 494, 495, 496, 497, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 506, 507, 508, 509, - 510, 511, 512, 25, 38, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 26, 39, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 27, 40, 605, 606, - 28, 41, 608, 609, 465, 466, 467, 468, 29, 42, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 30, 43, 637, 638, 639, 640, 641, 642, 643, - 469, 31, 44, 646, 647, 648 -}; - - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int16 yytable[] = -{ - 2, 513, 498, 644, 645, 604, 470, 607, 471, 472, - 485, 3, 4, 649, 650, 651, 652, 513, 486, 487, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 548, 549, 550, 551, 552, 553, 554, 555, 499, 500, - 631, 632, 633, 634, 635, 636, 5, 653, 654, 655, - 656, 657, 6, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 501, 668, 669, 670, 671, 672, 473, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 673, - 674, 675, 676, 677, 678, 679, 7, 680, 681, 682, - 474, 683, 684, 488, 685, 489, 686, 687, 688, 689, - 475, 690, 8, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 502, 503, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 9, 738, 739, 740, 741, 742, 743, 744, - 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, - 504, 755, 756, 757, 758, 759, 760, 761, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 794, 10, 795, 796, 797, 514, 798, 515, 516, 517, - 518, 519, 799, 800, 801, 802, 803, 520, 804, 805, - 11, 806, 807, 515, 516, 517, 476, 808, 809, 490, - 810, 811, 812, 520, 813, 814, 815, 816, 817, 818, - 819, 12, 820, 821, 822, 823, 521, 824, 825, 826, - 13, 532, 533, 534, 535, 536, 827, 828, 829, 830, - 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, - 841, 842, 843, 844, 14, 845, 846, 847, 15, 848, - 849, 850, 543, 851, 16, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 852, 853, 854, - 855, 77, 78, 79, 856, 857, 858, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 121, 122, 123, - 868, 124, 125, 126, 869, 870, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 871, 872, 873, 151, 152, 153, 154, 155, 156, 157, - 158, 874, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 875, 876, 877, 878, 879, 880, - 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 892, 893, 894, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 895, 210, 896, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 897, 898, 899, 900, 901, 902, 903, 904, - 905, 906, 907, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 908, 909, 910, 911, 912, 913, 914, - 237, 915, 916, 917, 918, 919, 920, 921, 238, 239, - 922, 240, 241, 923, 242, 243, 924, 925, 244, 245, - 246, 247, 248, 249, 250, 251, 926, 927, 928, 252, - 929, 930, 931, 932, 933, 934, 935, 936, 253, 254, - 255, 256, 937, 938, 939, 940, 941, 942, 943, 944, - 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 962, 544, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 545, 546, 547 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 45, 45, 295, 296, 113, 45, 305, 47, 48, - 45, 11, 12, 10, 10, 10, 10, 45, 53, 54, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 97, 98, 99, 100, 101, 102, 103, 104, 81, 82, - 262, 263, 264, 265, 266, 267, 46, 10, 10, 10, - 10, 10, 52, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 106, 10, 10, 10, 10, 10, 108, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 10, - 10, 10, 10, 10, 10, 10, 96, 10, 10, 10, - 139, 10, 10, 138, 10, 140, 10, 10, 10, 10, - 149, 10, 112, 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, - 183, 184, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 162, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 223, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 221, 10, 10, 10, 269, 10, 271, 272, 273, - 274, 275, 10, 10, 10, 10, 10, 281, 10, 10, - 240, 10, 10, 271, 272, 273, 285, 10, 10, 284, - 10, 10, 10, 281, 10, 10, 10, 10, 10, 10, - 10, 261, 10, 10, 10, 10, 310, 10, 10, 10, - 270, 299, 300, 301, 302, 303, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 294, 10, 10, 10, 298, 10, - 10, 10, 37, 10, 304, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 10, 10, 10, - 10, 49, 50, 51, 10, 10, 10, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 105, 106, 107, - 10, 109, 110, 111, 10, 10, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 10, 10, 10, 141, 142, 143, 144, 145, 146, 147, - 148, 10, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 10, 222, 10, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 10, 10, 10, 10, 10, 10, 10, - 268, 10, 10, 10, 10, 10, 10, 10, 276, 277, - 10, 279, 280, 10, 282, 283, 10, 10, 286, 287, - 288, 289, 290, 291, 292, 293, 10, 10, 10, 297, - 10, 10, 10, 10, 10, 10, 10, 10, 306, 307, - 308, 309, 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, 37, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 37, 37, 37 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_int16 yystos[] = -{ - 0, 312, 0, 11, 12, 46, 52, 96, 112, 162, - 221, 240, 261, 270, 294, 298, 304, 313, 314, 315, - 318, 321, 324, 327, 335, 574, 585, 607, 611, 619, - 632, 642, 316, 319, 322, 325, 328, 336, 575, 586, - 608, 612, 620, 633, 643, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 105, 106, 107, 109, 110, 111, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 141, 142, 143, 144, 145, 146, 147, 148, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 268, 276, 277, - 279, 280, 282, 283, 286, 287, 288, 289, 290, 291, - 292, 293, 297, 306, 307, 308, 309, 317, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 615, 616, 617, 618, 641, - 45, 47, 48, 108, 139, 149, 285, 320, 545, 546, - 547, 548, 549, 550, 551, 45, 53, 54, 138, 140, - 284, 323, 552, 553, 554, 555, 556, 557, 45, 81, - 82, 106, 183, 184, 223, 326, 567, 568, 569, 570, - 571, 572, 573, 45, 269, 271, 272, 273, 274, 275, - 281, 310, 329, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 299, 300, 301, 302, 303, 330, 331, 332, - 333, 334, 337, 558, 559, 560, 561, 562, 97, 98, - 99, 100, 101, 102, 103, 104, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 113, 609, 610, 305, 613, 614, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 262, 263, 264, 265, 266, 267, 634, 635, 636, - 637, 638, 639, 640, 295, 296, 644, 645, 646, 10, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 625, 626, 627, 628, 651, 45, 47, + 48, 110, 143, 153, 289, 325, 554, 555, 556, 557, + 558, 559, 560, 45, 53, 54, 142, 144, 288, 328, + 561, 562, 563, 564, 565, 566, 45, 81, 82, 108, + 187, 188, 227, 331, 577, 578, 579, 580, 581, 582, + 583, 45, 273, 275, 276, 277, 278, 279, 285, 314, + 315, 334, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 303, 304, 305, 306, 307, 335, 336, 337, + 338, 339, 342, 567, 568, 569, 570, 571, 97, 98, + 99, 100, 101, 102, 103, 104, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 115, 619, 620, 309, 623, 624, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 266, 267, 268, 269, 270, 271, 644, 645, 646, + 647, 648, 649, 650, 299, 300, 654, 655, 656, 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, @@ -2750,42 +2110,42 @@ static const yytype_int16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 311, 312, 312, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 314, 315, - 316, 316, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 318, 319, 319, 320, 320, 320, - 320, 320, 320, 320, 321, 322, 322, 323, 323, 323, - 323, 323, 323, 324, 325, 325, 326, 326, 326, 326, - 326, 326, 326, 327, 328, 328, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 330, 331, 332, 333, 334, - 335, 336, 336, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 338, 339, 340, 341, 342, 343, 344, + 0, 316, 317, 317, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 319, 320, + 321, 321, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 323, 324, + 324, 325, 325, 325, 325, 325, 325, 325, 326, 327, + 327, 328, 328, 328, 328, 328, 328, 329, 330, 330, + 331, 331, 331, 331, 331, 331, 331, 332, 333, 333, + 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, + 335, 336, 337, 338, 339, 340, 341, 341, 342, 342, + 342, 342, 342, 342, 342, 342, 342, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, @@ -2809,18 +2169,19 @@ static const yytype_int16 yyr1[] = 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 596, 597, 597, 597, 597, 597, 597, 597, 597, 597, + 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 608, 609, 610, 611, 612, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 620, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 633, 634, - 634, 634, 634, 634, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 643, 644, 644, 645, 646 + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 618, 619, 620, 621, 622, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 630, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 643, 644, + 644, 644, 644, 644, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 653, 654, 654, 655, 656 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2849,13 +2210,13 @@ static const yytype_int8 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, 1, 1, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -2868,14 +2229,15 @@ static const yytype_int8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, + 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, - 4, 3, 3, 2, 2, 2, 2, 2, 2, 3, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 1, @@ -3102,7 +2464,7 @@ yydestruct (const char *yymsg, } -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -3120,34 +2482,30 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize; + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The state stack. */ + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ + /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -3161,15 +2519,6 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - - YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -3370,24 +2719,24 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: -#line 198 "./util/configparser.y" + case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ +#line 199 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 3379 "util/configparser.c" +#line 2728 "util/configparser.c" break; - case 19: -#line 204 "./util/configparser.y" + case 19: /* serverstart: VAR_SERVER */ +#line 205 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 3387 "util/configparser.c" +#line 2736 "util/configparser.c" break; - case 234: -#line 307 "./util/configparser.y" + case 238: /* stubstart: VAR_STUB_ZONE */ +#line 311 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -3398,11 +2747,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3402 "util/configparser.c" +#line 2751 "util/configparser.c" break; - case 244: -#line 324 "./util/configparser.y" + case 248: /* forwardstart: VAR_FORWARD_ZONE */ +#line 328 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -3413,11 +2762,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3417 "util/configparser.c" +#line 2766 "util/configparser.c" break; - case 253: -#line 341 "./util/configparser.y" + case 257: /* viewstart: VAR_VIEW */ +#line 345 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -3430,11 +2779,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3434 "util/configparser.c" +#line 2783 "util/configparser.c" break; - case 263: -#line 360 "./util/configparser.y" + case 267: /* authstart: VAR_AUTH_ZONE */ +#line 364 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -3446,16 +2795,17 @@ yyreduce: s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; s->zonemd_reject_absence = 0; s->isrpz = 0; } else yyerror("out of memory"); } -#line 3455 "util/configparser.c" +#line 2805 "util/configparser.c" break; - case 275: -#line 385 "./util/configparser.y" + case 280: /* rpz_tag: VAR_TAGS STRING_ARG */ +#line 390 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -3472,11 +2822,11 @@ yyreduce: } } -#line 3476 "util/configparser.c" +#line 2826 "util/configparser.c" break; - case 276: -#line 404 "./util/configparser.y" + case 281: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ +#line 409 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -3491,21 +2841,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 3495 "util/configparser.c" +#line 2845 "util/configparser.c" break; - case 277: -#line 421 "./util/configparser.y" + case 282: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ +#line 426 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 3505 "util/configparser.c" +#line 2855 "util/configparser.c" break; - case 278: -#line 429 "./util/configparser.y" + case 283: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ +#line 434 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3513,21 +2863,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3517 "util/configparser.c" +#line 2867 "util/configparser.c" break; - case 279: -#line 439 "./util/configparser.y" + case 284: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ +#line 444 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3527 "util/configparser.c" +#line 2877 "util/configparser.c" break; - case 280: -#line 447 "./util/configparser.y" + case 285: /* rpzstart: VAR_RPZ */ +#line 452 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -3543,11 +2893,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3547 "util/configparser.c" +#line 2897 "util/configparser.c" break; - case 293: -#line 470 "./util/configparser.y" + case 298: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ +#line 475 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3555,11 +2905,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3559 "util/configparser.c" +#line 2909 "util/configparser.c" break; - case 294: -#line 479 "./util/configparser.y" + case 299: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ +#line 484 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3567,11 +2917,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3571 "util/configparser.c" +#line 2921 "util/configparser.c" break; - case 295: -#line 488 "./util/configparser.y" + case 300: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ +#line 493 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3581,11 +2931,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3585 "util/configparser.c" +#line 2935 "util/configparser.c" break; - case 296: -#line 499 "./util/configparser.y" + case 301: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ +#line 504 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3593,11 +2943,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3597 "util/configparser.c" +#line 2947 "util/configparser.c" break; - case 297: -#line 508 "./util/configparser.y" + case 302: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ +#line 513 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3605,11 +2955,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3609 "util/configparser.c" +#line 2959 "util/configparser.c" break; - case 298: -#line 517 "./util/configparser.y" + case 303: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ +#line 522 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3617,11 +2967,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3621 "util/configparser.c" +#line 2971 "util/configparser.c" break; - case 299: -#line 526 "./util/configparser.y" + case 304: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ +#line 531 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3631,11 +2981,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3635 "util/configparser.c" +#line 2985 "util/configparser.c" break; - case 300: -#line 537 "./util/configparser.y" + case 305: /* server_port: VAR_PORT STRING_ARG */ +#line 542 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3643,11 +2993,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3647 "util/configparser.c" +#line 2997 "util/configparser.c" break; - case 301: -#line 546 "./util/configparser.y" + case 306: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ +#line 551 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3658,11 +3008,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3662 "util/configparser.c" +#line 3012 "util/configparser.c" break; - case 302: -#line 558 "./util/configparser.y" + case 307: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ +#line 563 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3674,11 +3024,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3678 "util/configparser.c" +#line 3028 "util/configparser.c" break; - case 303: -#line 572 "./util/configparser.y" + case 308: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ +#line 577 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3692,11 +3042,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3696 "util/configparser.c" +#line 3046 "util/configparser.c" break; - case 304: -#line 587 "./util/configparser.y" + case 309: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ +#line 592 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3706,11 +3056,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3710 "util/configparser.c" +#line 3060 "util/configparser.c" break; - case 305: -#line 598 "./util/configparser.y" + case 310: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 603 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3726,11 +3076,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3730 "util/configparser.c" +#line 3080 "util/configparser.c" break; - case 306: -#line 615 "./util/configparser.y" + case 311: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 620 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3746,11 +3096,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3750 "util/configparser.c" +#line 3100 "util/configparser.c" break; - case 307: -#line 632 "./util/configparser.y" + case 312: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 637 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3766,11 +3116,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3770 "util/configparser.c" +#line 3120 "util/configparser.c" break; - case 308: -#line 649 "./util/configparser.y" + case 313: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 654 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3786,11 +3136,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3790 "util/configparser.c" +#line 3140 "util/configparser.c" break; - case 309: -#line 666 "./util/configparser.y" + case 314: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ +#line 671 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3804,11 +3154,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3808 "util/configparser.c" +#line 3158 "util/configparser.c" break; - case 310: -#line 681 "./util/configparser.y" + case 315: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ +#line 686 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3822,11 +3172,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3826 "util/configparser.c" +#line 3176 "util/configparser.c" break; - case 311: -#line 696 "./util/configparser.y" + case 316: /* server_interface: VAR_INTERFACE STRING_ARG */ +#line 701 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3838,11 +3188,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3842 "util/configparser.c" +#line 3192 "util/configparser.c" break; - case 312: -#line 709 "./util/configparser.y" + case 317: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ +#line 714 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3856,11 +3206,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3860 "util/configparser.c" +#line 3210 "util/configparser.c" break; - case 313: -#line 724 "./util/configparser.y" + case 318: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ +#line 729 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3868,11 +3218,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3872 "util/configparser.c" +#line 3222 "util/configparser.c" break; - case 314: -#line 733 "./util/configparser.y" + case 319: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ +#line 738 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3880,11 +3230,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3884 "util/configparser.c" +#line 3234 "util/configparser.c" break; - case 315: -#line 742 "./util/configparser.y" + case 320: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ +#line 747 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3892,11 +3242,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3896 "util/configparser.c" +#line 3246 "util/configparser.c" break; - case 316: -#line 751 "./util/configparser.y" + case 321: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ +#line 756 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3904,11 +3254,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3908 "util/configparser.c" +#line 3258 "util/configparser.c" break; - case 317: -#line 760 "./util/configparser.y" + case 322: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ +#line 765 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3916,11 +3266,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3920 "util/configparser.c" +#line 3270 "util/configparser.c" break; - case 318: -#line 769 "./util/configparser.y" + case 323: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ +#line 774 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3928,11 +3278,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3932 "util/configparser.c" +#line 3282 "util/configparser.c" break; - case 319: -#line 778 "./util/configparser.y" + case 324: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ +#line 783 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3940,11 +3290,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3944 "util/configparser.c" +#line 3294 "util/configparser.c" break; - case 320: -#line 787 "./util/configparser.y" + case 325: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ +#line 792 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3952,11 +3302,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3956 "util/configparser.c" +#line 3306 "util/configparser.c" break; - case 321: -#line 796 "./util/configparser.y" + case 326: /* server_do_udp: VAR_DO_UDP STRING_ARG */ +#line 801 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3964,11 +3314,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3968 "util/configparser.c" +#line 3318 "util/configparser.c" break; - case 322: -#line 805 "./util/configparser.y" + case 327: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ +#line 810 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3976,11 +3326,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3980 "util/configparser.c" +#line 3330 "util/configparser.c" break; - case 323: -#line 814 "./util/configparser.y" + case 328: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ +#line 819 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3988,11 +3338,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3992 "util/configparser.c" +#line 3342 "util/configparser.c" break; - case 324: -#line 823 "./util/configparser.y" + case 329: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ +#line 828 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4000,11 +3350,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4004 "util/configparser.c" +#line 3354 "util/configparser.c" break; - case 325: -#line 832 "./util/configparser.y" + case 330: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ +#line 837 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4012,11 +3362,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4016 "util/configparser.c" +#line 3366 "util/configparser.c" break; - case 326: -#line 841 "./util/configparser.y" + case 331: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ +#line 846 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4024,11 +3374,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4028 "util/configparser.c" +#line 3378 "util/configparser.c" break; - case 327: -#line 850 "./util/configparser.y" + case 332: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ +#line 855 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4040,11 +3390,53 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4044 "util/configparser.c" +#line 3394 "util/configparser.c" break; - case 328: -#line 863 "./util/configparser.y" + case 333: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ +#line 868 "./util/configparser.y" + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3408 "util/configparser.c" + break; + + case 334: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ +#line 879 "./util/configparser.y" + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3422 "util/configparser.c" + break; + + case 335: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */ +#line 890 "./util/configparser.y" + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->tcp_auth_query_timeout = 0; + else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3436 "util/configparser.c" + break; + + case 336: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ +#line 901 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4052,11 +3444,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4056 "util/configparser.c" +#line 3448 "util/configparser.c" break; - case 329: -#line 872 "./util/configparser.y" + case 337: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ +#line 910 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4068,11 +3460,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4072 "util/configparser.c" +#line 3464 "util/configparser.c" break; - case 330: -#line 885 "./util/configparser.y" + case 338: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ +#line 923 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4080,11 +3472,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4084 "util/configparser.c" +#line 3476 "util/configparser.c" break; - case 331: -#line 894 "./util/configparser.y" + case 339: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ +#line 932 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4092,11 +3484,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4096 "util/configparser.c" +#line 3488 "util/configparser.c" break; - case 332: -#line 903 "./util/configparser.y" + case 340: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ +#line 941 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4104,31 +3496,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4108 "util/configparser.c" +#line 3500 "util/configparser.c" break; - case 333: -#line 912 "./util/configparser.y" + case 341: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ +#line 950 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 4118 "util/configparser.c" +#line 3510 "util/configparser.c" break; - case 334: -#line 919 "./util/configparser.y" + case 342: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ +#line 957 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 4128 "util/configparser.c" +#line 3520 "util/configparser.c" break; - case 335: -#line 926 "./util/configparser.y" + case 343: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ +#line 964 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4136,21 +3528,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4140 "util/configparser.c" +#line 3532 "util/configparser.c" break; - case 336: -#line 935 "./util/configparser.y" + case 344: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ +#line 973 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 4150 "util/configparser.c" +#line 3542 "util/configparser.c" break; - case 337: -#line 942 "./util/configparser.y" + case 345: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ +#line 980 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4158,53 +3550,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4162 "util/configparser.c" +#line 3554 "util/configparser.c" break; - case 338: -#line 951 "./util/configparser.y" + case 346: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ +#line 989 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4173 "util/configparser.c" +#line 3565 "util/configparser.c" break; - case 339: -#line 959 "./util/configparser.y" + case 347: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ +#line 997 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 4183 "util/configparser.c" +#line 3575 "util/configparser.c" break; - case 340: -#line 966 "./util/configparser.y" + case 348: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ +#line 1004 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 4193 "util/configparser.c" +#line 3585 "util/configparser.c" break; - case 341: -#line 973 "./util/configparser.y" + case 349: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ +#line 1011 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4204 "util/configparser.c" +#line 3596 "util/configparser.c" break; - case 342: -#line 981 "./util/configparser.y" + case 350: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ +#line 1019 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4212,11 +3604,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4216 "util/configparser.c" +#line 3608 "util/configparser.c" break; - case 343: -#line 990 "./util/configparser.y" + case 351: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ +#line 1028 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4224,11 +3616,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4228 "util/configparser.c" +#line 3620 "util/configparser.c" break; - case 344: -#line 998 "./util/configparser.y" + case 352: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ +#line 1036 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -4244,11 +3636,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 4248 "util/configparser.c" +#line 3640 "util/configparser.c" break; - case 345: -#line 1014 "./util/configparser.y" + case 353: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ +#line 1052 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4256,11 +3648,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4260 "util/configparser.c" +#line 3652 "util/configparser.c" break; - case 346: -#line 1022 "./util/configparser.y" + case 354: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ +#line 1060 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4268,11 +3660,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4272 "util/configparser.c" +#line 3664 "util/configparser.c" break; - case 347: -#line 1030 "./util/configparser.y" + case 355: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ +#line 1068 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4280,11 +3672,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4284 "util/configparser.c" +#line 3676 "util/configparser.c" break; - case 348: -#line 1038 "./util/configparser.y" + case 356: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ +#line 1076 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4292,11 +3684,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4296 "util/configparser.c" +#line 3688 "util/configparser.c" break; - case 349: -#line 1046 "./util/configparser.y" + case 357: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ +#line 1084 "./util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4304,11 +3696,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4308 "util/configparser.c" +#line 3700 "util/configparser.c" break; - case 350: -#line 1054 "./util/configparser.y" + case 358: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ +#line 1092 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4316,11 +3708,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4320 "util/configparser.c" +#line 3712 "util/configparser.c" break; - case 351: -#line 1063 "./util/configparser.y" + case 359: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ +#line 1101 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4328,11 +3720,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4332 "util/configparser.c" +#line 3724 "util/configparser.c" break; - case 352: -#line 1072 "./util/configparser.y" + case 360: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ +#line 1110 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4345,11 +3737,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4349 "util/configparser.c" +#line 3741 "util/configparser.c" break; - case 353: -#line 1086 "./util/configparser.y" + case 361: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ +#line 1124 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4357,11 +3749,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4361 "util/configparser.c" +#line 3753 "util/configparser.c" break; - case 354: -#line 1095 "./util/configparser.y" + case 362: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ +#line 1133 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4369,11 +3761,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4373 "util/configparser.c" +#line 3765 "util/configparser.c" break; - case 355: -#line 1104 "./util/configparser.y" + case 363: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ +#line 1142 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4381,11 +3773,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4385 "util/configparser.c" +#line 3777 "util/configparser.c" break; - case 356: -#line 1113 "./util/configparser.y" + case 364: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ +#line 1151 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4393,11 +3785,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4397 "util/configparser.c" +#line 3789 "util/configparser.c" break; - case 357: -#line 1122 "./util/configparser.y" + case 365: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ +#line 1160 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4405,11 +3797,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4409 "util/configparser.c" +#line 3801 "util/configparser.c" break; - case 358: -#line 1131 "./util/configparser.y" + case 366: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ +#line 1169 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4417,31 +3809,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4421 "util/configparser.c" +#line 3813 "util/configparser.c" break; - case 359: -#line 1140 "./util/configparser.y" + case 367: /* server_chroot: VAR_CHROOT STRING_ARG */ +#line 1178 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 4431 "util/configparser.c" +#line 3823 "util/configparser.c" break; - case 360: -#line 1147 "./util/configparser.y" + case 368: /* server_username: VAR_USERNAME STRING_ARG */ +#line 1185 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 4441 "util/configparser.c" +#line 3833 "util/configparser.c" break; - case 361: -#line 1154 "./util/configparser.y" + case 369: /* server_directory: VAR_DIRECTORY STRING_ARG */ +#line 1192 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -4466,105 +3858,105 @@ yyreduce: } } } -#line 4470 "util/configparser.c" +#line 3862 "util/configparser.c" break; - case 362: -#line 1180 "./util/configparser.y" + case 370: /* server_logfile: VAR_LOGFILE STRING_ARG */ +#line 1218 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 4481 "util/configparser.c" +#line 3873 "util/configparser.c" break; - case 363: -#line 1188 "./util/configparser.y" + case 371: /* server_pidfile: VAR_PIDFILE STRING_ARG */ +#line 1226 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 4491 "util/configparser.c" +#line 3883 "util/configparser.c" break; - case 364: -#line 1195 "./util/configparser.y" + case 372: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ +#line 1233 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4501 "util/configparser.c" +#line 3893 "util/configparser.c" break; - case 365: -#line 1202 "./util/configparser.y" + case 373: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ +#line 1240 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4511 "util/configparser.c" +#line 3903 "util/configparser.c" break; - case 366: -#line 1209 "./util/configparser.y" + case 374: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ +#line 1247 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4521 "util/configparser.c" +#line 3913 "util/configparser.c" break; - case 367: -#line 1216 "./util/configparser.y" + case 375: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1254 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4532 "util/configparser.c" +#line 3924 "util/configparser.c" break; - case 368: -#line 1224 "./util/configparser.y" + case 376: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1262 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4543 "util/configparser.c" +#line 3935 "util/configparser.c" break; - case 369: -#line 1232 "./util/configparser.y" + case 377: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ +#line 1270 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4554 "util/configparser.c" +#line 3946 "util/configparser.c" break; - case 370: -#line 1240 "./util/configparser.y" + case 378: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ +#line 1278 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4564 "util/configparser.c" +#line 3956 "util/configparser.c" break; - case 371: -#line 1247 "./util/configparser.y" + case 379: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ +#line 1285 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4574,11 +3966,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4578 "util/configparser.c" +#line 3970 "util/configparser.c" break; - case 372: -#line 1258 "./util/configparser.y" + case 380: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ +#line 1296 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4588,21 +3980,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4592 "util/configparser.c" +#line 3984 "util/configparser.c" break; - case 373: -#line 1269 "./util/configparser.y" + case 381: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ +#line 1307 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4602 "util/configparser.c" +#line 3994 "util/configparser.c" break; - case 374: -#line 1276 "./util/configparser.y" + case 382: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ +#line 1314 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4610,11 +4002,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4614 "util/configparser.c" +#line 4006 "util/configparser.c" break; - case 375: -#line 1285 "./util/configparser.y" + case 383: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ +#line 1323 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4622,11 +4014,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4626 "util/configparser.c" +#line 4018 "util/configparser.c" break; - case 376: -#line 1294 "./util/configparser.y" + case 384: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ +#line 1332 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4634,31 +4026,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4638 "util/configparser.c" +#line 4030 "util/configparser.c" break; - case 377: -#line 1303 "./util/configparser.y" + case 385: /* server_identity: VAR_IDENTITY STRING_ARG */ +#line 1341 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4648 "util/configparser.c" +#line 4040 "util/configparser.c" break; - case 378: -#line 1310 "./util/configparser.y" + case 386: /* server_version: VAR_VERSION STRING_ARG */ +#line 1348 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4658 "util/configparser.c" +#line 4050 "util/configparser.c" break; - case 379: -#line 1317 "./util/configparser.y" + case 387: /* server_nsid: VAR_NSID STRING_ARG */ +#line 1355 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -4673,33 +4065,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4677 "util/configparser.c" +#line 4069 "util/configparser.c" break; - case 380: -#line 1333 "./util/configparser.y" + case 388: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ +#line 1371 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4688 "util/configparser.c" +#line 4080 "util/configparser.c" break; - case 381: -#line 1341 "./util/configparser.y" + case 389: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ +#line 1379 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4699 "util/configparser.c" +#line 4091 "util/configparser.c" break; - case 382: -#line 1349 "./util/configparser.y" + case 390: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ +#line 1387 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4708,11 +4100,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4712 "util/configparser.c" +#line 4104 "util/configparser.c" break; - case 383: -#line 1359 "./util/configparser.y" + case 391: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ +#line 1397 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4721,11 +4113,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4725 "util/configparser.c" +#line 4117 "util/configparser.c" break; - case 384: -#line 1369 "./util/configparser.y" + case 392: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ +#line 1407 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4734,11 +4126,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4738 "util/configparser.c" +#line 4130 "util/configparser.c" break; - case 385: -#line 1379 "./util/configparser.y" + case 393: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ +#line 1417 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4751,22 +4143,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4755 "util/configparser.c" +#line 4147 "util/configparser.c" break; - case 386: -#line 1393 "./util/configparser.y" + case 394: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ +#line 1431 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4766 "util/configparser.c" +#line 4158 "util/configparser.c" break; - case 387: -#line 1401 "./util/configparser.y" + case 395: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ +#line 1439 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4778,11 +4170,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4782 "util/configparser.c" +#line 4174 "util/configparser.c" break; - case 388: -#line 1414 "./util/configparser.y" + case 396: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ +#line 1452 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4792,22 +4184,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4796 "util/configparser.c" +#line 4188 "util/configparser.c" break; - case 389: -#line 1425 "./util/configparser.y" + case 397: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ +#line 1463 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4807 "util/configparser.c" +#line 4199 "util/configparser.c" break; - case 390: -#line 1433 "./util/configparser.y" + case 398: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ +#line 1471 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4819,11 +4211,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4823 "util/configparser.c" +#line 4215 "util/configparser.c" break; - case 391: -#line 1446 "./util/configparser.y" + case 399: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ +#line 1484 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4831,11 +4223,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4835 "util/configparser.c" +#line 4227 "util/configparser.c" break; - case 392: -#line 1455 "./util/configparser.y" + case 400: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ +#line 1493 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4843,11 +4235,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4847 "util/configparser.c" +#line 4239 "util/configparser.c" break; - case 393: -#line 1464 "./util/configparser.y" + case 401: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ +#line 1502 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4855,11 +4247,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4859 "util/configparser.c" +#line 4251 "util/configparser.c" break; - case 394: -#line 1473 "./util/configparser.y" + case 402: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ +#line 1511 "./util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4867,11 +4259,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4871 "util/configparser.c" +#line 4263 "util/configparser.c" break; - case 395: -#line 1482 "./util/configparser.y" + case 403: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ +#line 1520 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4880,11 +4272,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4884 "util/configparser.c" +#line 4276 "util/configparser.c" break; - case 396: -#line 1492 "./util/configparser.y" + case 404: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ +#line 1530 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4893,22 +4285,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4897 "util/configparser.c" +#line 4289 "util/configparser.c" break; - case 397: -#line 1502 "./util/configparser.y" + case 405: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ +#line 1540 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4908 "util/configparser.c" +#line 4300 "util/configparser.c" break; - case 398: -#line 1510 "./util/configparser.y" + case 406: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ +#line 1548 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4920,11 +4312,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4924 "util/configparser.c" +#line 4316 "util/configparser.c" break; - case 399: -#line 1523 "./util/configparser.y" + case 407: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ +#line 1561 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4932,22 +4324,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4936 "util/configparser.c" +#line 4328 "util/configparser.c" break; - case 400: -#line 1532 "./util/configparser.y" + case 408: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ +#line 1570 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4947 "util/configparser.c" +#line 4339 "util/configparser.c" break; - case 401: -#line 1540 "./util/configparser.y" + case 409: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ +#line 1578 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4955,22 +4347,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4959 "util/configparser.c" +#line 4351 "util/configparser.c" break; - case 402: -#line 1549 "./util/configparser.y" + case 410: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ +#line 1587 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4970 "util/configparser.c" +#line 4362 "util/configparser.c" break; - case 403: -#line 1557 "./util/configparser.y" + case 411: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ +#line 1595 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4982,11 +4374,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4986 "util/configparser.c" +#line 4378 "util/configparser.c" break; - case 404: -#line 1570 "./util/configparser.y" + case 412: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ +#line 1608 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4994,11 +4386,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4998 "util/configparser.c" +#line 4390 "util/configparser.c" break; - case 405: -#line 1579 "./util/configparser.y" + case 413: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ +#line 1617 "./util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5007,21 +4399,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5011 "util/configparser.c" +#line 4403 "util/configparser.c" break; - case 406: -#line 1589 "./util/configparser.y" + case 414: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ +#line 1627 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 5021 "util/configparser.c" +#line 4413 "util/configparser.c" break; - case 407: -#line 1596 "./util/configparser.y" + case 415: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ +#line 1634 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5030,11 +4422,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5034 "util/configparser.c" +#line 4426 "util/configparser.c" break; - case 408: -#line 1606 "./util/configparser.y" + case 416: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ +#line 1644 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5043,11 +4435,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5047 "util/configparser.c" +#line 4439 "util/configparser.c" break; - case 409: -#line 1616 "./util/configparser.y" + case 417: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ +#line 1654 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5056,11 +4448,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5060 "util/configparser.c" +#line 4452 "util/configparser.c" break; - case 410: -#line 1626 "./util/configparser.y" + case 418: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ +#line 1664 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5069,11 +4461,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5073 "util/configparser.c" +#line 4465 "util/configparser.c" break; - case 411: -#line 1636 "./util/configparser.y" + case 419: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ +#line 1674 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5082,11 +4474,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5086 "util/configparser.c" +#line 4478 "util/configparser.c" break; - case 412: -#line 1646 "./util/configparser.y" + case 420: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ +#line 1684 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5095,11 +4487,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5099 "util/configparser.c" +#line 4491 "util/configparser.c" break; - case 413: -#line 1656 "./util/configparser.y" + case 421: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ +#line 1694 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5108,11 +4500,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5112 "util/configparser.c" +#line 4504 "util/configparser.c" break; - case 414: -#line 1666 "./util/configparser.y" + case 422: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ +#line 1704 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5121,41 +4513,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5125 "util/configparser.c" +#line 4517 "util/configparser.c" break; - case 415: -#line 1676 "./util/configparser.y" + case 423: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ +#line 1714 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5135 "util/configparser.c" +#line 4527 "util/configparser.c" break; - case 416: -#line 1683 "./util/configparser.y" + case 424: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ +#line 1721 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5145 "util/configparser.c" +#line 4537 "util/configparser.c" break; - case 417: -#line 1690 "./util/configparser.y" + case 425: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ +#line 1728 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5155 "util/configparser.c" +#line 4547 "util/configparser.c" break; - case 418: -#line 1697 "./util/configparser.y" + case 426: /* server_prefetch: VAR_PREFETCH STRING_ARG */ +#line 1735 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5163,11 +4555,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5167 "util/configparser.c" +#line 4559 "util/configparser.c" break; - case 419: -#line 1706 "./util/configparser.y" + case 427: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ +#line 1744 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5175,11 +4567,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5179 "util/configparser.c" +#line 4571 "util/configparser.c" break; - case 420: -#line 1715 "./util/configparser.y" + case 428: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ +#line 1753 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5187,11 +4579,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5191 "util/configparser.c" +#line 4583 "util/configparser.c" break; - case 421: -#line 1724 "./util/configparser.y" + case 429: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ +#line 1762 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5199,21 +4591,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5203 "util/configparser.c" +#line 4595 "util/configparser.c" break; - case 422: -#line 1733 "./util/configparser.y" + case 430: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ +#line 1771 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5213 "util/configparser.c" +#line 4605 "util/configparser.c" break; - case 423: -#line 1740 "./util/configparser.y" + case 431: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ +#line 1778 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5222,11 +4614,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5226 "util/configparser.c" +#line 4618 "util/configparser.c" break; - case 424: -#line 1750 "./util/configparser.y" + case 432: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ +#line 1788 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -5245,21 +4637,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 5249 "util/configparser.c" +#line 4641 "util/configparser.c" break; - case 425: -#line 1770 "./util/configparser.y" + case 433: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ +#line 1808 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 5259 "util/configparser.c" +#line 4651 "util/configparser.c" break; - case 426: -#line 1777 "./util/configparser.y" + case 434: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ +#line 1815 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5276,11 +4668,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5280 "util/configparser.c" +#line 4672 "util/configparser.c" break; - case 427: -#line 1795 "./util/configparser.y" + case 435: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ +#line 1833 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5292,11 +4684,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5296 "util/configparser.c" +#line 4688 "util/configparser.c" break; - case 428: -#line 1808 "./util/configparser.y" + case 436: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ +#line 1846 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5308,11 +4700,27 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5312 "util/configparser.c" +#line 4704 "util/configparser.c" break; - case 429: -#line 1821 "./util/configparser.y" + case 437: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */ +#line 1859 "./util/configparser.y" + { + OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str))); + if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { + cfg_parser->cfg->val_max_restart = 0; + } else { + cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str)); + if(!cfg_parser->cfg->val_max_restart) + yyerror("number expected"); + } + free((yyvsp[0].str)); + } +#line 4720 "util/configparser.c" + break; + + case 438: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ +#line 1872 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5320,11 +4728,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5324 "util/configparser.c" +#line 4732 "util/configparser.c" break; - case 430: -#line 1830 "./util/configparser.y" + case 439: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ +#line 1881 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5332,11 +4740,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5336 "util/configparser.c" +#line 4744 "util/configparser.c" break; - case 431: -#line 1839 "./util/configparser.y" + case 440: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ +#line 1890 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5344,11 +4752,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5348 "util/configparser.c" +#line 4756 "util/configparser.c" break; - case 432: -#line 1848 "./util/configparser.y" + case 441: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ +#line 1899 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5356,11 +4764,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5360 "util/configparser.c" +#line 4768 "util/configparser.c" break; - case 433: -#line 1857 "./util/configparser.y" + case 442: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ +#line 1908 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5369,11 +4777,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5373 "util/configparser.c" +#line 4781 "util/configparser.c" break; - case 434: -#line 1867 "./util/configparser.y" + case 443: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ +#line 1918 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5382,11 +4790,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5386 "util/configparser.c" +#line 4794 "util/configparser.c" break; - case 435: -#line 1877 "./util/configparser.y" + case 444: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ +#line 1928 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5396,11 +4804,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5400 "util/configparser.c" +#line 4808 "util/configparser.c" break; - case 436: -#line 1888 "./util/configparser.y" + case 445: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ +#line 1939 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5408,11 +4816,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5412 "util/configparser.c" +#line 4820 "util/configparser.c" break; - case 437: -#line 1897 "./util/configparser.y" + case 446: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ +#line 1948 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5420,11 +4828,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5424 "util/configparser.c" +#line 4832 "util/configparser.c" break; - case 438: -#line 1906 "./util/configparser.y" + case 447: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ +#line 1957 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5432,11 +4840,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5436 "util/configparser.c" +#line 4844 "util/configparser.c" break; - case 439: -#line 1915 "./util/configparser.y" + case 448: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ +#line 1966 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5444,11 +4852,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5448 "util/configparser.c" +#line 4856 "util/configparser.c" break; - case 440: -#line 1924 "./util/configparser.y" + case 449: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ +#line 1975 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5456,11 +4864,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5460 "util/configparser.c" +#line 4868 "util/configparser.c" break; - case 441: -#line 1933 "./util/configparser.y" + case 450: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ +#line 1984 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5468,11 +4876,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5472 "util/configparser.c" +#line 4880 "util/configparser.c" break; - case 442: -#line 1942 "./util/configparser.y" + case 451: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ +#line 1993 "./util/configparser.y" { OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5480,11 +4888,11 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5484 "util/configparser.c" +#line 4892 "util/configparser.c" break; - case 443: -#line 1951 "./util/configparser.y" + case 452: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ +#line 2002 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5496,11 +4904,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5500 "util/configparser.c" +#line 4908 "util/configparser.c" break; - case 444: -#line 1964 "./util/configparser.y" + case 453: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ +#line 2015 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5512,11 +4920,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5516 "util/configparser.c" +#line 4924 "util/configparser.c" break; - case 445: -#line 1977 "./util/configparser.y" + case 454: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ +#line 2028 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5524,21 +4932,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5528 "util/configparser.c" +#line 4936 "util/configparser.c" break; - case 446: -#line 1986 "./util/configparser.y" + case 455: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ +#line 2037 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 5538 "util/configparser.c" +#line 4946 "util/configparser.c" break; - case 447: -#line 1993 "./util/configparser.y" + case 456: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ +#line 2044 "./util/configparser.y" { OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5546,11 +4954,11 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5550 "util/configparser.c" +#line 4958 "util/configparser.c" break; - case 448: -#line 2002 "./util/configparser.y" + case 457: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ +#line 2053 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5558,11 +4966,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5562 "util/configparser.c" +#line 4970 "util/configparser.c" break; - case 449: -#line 2011 "./util/configparser.y" + case 458: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ +#line 2062 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5570,11 +4978,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5574 "util/configparser.c" +#line 4982 "util/configparser.c" break; - case 450: -#line 2020 "./util/configparser.y" + case 459: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ +#line 2071 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5582,11 +4990,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5586 "util/configparser.c" +#line 4994 "util/configparser.c" break; - case 451: -#line 2029 "./util/configparser.y" + case 460: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ +#line 2080 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5595,22 +5003,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5599 "util/configparser.c" +#line 5007 "util/configparser.c" break; - case 452: -#line 2038 "./util/configparser.y" + case 461: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ +#line 2089 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5610 "util/configparser.c" +#line 5018 "util/configparser.c" break; - case 453: -#line 2046 "./util/configparser.y" + case 462: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ +#line 2097 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5622,22 +5030,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5626 "util/configparser.c" +#line 5034 "util/configparser.c" break; - case 454: -#line 2059 "./util/configparser.y" + case 463: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ +#line 2110 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5637 "util/configparser.c" +#line 5045 "util/configparser.c" break; - case 455: -#line 2067 "./util/configparser.y" + case 464: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2118 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5681,21 +5089,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5685 "util/configparser.c" +#line 5093 "util/configparser.c" break; - case 456: -#line 2112 "./util/configparser.y" + case 465: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2163 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5695 "util/configparser.c" +#line 5103 "util/configparser.c" break; - case 457: -#line 2119 "./util/configparser.y" + case 466: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2170 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5709,11 +5117,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5713 "util/configparser.c" +#line 5121 "util/configparser.c" break; - case 458: -#line 2134 "./util/configparser.y" + case 467: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ +#line 2185 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5722,11 +5130,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5726 "util/configparser.c" +#line 5134 "util/configparser.c" break; - case 459: -#line 2144 "./util/configparser.y" + case 468: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ +#line 2195 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5735,41 +5143,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5739 "util/configparser.c" +#line 5147 "util/configparser.c" break; - case 460: -#line 2154 "./util/configparser.y" + case 469: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ +#line 2205 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5749 "util/configparser.c" +#line 5157 "util/configparser.c" break; - case 461: -#line 2161 "./util/configparser.y" + case 470: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ +#line 2212 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5759 "util/configparser.c" +#line 5167 "util/configparser.c" break; - case 462: -#line 2168 "./util/configparser.y" + case 471: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ +#line 2219 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5769 "util/configparser.c" +#line 5177 "util/configparser.c" break; - case 463: -#line 2175 "./util/configparser.y" + case 472: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ +#line 2226 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5777,22 +5185,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5781 "util/configparser.c" +#line 5189 "util/configparser.c" break; - case 464: -#line 2184 "./util/configparser.y" + case 473: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ +#line 2235 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5792 "util/configparser.c" +#line 5200 "util/configparser.c" break; - case 465: -#line 2192 "./util/configparser.y" + case 474: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ +#line 2243 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5805,11 +5213,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5809 "util/configparser.c" +#line 5217 "util/configparser.c" break; - case 466: -#line 2206 "./util/configparser.y" + case 475: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ +#line 2257 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5829,11 +5237,11 @@ yyreduce: } } } -#line 5833 "util/configparser.c" +#line 5241 "util/configparser.c" break; - case 467: -#line 2227 "./util/configparser.y" + case 476: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ +#line 2278 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5853,11 +5261,11 @@ yyreduce: } } } -#line 5857 "util/configparser.c" +#line 5265 "util/configparser.c" break; - case 468: -#line 2248 "./util/configparser.y" + case 477: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ +#line 2299 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -5868,11 +5276,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5872 "util/configparser.c" +#line 5280 "util/configparser.c" break; - case 469: -#line 2260 "./util/configparser.y" + case 478: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ +#line 2311 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -5883,11 +5291,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5887 "util/configparser.c" +#line 5295 "util/configparser.c" break; - case 470: -#line 2272 "./util/configparser.y" + case 479: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ +#line 2323 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -5898,11 +5306,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5902 "util/configparser.c" +#line 5310 "util/configparser.c" break; - case 471: -#line 2284 "./util/configparser.y" + case 480: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ +#line 2335 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5910,11 +5318,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5914 "util/configparser.c" +#line 5322 "util/configparser.c" break; - case 472: -#line 2293 "./util/configparser.y" + case 481: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ +#line 2344 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5934,11 +5342,11 @@ yyreduce: } } } -#line 5938 "util/configparser.c" +#line 5346 "util/configparser.c" break; - case 473: -#line 2314 "./util/configparser.y" + case 482: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ +#line 2365 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5946,11 +5354,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5950 "util/configparser.c" +#line 5358 "util/configparser.c" break; - case 474: -#line 2324 "./util/configparser.y" + case 483: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ +#line 2375 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5958,33 +5366,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5962 "util/configparser.c" +#line 5370 "util/configparser.c" break; - case 475: -#line 2333 "./util/configparser.y" + case 484: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ +#line 2384 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5973 "util/configparser.c" +#line 5381 "util/configparser.c" break; - case 476: -#line 2341 "./util/configparser.y" + case 485: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ +#line 2392 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5984 "util/configparser.c" +#line 5392 "util/configparser.c" break; - case 477: -#line 2349 "./util/configparser.y" + case 486: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ +#line 2400 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5996,11 +5404,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6000 "util/configparser.c" +#line 5408 "util/configparser.c" break; - case 478: -#line 2362 "./util/configparser.y" + case 487: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ +#line 2413 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6012,11 +5420,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6016 "util/configparser.c" +#line 5424 "util/configparser.c" break; - case 479: -#line 2375 "./util/configparser.y" + case 488: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ +#line 2426 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6030,11 +5438,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 6034 "util/configparser.c" +#line 5442 "util/configparser.c" break; - case 480: -#line 2390 "./util/configparser.y" + case 489: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ +#line 2441 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6048,11 +5456,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 6052 "util/configparser.c" +#line 5460 "util/configparser.c" break; - case 481: -#line 2405 "./util/configparser.y" + case 490: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ +#line 2456 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6060,11 +5468,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6064 "util/configparser.c" +#line 5472 "util/configparser.c" break; - case 482: -#line 2414 "./util/configparser.y" + case 491: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ +#line 2465 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6072,20 +5480,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6076 "util/configparser.c" +#line 5484 "util/configparser.c" break; - case 483: -#line 2423 "./util/configparser.y" + case 492: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ +#line 2474 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 6085 "util/configparser.c" +#line 5493 "util/configparser.c" break; - case 484: -#line 2429 "./util/configparser.y" + case 493: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ +#line 2480 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -6093,11 +5501,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6097 "util/configparser.c" +#line 5505 "util/configparser.c" break; - case 485: -#line 2438 "./util/configparser.y" + case 494: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ +#line 2489 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6105,11 +5513,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6109 "util/configparser.c" +#line 5517 "util/configparser.c" break; - case 486: -#line 2447 "./util/configparser.y" + case 495: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ +#line 2498 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6118,11 +5526,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6122 "util/configparser.c" +#line 5530 "util/configparser.c" break; - case 487: -#line 2457 "./util/configparser.y" + case 496: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ +#line 2508 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6131,11 +5539,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6135 "util/configparser.c" +#line 5543 "util/configparser.c" break; - case 488: -#line 2467 "./util/configparser.y" + case 497: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ +#line 2518 "./util/configparser.y" { OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6144,11 +5552,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6148 "util/configparser.c" +#line 5556 "util/configparser.c" break; - case 489: -#line 2477 "./util/configparser.y" + case 498: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ +#line 2528 "./util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6156,11 +5564,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6160 "util/configparser.c" +#line 5568 "util/configparser.c" break; - case 490: -#line 2486 "./util/configparser.y" + case 499: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ +#line 2537 "./util/configparser.y" { OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6169,11 +5577,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6173 "util/configparser.c" +#line 5581 "util/configparser.c" break; - case 491: -#line 2496 "./util/configparser.y" + case 500: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ +#line 2547 "./util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6181,11 +5589,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6185 "util/configparser.c" +#line 5593 "util/configparser.c" break; - case 492: -#line 2505 "./util/configparser.y" + case 501: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ +#line 2556 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -6197,11 +5605,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6201 "util/configparser.c" +#line 5609 "util/configparser.c" break; - case 493: -#line 2518 "./util/configparser.y" + case 502: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ +#line 2569 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -6213,11 +5621,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6217 "util/configparser.c" +#line 5625 "util/configparser.c" break; - case 494: -#line 2531 "./util/configparser.y" + case 503: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ +#line 2582 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -6228,11 +5636,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6232 "util/configparser.c" +#line 5640 "util/configparser.c" break; - case 495: -#line 2543 "./util/configparser.y" + case 504: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ +#line 2594 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -6245,11 +5653,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6249 "util/configparser.c" +#line 5657 "util/configparser.c" break; - case 496: -#line 2557 "./util/configparser.y" + case 505: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ +#line 2608 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -6260,11 +5668,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6264 "util/configparser.c" +#line 5672 "util/configparser.c" break; - case 497: -#line 2569 "./util/configparser.y" + case 506: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ +#line 2620 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -6277,11 +5685,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6281 "util/configparser.c" +#line 5689 "util/configparser.c" break; - case 498: -#line 2583 "./util/configparser.y" + case 507: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ +#line 2634 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -6289,11 +5697,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 6293 "util/configparser.c" +#line 5701 "util/configparser.c" break; - case 499: -#line 2592 "./util/configparser.y" + case 508: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ +#line 2643 "./util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6304,11 +5712,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 6308 "util/configparser.c" +#line 5716 "util/configparser.c" break; - case 500: -#line 2604 "./util/configparser.y" + case 509: /* stub_name: VAR_NAME STRING_ARG */ +#line 2655 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -6317,31 +5725,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 6321 "util/configparser.c" +#line 5729 "util/configparser.c" break; - case 501: -#line 2614 "./util/configparser.y" + case 510: /* stub_host: VAR_STUB_HOST STRING_ARG */ +#line 2665 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6331 "util/configparser.c" +#line 5739 "util/configparser.c" break; - case 502: -#line 2621 "./util/configparser.y" + case 511: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ +#line 2672 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6341 "util/configparser.c" +#line 5749 "util/configparser.c" break; - case 503: -#line 2628 "./util/configparser.y" + case 512: /* stub_first: VAR_STUB_FIRST STRING_ARG */ +#line 2679 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6349,11 +5757,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6353 "util/configparser.c" +#line 5761 "util/configparser.c" break; - case 504: -#line 2637 "./util/configparser.y" + case 513: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ +#line 2688 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6361,11 +5769,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6365 "util/configparser.c" +#line 5773 "util/configparser.c" break; - case 505: -#line 2646 "./util/configparser.y" + case 514: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ +#line 2697 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6374,11 +5782,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6378 "util/configparser.c" +#line 5786 "util/configparser.c" break; - case 506: -#line 2656 "./util/configparser.y" + case 515: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ +#line 2707 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6387,11 +5795,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6391 "util/configparser.c" +#line 5799 "util/configparser.c" break; - case 507: -#line 2666 "./util/configparser.y" + case 516: /* forward_name: VAR_NAME STRING_ARG */ +#line 2717 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -6400,31 +5808,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 6404 "util/configparser.c" +#line 5812 "util/configparser.c" break; - case 508: -#line 2676 "./util/configparser.y" + case 517: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ +#line 2727 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6414 "util/configparser.c" +#line 5822 "util/configparser.c" break; - case 509: -#line 2683 "./util/configparser.y" + case 518: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ +#line 2734 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6424 "util/configparser.c" +#line 5832 "util/configparser.c" break; - case 510: -#line 2690 "./util/configparser.y" + case 519: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ +#line 2741 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6432,11 +5840,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6436 "util/configparser.c" +#line 5844 "util/configparser.c" break; - case 511: -#line 2699 "./util/configparser.y" + case 520: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ +#line 2750 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6444,11 +5852,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6448 "util/configparser.c" +#line 5856 "util/configparser.c" break; - case 512: -#line 2708 "./util/configparser.y" + case 521: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ +#line 2759 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6457,11 +5865,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6461 "util/configparser.c" +#line 5869 "util/configparser.c" break; - case 513: -#line 2718 "./util/configparser.y" + case 522: /* auth_name: VAR_NAME STRING_ARG */ +#line 2769 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -6470,52 +5878,65 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 6474 "util/configparser.c" +#line 5882 "util/configparser.c" break; - case 514: -#line 2728 "./util/configparser.y" + case 523: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ +#line 2779 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 6484 "util/configparser.c" +#line 5892 "util/configparser.c" break; - case 515: -#line 2735 "./util/configparser.y" + case 524: /* auth_master: VAR_MASTER STRING_ARG */ +#line 2786 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6494 "util/configparser.c" +#line 5902 "util/configparser.c" break; - case 516: -#line 2742 "./util/configparser.y" + case 525: /* auth_url: VAR_URL STRING_ARG */ +#line 2793 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6504 "util/configparser.c" +#line 5912 "util/configparser.c" break; - case 517: -#line 2749 "./util/configparser.y" + case 526: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ +#line 2800 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6515 "util/configparser.c" +#line 5923 "util/configparser.c" break; - case 518: -#line 2757 "./util/configparser.y" + case 527: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */ +#line 2808 "./util/configparser.y" + { + OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_check = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 5936 "util/configparser.c" + break; + + case 528: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ +#line 2818 "./util/configparser.y" { OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6524,11 +5945,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6528 "util/configparser.c" +#line 5949 "util/configparser.c" break; - case 519: -#line 2767 "./util/configparser.y" + case 529: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ +#line 2828 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6537,11 +5958,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6541 "util/configparser.c" +#line 5962 "util/configparser.c" break; - case 520: -#line 2777 "./util/configparser.y" + case 530: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ +#line 2838 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6550,11 +5971,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6554 "util/configparser.c" +#line 5975 "util/configparser.c" break; - case 521: -#line 2787 "./util/configparser.y" + case 531: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ +#line 2848 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6563,11 +5984,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6567 "util/configparser.c" +#line 5988 "util/configparser.c" break; - case 522: -#line 2797 "./util/configparser.y" + case 532: /* view_name: VAR_NAME STRING_ARG */ +#line 2858 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -6576,11 +5997,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 6580 "util/configparser.c" +#line 6001 "util/configparser.c" break; - case 523: -#line 2807 "./util/configparser.y" + case 533: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2868 "./util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -6590,13 +6011,20 @@ yyreduce: && strcmp((yyvsp[0].str), "always_transparent")!=0 && strcmp((yyvsp[0].str), "always_refuse")!=0 && strcmp((yyvsp[0].str), "always_nxdomain")!=0 + && strcmp((yyvsp[0].str), "always_nodata")!=0 + && strcmp((yyvsp[0].str), "always_deny")!=0 + && strcmp((yyvsp[0].str), "always_null")!=0 && strcmp((yyvsp[0].str), "noview")!=0 - && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0) { + && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 + && strcmp((yyvsp[0].str), "inform_redirect") != 0 + && strcmp((yyvsp[0].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); + "inform_redirect, always_transparent, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " + "noview, nodefault or ipset"); free((yyvsp[-1].str)); free((yyvsp[0].str)); } else if(strcmp((yyvsp[0].str), "nodefault")==0) { @@ -6618,11 +6046,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 6622 "util/configparser.c" +#line 6050 "util/configparser.c" break; - case 524: -#line 2846 "./util/configparser.y" + case 534: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 2914 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6631,33 +6059,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6635 "util/configparser.c" +#line 6063 "util/configparser.c" break; - case 525: -#line 2856 "./util/configparser.y" + case 535: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 2924 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6646 "util/configparser.c" +#line 6074 "util/configparser.c" break; - case 526: -#line 2864 "./util/configparser.y" + case 536: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2932 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 6657 "util/configparser.c" +#line 6085 "util/configparser.c" break; - case 527: -#line 2872 "./util/configparser.y" + case 537: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2940 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6671,11 +6099,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6675 "util/configparser.c" +#line 6103 "util/configparser.c" break; - case 528: -#line 2887 "./util/configparser.y" + case 538: /* view_first: VAR_VIEW_FIRST STRING_ARG */ +#line 2955 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6683,19 +6111,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6687 "util/configparser.c" +#line 6115 "util/configparser.c" break; - case 529: -#line 2896 "./util/configparser.y" + case 539: /* rcstart: VAR_REMOTE_CONTROL */ +#line 2964 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6695 "util/configparser.c" +#line 6123 "util/configparser.c" break; - case 540: -#line 2907 "./util/configparser.y" + case 550: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ +#line 2975 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6704,11 +6132,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6708 "util/configparser.c" +#line 6136 "util/configparser.c" break; - case 541: -#line 2917 "./util/configparser.y" + case 551: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ +#line 2985 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6716,79 +6144,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6720 "util/configparser.c" +#line 6148 "util/configparser.c" break; - case 542: -#line 2926 "./util/configparser.y" + case 552: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ +#line 2994 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6730 "util/configparser.c" +#line 6158 "util/configparser.c" break; - case 543: -#line 2933 "./util/configparser.y" + case 553: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ +#line 3001 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6740 "util/configparser.c" +#line 6168 "util/configparser.c" break; - case 544: -#line 2940 "./util/configparser.y" + case 554: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ +#line 3008 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 6750 "util/configparser.c" +#line 6178 "util/configparser.c" break; - case 545: -#line 2947 "./util/configparser.y" + case 555: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ +#line 3015 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 6760 "util/configparser.c" +#line 6188 "util/configparser.c" break; - case 546: -#line 2954 "./util/configparser.y" + case 556: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ +#line 3022 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 6770 "util/configparser.c" +#line 6198 "util/configparser.c" break; - case 547: -#line 2961 "./util/configparser.y" + case 557: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ +#line 3029 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 6780 "util/configparser.c" +#line 6208 "util/configparser.c" break; - case 548: -#line 2968 "./util/configparser.y" + case 558: /* dtstart: VAR_DNSTAP */ +#line 3036 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6788 "util/configparser.c" +#line 6216 "util/configparser.c" break; - case 570: -#line 2988 "./util/configparser.y" + case 580: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ +#line 3056 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6796,11 +6224,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6800 "util/configparser.c" +#line 6228 "util/configparser.c" break; - case 571: -#line 2997 "./util/configparser.y" + case 581: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ +#line 3065 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6809,31 +6237,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6813 "util/configparser.c" +#line 6241 "util/configparser.c" break; - case 572: -#line 3007 "./util/configparser.y" + case 582: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ +#line 3075 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 6823 "util/configparser.c" +#line 6251 "util/configparser.c" break; - case 573: -#line 3014 "./util/configparser.y" + case 583: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ +#line 3082 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6833 "util/configparser.c" +#line 6261 "util/configparser.c" break; - case 574: -#line 3021 "./util/configparser.y" + case 584: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ +#line 3089 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6841,51 +6269,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6845 "util/configparser.c" +#line 6273 "util/configparser.c" break; - case 575: -#line 3030 "./util/configparser.y" + case 585: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ +#line 3098 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6855 "util/configparser.c" +#line 6283 "util/configparser.c" break; - case 576: -#line 3037 "./util/configparser.y" + case 586: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ +#line 3105 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6865 "util/configparser.c" +#line 6293 "util/configparser.c" break; - case 577: -#line 3044 "./util/configparser.y" + case 587: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ +#line 3112 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6875 "util/configparser.c" +#line 6303 "util/configparser.c" break; - case 578: -#line 3051 "./util/configparser.y" + case 588: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ +#line 3119 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6885 "util/configparser.c" +#line 6313 "util/configparser.c" break; - case 579: -#line 3058 "./util/configparser.y" + case 589: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ +#line 3126 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6893,11 +6321,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6897 "util/configparser.c" +#line 6325 "util/configparser.c" break; - case 580: -#line 3067 "./util/configparser.y" + case 590: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ +#line 3135 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6905,31 +6333,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6909 "util/configparser.c" +#line 6337 "util/configparser.c" break; - case 581: -#line 3076 "./util/configparser.y" + case 591: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ +#line 3144 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 6919 "util/configparser.c" +#line 6347 "util/configparser.c" break; - case 582: -#line 3083 "./util/configparser.y" + case 592: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ +#line 3151 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 6929 "util/configparser.c" +#line 6357 "util/configparser.c" break; - case 583: -#line 3090 "./util/configparser.y" + case 593: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ +#line 3158 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6938,11 +6366,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6942 "util/configparser.c" +#line 6370 "util/configparser.c" break; - case 584: -#line 3100 "./util/configparser.y" + case 594: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ +#line 3168 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6951,11 +6379,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6955 "util/configparser.c" +#line 6383 "util/configparser.c" break; - case 585: -#line 3110 "./util/configparser.y" + case 595: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ +#line 3178 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6964,11 +6392,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6968 "util/configparser.c" +#line 6396 "util/configparser.c" break; - case 586: -#line 3120 "./util/configparser.y" + case 596: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ +#line 3188 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6977,11 +6405,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6981 "util/configparser.c" +#line 6409 "util/configparser.c" break; - case 587: -#line 3130 "./util/configparser.y" + case 597: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ +#line 3198 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6990,11 +6418,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6994 "util/configparser.c" +#line 6422 "util/configparser.c" break; - case 588: -#line 3140 "./util/configparser.y" + case 598: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ +#line 3208 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7003,47 +6431,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7007 "util/configparser.c" +#line 6435 "util/configparser.c" break; - case 589: -#line 3150 "./util/configparser.y" + case 599: /* pythonstart: VAR_PYTHON */ +#line 3218 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 7015 "util/configparser.c" +#line 6443 "util/configparser.c" break; - case 593: -#line 3159 "./util/configparser.y" + case 603: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ +#line 3227 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7025 "util/configparser.c" +#line 6453 "util/configparser.c" break; - case 594: -#line 3165 "./util/configparser.y" + case 604: /* dynlibstart: VAR_DYNLIB */ +#line 3233 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 7033 "util/configparser.c" +#line 6461 "util/configparser.c" break; - case 598: -#line 3174 "./util/configparser.y" + case 608: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ +#line 3242 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7043 "util/configparser.c" +#line 6471 "util/configparser.c" break; - case 599: -#line 3180 "./util/configparser.y" + case 609: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ +#line 3248 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7052,21 +6480,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7056 "util/configparser.c" +#line 6484 "util/configparser.c" break; - case 600: -#line 3190 "./util/configparser.y" + case 610: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ +#line 3258 "./util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 7066 "util/configparser.c" +#line 6494 "util/configparser.c" break; - case 601: -#line 3197 "./util/configparser.y" + case 611: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 3265 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -7074,30 +6502,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 7078 "util/configparser.c" +#line 6506 "util/configparser.c" break; - case 602: -#line 3206 "./util/configparser.y" + case 612: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 3274 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 7089 "util/configparser.c" +#line 6517 "util/configparser.c" break; - case 603: -#line 3214 "./util/configparser.y" + case 613: /* dnscstart: VAR_DNSCRYPT */ +#line 3282 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 7097 "util/configparser.c" +#line 6525 "util/configparser.c" break; - case 616: -#line 3230 "./util/configparser.y" + case 626: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ +#line 3298 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7105,11 +6533,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7109 "util/configparser.c" +#line 6537 "util/configparser.c" break; - case 617: -#line 3240 "./util/configparser.y" + case 627: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ +#line 3308 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7117,21 +6545,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 7121 "util/configparser.c" +#line 6549 "util/configparser.c" break; - case 618: -#line 3249 "./util/configparser.y" + case 628: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ +#line 3317 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 7131 "util/configparser.c" +#line 6559 "util/configparser.c" break; - case 619: -#line 3256 "./util/configparser.y" + case 629: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ +#line 3324 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -7139,21 +6567,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 7143 "util/configparser.c" +#line 6571 "util/configparser.c" break; - case 620: -#line 3265 "./util/configparser.y" + case 630: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ +#line 3333 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 7153 "util/configparser.c" +#line 6581 "util/configparser.c" break; - case 621: -#line 3272 "./util/configparser.y" + case 631: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ +#line 3340 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -7161,22 +6589,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 7165 "util/configparser.c" +#line 6593 "util/configparser.c" break; - case 622: -#line 3281 "./util/configparser.y" + case 632: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ +#line 3349 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7176 "util/configparser.c" +#line 6604 "util/configparser.c" break; - case 623: -#line 3289 "./util/configparser.y" + case 633: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ +#line 3357 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7188,22 +6616,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7192 "util/configparser.c" +#line 6620 "util/configparser.c" break; - case 624: -#line 3302 "./util/configparser.y" + case 634: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ +#line 3370 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7203 "util/configparser.c" +#line 6631 "util/configparser.c" break; - case 625: -#line 3310 "./util/configparser.y" + case 635: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ +#line 3378 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7215,19 +6643,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7219 "util/configparser.c" +#line 6647 "util/configparser.c" break; - case 626: -#line 3323 "./util/configparser.y" + case 636: /* cachedbstart: VAR_CACHEDB */ +#line 3391 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 7227 "util/configparser.c" +#line 6655 "util/configparser.c" break; - case 635: -#line 3334 "./util/configparser.y" + case 645: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ +#line 3402 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -7238,11 +6666,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7242 "util/configparser.c" +#line 6670 "util/configparser.c" break; - case 636: -#line 3346 "./util/configparser.y" + case 646: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ +#line 3414 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -7253,11 +6681,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7257 "util/configparser.c" +#line 6685 "util/configparser.c" break; - case 637: -#line 3358 "./util/configparser.y" + case 647: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ +#line 3426 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -7268,11 +6696,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7272 "util/configparser.c" +#line 6700 "util/configparser.c" break; - case 638: -#line 3370 "./util/configparser.y" + case 648: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ +#line 3438 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -7286,11 +6714,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7290 "util/configparser.c" +#line 6718 "util/configparser.c" break; - case 639: -#line 3385 "./util/configparser.y" + case 649: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ +#line 3453 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -7302,11 +6730,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7306 "util/configparser.c" +#line 6734 "util/configparser.c" break; - case 640: -#line 3398 "./util/configparser.y" + case 650: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ +#line 3466 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -7318,11 +6746,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7322 "util/configparser.c" +#line 6750 "util/configparser.c" break; - case 641: -#line 3411 "./util/configparser.y" + case 651: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ +#line 3479 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -7332,19 +6760,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 7336 "util/configparser.c" +#line 6764 "util/configparser.c" break; - case 642: -#line 3422 "./util/configparser.y" + case 652: /* ipsetstart: VAR_IPSET */ +#line 3490 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 7344 "util/configparser.c" +#line 6772 "util/configparser.c" break; - case 647: -#line 3431 "./util/configparser.y" + case 657: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ +#line 3499 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -7358,11 +6786,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7362 "util/configparser.c" +#line 6790 "util/configparser.c" break; - case 648: -#line 3446 "./util/configparser.y" + case 658: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ +#line 3514 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -7376,11 +6804,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7380 "util/configparser.c" +#line 6808 "util/configparser.c" break; -#line 7384 "util/configparser.c" +#line 6812 "util/configparser.c" default: break; } @@ -7540,13 +6968,13 @@ yyabortlab: yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -7574,7 +7002,7 @@ yyreturn: return yyresult; } -#line 3460 "./util/configparser.y" +#line 3528 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index fcbb51ec4..81766639a 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.4. */ /* Bison interface for Yacc-like parsers in C @@ -156,216 +156,222 @@ extern int yydebug; VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 367, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 379, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */ - VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 392, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 417, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 442, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 447, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 476, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 493, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 516, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 526, /* VAR_ZONEFILE */ - VAR_MASTER = 527, /* VAR_MASTER */ - VAR_URL = 528, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 532, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 542, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 549, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 553, /* VAR_RPZ */ - VAR_TAGS = 554, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 559, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 563, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 564, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 565 /* VAR_ZONEMD_REJECT_ABSENCE */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_VAL_MAX_RESTART = 373, /* VAR_VAL_MAX_RESTART */ + VAR_CACHE_MIN_TTL = 374, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 375, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 377, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 378, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 379, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 380, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 381, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 382, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 383, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 384, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 385, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 387, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 388, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 389, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 390, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 391, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 392, /* VAR_SSL_UPSTREAM */ + VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + VAR_SSL_SERVICE_KEY = 394, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 395, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 396, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 397, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 398, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 400, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 401, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 402, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 403, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 404, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 405, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 406, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 407, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 408, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 409, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 410, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 411, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 412, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 413, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 414, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 415, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 416, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 417, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 418, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 419, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 420, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 421, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 422, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 423, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 424, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 425, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 426, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 427, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 428, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 429, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 430, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 431, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 432, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 433, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 434, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 441, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 442, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 443, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 444, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 445, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 446, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 447, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 448, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 449, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 450, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 451, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 452, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 453, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 454, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 455, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 456, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 457, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 458, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 459, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 460, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 461, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 462, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 463, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 464, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 465, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 466, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 467, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 468, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 469, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 470, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 471, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 472, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 473, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 474, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 475, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 476, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 477, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 478, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 479, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 480, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 481, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 482, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 483, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 484, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 485, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 486, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 487, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 488, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 489, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 490, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 491, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 492, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 493, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 494, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 495, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 496, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 497, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 498, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 499, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 500, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 501, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 502, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 503, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 504, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 505, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 506, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 507, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 508, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 509, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 510, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 511, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 512, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 513, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 514, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 515, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 516, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 517, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 518, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 519, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 520, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 521, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 522, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 523, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 524, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 525, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 526, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 527, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 528, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 529, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 530, /* VAR_ZONEFILE */ + VAR_MASTER = 531, /* VAR_MASTER */ + VAR_URL = 532, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 533, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 534, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 535, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 536, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 537, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 538, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 539, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 540, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 541, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 542, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 543, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 544, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 545, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 546, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 547, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 548, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 549, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 550, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 551, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 552, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 553, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 554, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 555, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 556, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 557, /* VAR_RPZ */ + VAR_TAGS = 558, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 559, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 560, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 561, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 562, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 563, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 564, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 565, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 566, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 567, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 568, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_CHECK = 569, /* VAR_ZONEMD_CHECK */ + VAR_ZONEMD_REJECT_ABSENCE = 570 /* VAR_ZONEMD_REJECT_ABSENCE */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ +#define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 @@ -471,212 +477,217 @@ extern int yydebug; #define VAR_CONTROL_KEY_FILE 357 #define VAR_CONTROL_CERT_FILE 358 #define VAR_CONTROL_USE_CERT 359 -#define VAR_EXTENDED_STATISTICS 360 -#define VAR_LOCAL_DATA_PTR 361 -#define VAR_JOSTLE_TIMEOUT 362 -#define VAR_STUB_PRIME 363 -#define VAR_UNWANTED_REPLY_THRESHOLD 364 -#define VAR_LOG_TIME_ASCII 365 -#define VAR_DOMAIN_INSECURE 366 -#define VAR_PYTHON 367 -#define VAR_PYTHON_SCRIPT 368 -#define VAR_VAL_SIG_SKEW_MIN 369 -#define VAR_VAL_SIG_SKEW_MAX 370 -#define VAR_CACHE_MIN_TTL 371 -#define VAR_VAL_LOG_LEVEL 372 -#define VAR_AUTO_TRUST_ANCHOR_FILE 373 -#define VAR_KEEP_MISSING 374 -#define VAR_ADD_HOLDDOWN 375 -#define VAR_DEL_HOLDDOWN 376 -#define VAR_SO_RCVBUF 377 -#define VAR_EDNS_BUFFER_SIZE 378 -#define VAR_PREFETCH 379 -#define VAR_PREFETCH_KEY 380 -#define VAR_SO_SNDBUF 381 -#define VAR_SO_REUSEPORT 382 -#define VAR_HARDEN_BELOW_NXDOMAIN 383 -#define VAR_IGNORE_CD_FLAG 384 -#define VAR_LOG_QUERIES 385 -#define VAR_LOG_REPLIES 386 -#define VAR_LOG_LOCAL_ACTIONS 387 -#define VAR_TCP_UPSTREAM 388 -#define VAR_SSL_UPSTREAM 389 -#define VAR_SSL_SERVICE_KEY 390 -#define VAR_SSL_SERVICE_PEM 391 -#define VAR_SSL_PORT 392 -#define VAR_FORWARD_FIRST 393 -#define VAR_STUB_SSL_UPSTREAM 394 -#define VAR_FORWARD_SSL_UPSTREAM 395 -#define VAR_TLS_CERT_BUNDLE 396 -#define VAR_HTTPS_PORT 397 -#define VAR_HTTP_ENDPOINT 398 -#define VAR_HTTP_MAX_STREAMS 399 -#define VAR_HTTP_QUERY_BUFFER_SIZE 400 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 401 -#define VAR_HTTP_NODELAY 402 -#define VAR_HTTP_NOTLS_DOWNSTREAM 403 -#define VAR_STUB_FIRST 404 -#define VAR_MINIMAL_RESPONSES 405 -#define VAR_RRSET_ROUNDROBIN 406 -#define VAR_MAX_UDP_SIZE 407 -#define VAR_DELAY_CLOSE 408 -#define VAR_UDP_CONNECT 409 -#define VAR_UNBLOCK_LAN_ZONES 410 -#define VAR_INSECURE_LAN_ZONES 411 -#define VAR_INFRA_CACHE_MIN_RTT 412 -#define VAR_INFRA_KEEP_PROBING 413 -#define VAR_DNS64_PREFIX 414 -#define VAR_DNS64_SYNTHALL 415 -#define VAR_DNS64_IGNORE_AAAA 416 -#define VAR_DNSTAP 417 -#define VAR_DNSTAP_ENABLE 418 -#define VAR_DNSTAP_SOCKET_PATH 419 -#define VAR_DNSTAP_IP 420 -#define VAR_DNSTAP_TLS 421 -#define VAR_DNSTAP_TLS_SERVER_NAME 422 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 423 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 424 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 425 -#define VAR_DNSTAP_SEND_IDENTITY 426 -#define VAR_DNSTAP_SEND_VERSION 427 -#define VAR_DNSTAP_BIDIRECTIONAL 428 -#define VAR_DNSTAP_IDENTITY 429 -#define VAR_DNSTAP_VERSION 430 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 431 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 432 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 433 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 434 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 435 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 436 -#define VAR_RESPONSE_IP_TAG 437 -#define VAR_RESPONSE_IP 438 -#define VAR_RESPONSE_IP_DATA 439 -#define VAR_HARDEN_ALGO_DOWNGRADE 440 -#define VAR_IP_TRANSPARENT 441 -#define VAR_IP_DSCP 442 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 443 -#define VAR_IP_RATELIMIT 444 -#define VAR_IP_RATELIMIT_SLABS 445 -#define VAR_IP_RATELIMIT_SIZE 446 -#define VAR_RATELIMIT 447 -#define VAR_RATELIMIT_SLABS 448 -#define VAR_RATELIMIT_SIZE 449 -#define VAR_RATELIMIT_FOR_DOMAIN 450 -#define VAR_RATELIMIT_BELOW_DOMAIN 451 -#define VAR_IP_RATELIMIT_FACTOR 452 -#define VAR_RATELIMIT_FACTOR 453 -#define VAR_SEND_CLIENT_SUBNET 454 -#define VAR_CLIENT_SUBNET_ZONE 455 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 456 -#define VAR_CLIENT_SUBNET_OPCODE 457 -#define VAR_MAX_CLIENT_SUBNET_IPV4 458 -#define VAR_MAX_CLIENT_SUBNET_IPV6 459 -#define VAR_MIN_CLIENT_SUBNET_IPV4 460 -#define VAR_MIN_CLIENT_SUBNET_IPV6 461 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 462 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 463 -#define VAR_CAPS_WHITELIST 464 -#define VAR_CACHE_MAX_NEGATIVE_TTL 465 -#define VAR_PERMIT_SMALL_HOLDDOWN 466 -#define VAR_QNAME_MINIMISATION 467 -#define VAR_QNAME_MINIMISATION_STRICT 468 -#define VAR_IP_FREEBIND 469 -#define VAR_DEFINE_TAG 470 -#define VAR_LOCAL_ZONE_TAG 471 -#define VAR_ACCESS_CONTROL_TAG 472 -#define VAR_LOCAL_ZONE_OVERRIDE 473 -#define VAR_ACCESS_CONTROL_TAG_ACTION 474 -#define VAR_ACCESS_CONTROL_TAG_DATA 475 -#define VAR_VIEW 476 -#define VAR_ACCESS_CONTROL_VIEW 477 -#define VAR_VIEW_FIRST 478 -#define VAR_SERVE_EXPIRED 479 -#define VAR_SERVE_EXPIRED_TTL 480 -#define VAR_SERVE_EXPIRED_TTL_RESET 481 -#define VAR_SERVE_EXPIRED_REPLY_TTL 482 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 -#define VAR_SERVE_ORIGINAL_TTL 484 -#define VAR_FAKE_DSA 485 -#define VAR_FAKE_SHA1 486 -#define VAR_LOG_IDENTITY 487 -#define VAR_HIDE_TRUSTANCHOR 488 -#define VAR_TRUST_ANCHOR_SIGNALING 489 -#define VAR_AGGRESSIVE_NSEC 490 -#define VAR_USE_SYSTEMD 491 -#define VAR_SHM_ENABLE 492 -#define VAR_SHM_KEY 493 -#define VAR_ROOT_KEY_SENTINEL 494 -#define VAR_DNSCRYPT 495 -#define VAR_DNSCRYPT_ENABLE 496 -#define VAR_DNSCRYPT_PORT 497 -#define VAR_DNSCRYPT_PROVIDER 498 -#define VAR_DNSCRYPT_SECRET_KEY 499 -#define VAR_DNSCRYPT_PROVIDER_CERT 500 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505 -#define VAR_PAD_RESPONSES 506 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 507 -#define VAR_PAD_QUERIES 508 -#define VAR_PAD_QUERIES_BLOCK_SIZE 509 -#define VAR_IPSECMOD_ENABLED 510 -#define VAR_IPSECMOD_HOOK 511 -#define VAR_IPSECMOD_IGNORE_BOGUS 512 -#define VAR_IPSECMOD_MAX_TTL 513 -#define VAR_IPSECMOD_WHITELIST 514 -#define VAR_IPSECMOD_STRICT 515 -#define VAR_CACHEDB 516 -#define VAR_CACHEDB_BACKEND 517 -#define VAR_CACHEDB_SECRETSEED 518 -#define VAR_CACHEDB_REDISHOST 519 -#define VAR_CACHEDB_REDISPORT 520 -#define VAR_CACHEDB_REDISTIMEOUT 521 -#define VAR_CACHEDB_REDISEXPIRERECORDS 522 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523 -#define VAR_FOR_UPSTREAM 524 -#define VAR_AUTH_ZONE 525 -#define VAR_ZONEFILE 526 -#define VAR_MASTER 527 -#define VAR_URL 528 -#define VAR_FOR_DOWNSTREAM 529 -#define VAR_FALLBACK_ENABLED 530 -#define VAR_TLS_ADDITIONAL_PORT 531 -#define VAR_LOW_RTT 532 -#define VAR_LOW_RTT_PERMIL 533 -#define VAR_FAST_SERVER_PERMIL 534 -#define VAR_FAST_SERVER_NUM 535 -#define VAR_ALLOW_NOTIFY 536 -#define VAR_TLS_WIN_CERT 537 -#define VAR_TCP_CONNECTION_LIMIT 538 -#define VAR_FORWARD_NO_CACHE 539 -#define VAR_STUB_NO_CACHE 540 -#define VAR_LOG_SERVFAIL 541 -#define VAR_DENY_ANY 542 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 543 -#define VAR_LOG_TAG_QUERYREPLY 544 -#define VAR_STREAM_WAIT_SIZE 545 -#define VAR_TLS_CIPHERS 546 -#define VAR_TLS_CIPHERSUITES 547 -#define VAR_TLS_USE_SNI 548 -#define VAR_IPSET 549 -#define VAR_IPSET_NAME_V4 550 -#define VAR_IPSET_NAME_V6 551 -#define VAR_TLS_SESSION_TICKET_KEYS 552 -#define VAR_RPZ 553 -#define VAR_TAGS 554 -#define VAR_RPZ_ACTION_OVERRIDE 555 -#define VAR_RPZ_CNAME_OVERRIDE 556 -#define VAR_RPZ_LOG 557 -#define VAR_RPZ_LOG_NAME 558 -#define VAR_DYNLIB 559 -#define VAR_DYNLIB_FILE 560 -#define VAR_EDNS_CLIENT_STRING 561 -#define VAR_EDNS_CLIENT_STRING_OPCODE 562 -#define VAR_NSID 563 -#define VAR_ZONEMD_PERMISSIVE_MODE 564 -#define VAR_ZONEMD_REJECT_ABSENCE 565 +#define VAR_TCP_REUSE_TIMEOUT 360 +#define VAR_MAX_REUSE_TCP_QUERIES 361 +#define VAR_EXTENDED_STATISTICS 362 +#define VAR_LOCAL_DATA_PTR 363 +#define VAR_JOSTLE_TIMEOUT 364 +#define VAR_STUB_PRIME 365 +#define VAR_UNWANTED_REPLY_THRESHOLD 366 +#define VAR_LOG_TIME_ASCII 367 +#define VAR_DOMAIN_INSECURE 368 +#define VAR_PYTHON 369 +#define VAR_PYTHON_SCRIPT 370 +#define VAR_VAL_SIG_SKEW_MIN 371 +#define VAR_VAL_SIG_SKEW_MAX 372 +#define VAR_VAL_MAX_RESTART 373 +#define VAR_CACHE_MIN_TTL 374 +#define VAR_VAL_LOG_LEVEL 375 +#define VAR_AUTO_TRUST_ANCHOR_FILE 376 +#define VAR_KEEP_MISSING 377 +#define VAR_ADD_HOLDDOWN 378 +#define VAR_DEL_HOLDDOWN 379 +#define VAR_SO_RCVBUF 380 +#define VAR_EDNS_BUFFER_SIZE 381 +#define VAR_PREFETCH 382 +#define VAR_PREFETCH_KEY 383 +#define VAR_SO_SNDBUF 384 +#define VAR_SO_REUSEPORT 385 +#define VAR_HARDEN_BELOW_NXDOMAIN 386 +#define VAR_IGNORE_CD_FLAG 387 +#define VAR_LOG_QUERIES 388 +#define VAR_LOG_REPLIES 389 +#define VAR_LOG_LOCAL_ACTIONS 390 +#define VAR_TCP_UPSTREAM 391 +#define VAR_SSL_UPSTREAM 392 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 393 +#define VAR_SSL_SERVICE_KEY 394 +#define VAR_SSL_SERVICE_PEM 395 +#define VAR_SSL_PORT 396 +#define VAR_FORWARD_FIRST 397 +#define VAR_STUB_SSL_UPSTREAM 398 +#define VAR_FORWARD_SSL_UPSTREAM 399 +#define VAR_TLS_CERT_BUNDLE 400 +#define VAR_HTTPS_PORT 401 +#define VAR_HTTP_ENDPOINT 402 +#define VAR_HTTP_MAX_STREAMS 403 +#define VAR_HTTP_QUERY_BUFFER_SIZE 404 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 405 +#define VAR_HTTP_NODELAY 406 +#define VAR_HTTP_NOTLS_DOWNSTREAM 407 +#define VAR_STUB_FIRST 408 +#define VAR_MINIMAL_RESPONSES 409 +#define VAR_RRSET_ROUNDROBIN 410 +#define VAR_MAX_UDP_SIZE 411 +#define VAR_DELAY_CLOSE 412 +#define VAR_UDP_CONNECT 413 +#define VAR_UNBLOCK_LAN_ZONES 414 +#define VAR_INSECURE_LAN_ZONES 415 +#define VAR_INFRA_CACHE_MIN_RTT 416 +#define VAR_INFRA_KEEP_PROBING 417 +#define VAR_DNS64_PREFIX 418 +#define VAR_DNS64_SYNTHALL 419 +#define VAR_DNS64_IGNORE_AAAA 420 +#define VAR_DNSTAP 421 +#define VAR_DNSTAP_ENABLE 422 +#define VAR_DNSTAP_SOCKET_PATH 423 +#define VAR_DNSTAP_IP 424 +#define VAR_DNSTAP_TLS 425 +#define VAR_DNSTAP_TLS_SERVER_NAME 426 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 427 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 428 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 429 +#define VAR_DNSTAP_SEND_IDENTITY 430 +#define VAR_DNSTAP_SEND_VERSION 431 +#define VAR_DNSTAP_BIDIRECTIONAL 432 +#define VAR_DNSTAP_IDENTITY 433 +#define VAR_DNSTAP_VERSION 434 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 435 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 436 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 438 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 439 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 440 +#define VAR_RESPONSE_IP_TAG 441 +#define VAR_RESPONSE_IP 442 +#define VAR_RESPONSE_IP_DATA 443 +#define VAR_HARDEN_ALGO_DOWNGRADE 444 +#define VAR_IP_TRANSPARENT 445 +#define VAR_IP_DSCP 446 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 447 +#define VAR_IP_RATELIMIT 448 +#define VAR_IP_RATELIMIT_SLABS 449 +#define VAR_IP_RATELIMIT_SIZE 450 +#define VAR_RATELIMIT 451 +#define VAR_RATELIMIT_SLABS 452 +#define VAR_RATELIMIT_SIZE 453 +#define VAR_RATELIMIT_FOR_DOMAIN 454 +#define VAR_RATELIMIT_BELOW_DOMAIN 455 +#define VAR_IP_RATELIMIT_FACTOR 456 +#define VAR_RATELIMIT_FACTOR 457 +#define VAR_SEND_CLIENT_SUBNET 458 +#define VAR_CLIENT_SUBNET_ZONE 459 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 460 +#define VAR_CLIENT_SUBNET_OPCODE 461 +#define VAR_MAX_CLIENT_SUBNET_IPV4 462 +#define VAR_MAX_CLIENT_SUBNET_IPV6 463 +#define VAR_MIN_CLIENT_SUBNET_IPV4 464 +#define VAR_MIN_CLIENT_SUBNET_IPV6 465 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 466 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 467 +#define VAR_CAPS_WHITELIST 468 +#define VAR_CACHE_MAX_NEGATIVE_TTL 469 +#define VAR_PERMIT_SMALL_HOLDDOWN 470 +#define VAR_QNAME_MINIMISATION 471 +#define VAR_QNAME_MINIMISATION_STRICT 472 +#define VAR_IP_FREEBIND 473 +#define VAR_DEFINE_TAG 474 +#define VAR_LOCAL_ZONE_TAG 475 +#define VAR_ACCESS_CONTROL_TAG 476 +#define VAR_LOCAL_ZONE_OVERRIDE 477 +#define VAR_ACCESS_CONTROL_TAG_ACTION 478 +#define VAR_ACCESS_CONTROL_TAG_DATA 479 +#define VAR_VIEW 480 +#define VAR_ACCESS_CONTROL_VIEW 481 +#define VAR_VIEW_FIRST 482 +#define VAR_SERVE_EXPIRED 483 +#define VAR_SERVE_EXPIRED_TTL 484 +#define VAR_SERVE_EXPIRED_TTL_RESET 485 +#define VAR_SERVE_EXPIRED_REPLY_TTL 486 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 487 +#define VAR_SERVE_ORIGINAL_TTL 488 +#define VAR_FAKE_DSA 489 +#define VAR_FAKE_SHA1 490 +#define VAR_LOG_IDENTITY 491 +#define VAR_HIDE_TRUSTANCHOR 492 +#define VAR_TRUST_ANCHOR_SIGNALING 493 +#define VAR_AGGRESSIVE_NSEC 494 +#define VAR_USE_SYSTEMD 495 +#define VAR_SHM_ENABLE 496 +#define VAR_SHM_KEY 497 +#define VAR_ROOT_KEY_SENTINEL 498 +#define VAR_DNSCRYPT 499 +#define VAR_DNSCRYPT_ENABLE 500 +#define VAR_DNSCRYPT_PORT 501 +#define VAR_DNSCRYPT_PROVIDER 502 +#define VAR_DNSCRYPT_SECRET_KEY 503 +#define VAR_DNSCRYPT_PROVIDER_CERT 504 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 505 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 506 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 507 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 508 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 509 +#define VAR_PAD_RESPONSES 510 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 511 +#define VAR_PAD_QUERIES 512 +#define VAR_PAD_QUERIES_BLOCK_SIZE 513 +#define VAR_IPSECMOD_ENABLED 514 +#define VAR_IPSECMOD_HOOK 515 +#define VAR_IPSECMOD_IGNORE_BOGUS 516 +#define VAR_IPSECMOD_MAX_TTL 517 +#define VAR_IPSECMOD_WHITELIST 518 +#define VAR_IPSECMOD_STRICT 519 +#define VAR_CACHEDB 520 +#define VAR_CACHEDB_BACKEND 521 +#define VAR_CACHEDB_SECRETSEED 522 +#define VAR_CACHEDB_REDISHOST 523 +#define VAR_CACHEDB_REDISPORT 524 +#define VAR_CACHEDB_REDISTIMEOUT 525 +#define VAR_CACHEDB_REDISEXPIRERECORDS 526 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 527 +#define VAR_FOR_UPSTREAM 528 +#define VAR_AUTH_ZONE 529 +#define VAR_ZONEFILE 530 +#define VAR_MASTER 531 +#define VAR_URL 532 +#define VAR_FOR_DOWNSTREAM 533 +#define VAR_FALLBACK_ENABLED 534 +#define VAR_TLS_ADDITIONAL_PORT 535 +#define VAR_LOW_RTT 536 +#define VAR_LOW_RTT_PERMIL 537 +#define VAR_FAST_SERVER_PERMIL 538 +#define VAR_FAST_SERVER_NUM 539 +#define VAR_ALLOW_NOTIFY 540 +#define VAR_TLS_WIN_CERT 541 +#define VAR_TCP_CONNECTION_LIMIT 542 +#define VAR_FORWARD_NO_CACHE 543 +#define VAR_STUB_NO_CACHE 544 +#define VAR_LOG_SERVFAIL 545 +#define VAR_DENY_ANY 546 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 547 +#define VAR_LOG_TAG_QUERYREPLY 548 +#define VAR_STREAM_WAIT_SIZE 549 +#define VAR_TLS_CIPHERS 550 +#define VAR_TLS_CIPHERSUITES 551 +#define VAR_TLS_USE_SNI 552 +#define VAR_IPSET 553 +#define VAR_IPSET_NAME_V4 554 +#define VAR_IPSET_NAME_V6 555 +#define VAR_TLS_SESSION_TICKET_KEYS 556 +#define VAR_RPZ 557 +#define VAR_TAGS 558 +#define VAR_RPZ_ACTION_OVERRIDE 559 +#define VAR_RPZ_CNAME_OVERRIDE 560 +#define VAR_RPZ_LOG 561 +#define VAR_RPZ_LOG_NAME 562 +#define VAR_DYNLIB 563 +#define VAR_DYNLIB_FILE 564 +#define VAR_EDNS_CLIENT_STRING 565 +#define VAR_EDNS_CLIENT_STRING_OPCODE 566 +#define VAR_NSID 567 +#define VAR_ZONEMD_PERMISSIVE_MODE 568 +#define VAR_ZONEMD_CHECK 569 +#define VAR_ZONEMD_REJECT_ABSENCE 570 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -686,7 +697,7 @@ union YYSTYPE char* str; -#line 690 "util/configparser.h" +#line 701 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 10f5ac1c4..790e45de4 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -100,17 +100,18 @@ extern struct config_parser_state* cfg_parser; %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE %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_CONTROL_USE_CERT +%token VAR_CONTROL_USE_CERT VAR_TCP_REUSE_TIMEOUT VAR_MAX_REUSE_TCP_QUERIES %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT %token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII %token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN -%token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL -%token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN -%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH -%token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN -%token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS -%token VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM -%token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST +%token VAR_VAL_SIG_SKEW_MAX VAR_VAL_MAX_RESTART VAR_CACHE_MIN_TTL +%token VAR_VAL_LOG_LEVEL VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING +%token VAR_ADD_HOLDDOWN VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE +%token VAR_PREFETCH VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT +%token VAR_HARDEN_BELOW_NXDOMAIN VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES +%token VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS VAR_TCP_UPSTREAM +%token VAR_SSL_UPSTREAM VAR_TCP_AUTH_QUERY_TIMEOUT VAR_SSL_SERVICE_KEY +%token VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST %token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM VAR_TLS_CERT_BUNDLE %token VAR_HTTPS_PORT VAR_HTTP_ENDPOINT VAR_HTTP_MAX_STREAMS %token VAR_HTTP_QUERY_BUFFER_SIZE VAR_HTTP_RESPONSE_BUFFER_SIZE @@ -182,7 +183,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_RPZ_CNAME_OVERRIDE VAR_RPZ_LOG VAR_RPZ_LOG_NAME %token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_STRING %token VAR_EDNS_CLIENT_STRING_OPCODE VAR_NSID -%token VAR_ZONEMD_PERMISSIVE_MODE VAR_ZONEMD_REJECT_ABSENCE +%token VAR_ZONEMD_PERMISSIVE_MODE VAR_ZONEMD_CHECK VAR_ZONEMD_REJECT_ABSENCE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -243,8 +244,9 @@ content_server: server_num_threads | server_verbosity | server_port | server_local_data_ptr | server_jostle_timeout | server_unwanted_reply_threshold | server_log_time_ascii | server_domain_insecure | server_val_sig_skew_min | - server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | - server_auto_trust_anchor_file | server_add_holddown | + server_val_sig_skew_max | server_val_max_restart | + server_cache_min_ttl | server_val_log_level | + server_auto_trust_anchor_file | server_add_holddown | server_del_holddown | server_keep_missing | server_so_rcvbuf | server_edns_buffer_size | server_prefetch | server_prefetch_key | server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag | @@ -301,7 +303,9 @@ content_server: server_num_threads | server_verbosity | server_port | server_tls_ciphersuites | server_tls_session_ticket_keys | server_tls_use_sni | server_edns_client_string | server_edns_client_string_opcode | server_nsid | - server_zonemd_permissive_mode + server_zonemd_permissive_mode | server_max_reuse_tcp_queries | + server_tcp_reuse_timeout | server_tcp_auth_query_timeout + ; stubstart: VAR_STUB_ZONE { @@ -368,6 +372,7 @@ authstart: VAR_AUTH_ZONE s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; s->zonemd_reject_absence = 0; s->isrpz = 0; } else @@ -378,7 +383,7 @@ contents_auth: contents_auth content_auth | ; content_auth: auth_name | auth_zonefile | auth_master | auth_url | auth_for_downstream | auth_for_upstream | auth_fallback_enabled | - auth_allow_notify | auth_zonemd_reject_absence + auth_allow_notify | auth_zonemd_check | auth_zonemd_reject_absence ; rpz_tag: VAR_TAGS STRING_ARG @@ -859,6 +864,39 @@ server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG free($2); } ; +server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi($2); + free($2); + } + ; +server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi($2); + free($2); + } + ; +server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->tcp_auth_query_timeout = 0; + else cfg_parser->cfg->tcp_auth_query_timeout = atoi($2); + free($2); + } + ; server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG { OUTYY(("P(server_tcp_keepalive:%s)\n", $2)); @@ -1817,6 +1855,19 @@ server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG free($2); } ; +server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG + { + OUTYY(("P(server_val_max_restart:%s)\n", $2)); + if(*$2 == '\0' || strcmp($2, "0") == 0) { + cfg_parser->cfg->val_max_restart = 0; + } else { + cfg_parser->cfg->val_max_restart = atoi($2); + if(!cfg_parser->cfg->val_max_restart) + yyerror("number expected"); + } + free($2); + } + ; server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG { OUTYY(("P(server_cache_max_ttl:%s)\n", $2)); @@ -2753,6 +2804,16 @@ auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG yyerror("out of memory"); } ; +auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG + { + OUTYY(("P(zonemd-check:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_check = + (strcmp($2, "yes")==0); + free($2); + } + ; auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG { OUTYY(("P(zonemd-reject-absence:%s)\n", $2)); @@ -2813,13 +2874,20 @@ view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG && strcmp($3, "always_transparent")!=0 && strcmp($3, "always_refuse")!=0 && strcmp($3, "always_nxdomain")!=0 + && strcmp($3, "always_nodata")!=0 + && strcmp($3, "always_deny")!=0 + && strcmp($3, "always_null")!=0 && strcmp($3, "noview")!=0 - && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0) { + && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0 + && strcmp($3, "inform_redirect") != 0 + && strcmp($3, "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); + "inform_redirect, always_transparent, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " + "noview, nodefault or ipset"); free($2); free($3); } else if(strcmp($3, "nodefault")==0) { diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 4830b343f..00272fd1c 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -329,7 +329,10 @@ parse_create_rrset(sldns_buffer* pkt, struct rrset_parse* pset, return 0; /* copy & decompress */ if(!parse_rr_copy(pkt, pset, *data)) { - if(!region) free(*data); + if(!region) { + free(*data); + *data = NULL; + } return 0; } return 1; @@ -394,8 +397,13 @@ parse_copy_decompress_rrset(sldns_buffer* pkt, struct msg_parse* msg, pk->rk.type = htons(pset->type); pk->rk.rrset_class = pset->rrset_class; /** read data part. */ - if(!parse_create_rrset(pkt, pset, &data, region)) + if(!parse_create_rrset(pkt, pset, &data, region)) { + if(!region) { + free(pk->rk.dname); + pk->rk.dname = NULL; + } return 0; + } pk->entry.data = (void*)data; pk->entry.key = (void*)pk; pk->entry.hash = pset->hash; @@ -825,9 +833,15 @@ log_dns_msg(const char* str, struct query_info* qinfo, struct reply_info* rep) /* not particularly fast but flexible, make wireformat and print */ sldns_buffer* buf = sldns_buffer_new(65535); struct regional* region = regional_create(); - if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0, + if(!(buf && region)) { + log_err("%s: log_dns_msg: out of memory", str); + sldns_buffer_free(buf); + regional_destroy(region); + return; + } + if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0, region, 65535, 1, 0)) { - log_info("%s: log_dns_msg: out of memory", str); + log_err("%s: log_dns_msg: out of memory", str); } else { char* s = sldns_wire2str_pkt(sldns_buffer_begin(buf), sldns_buffer_limit(buf)); diff --git a/util/net_help.c b/util/net_help.c index bcc8d34bd..06bc1f5dd 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -887,7 +887,7 @@ log_cert(unsigned level, const char* str, void* cert) } #endif /* HAVE_SSL */ -#if defined(HAVE_SSL) && defined(HAVE_NGHTTP2) +#if defined(HAVE_SSL) && defined(HAVE_NGHTTP2) && defined(HAVE_SSL_CTX_SET_ALPN_SELECT_CB) static int alpn_select_cb(SSL* ATTR_UNUSED(ssl), const unsigned char** out, unsigned char* outlen, const unsigned char* in, unsigned int inlen, void* ATTR_UNUSED(arg)) diff --git a/util/net_help.h b/util/net_help.h index 45b607a43..79835270c 100644 --- a/util/net_help.h +++ b/util/net_help.h @@ -42,6 +42,7 @@ #ifndef NET_HELP_H #define NET_HELP_H #include "util/log.h" +#include "util/random.h" struct sock_list; struct regional; struct config_strlist; @@ -76,8 +77,6 @@ struct config_strlist; /** timeout in milliseconds for UDP queries to auth servers. */ #define UDP_AUTH_QUERY_TIMEOUT 3000 -/** timeout in milliseconds for TCP queries to auth servers. */ -#define TCP_AUTH_QUERY_TIMEOUT 3000 /** Advertised version of EDNS capabilities */ #define EDNS_ADVERTISED_VERSION 0 /** Advertised size of EDNS capabilities */ @@ -94,6 +93,9 @@ extern uint16_t EDNS_ADVERTISED_SIZE; /** DNSKEY secure entry point, KSK flag */ #define DNSKEY_BIT_SEP 0x0001 +/** return a random 16-bit number given a random source */ +#define GET_RANDOM_ID(rnd) (((unsigned)ub_random(rnd)>>8) & 0xffff) + /** minimal responses when positive answer */ extern int MINIMAL_RESPONSES; diff --git a/util/netevent.c b/util/netevent.c index a7c4a306a..ede19726a 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -1314,6 +1314,7 @@ ssl_handshake(struct comm_point* c) c->repinfo.addrlen); } +#ifdef HAVE_SSL_GET0_ALPN_SELECTED /* check if http2 use is negotiated */ if(c->type == comm_http && c->h2_session) { const unsigned char *alpn; @@ -1325,6 +1326,7 @@ ssl_handshake(struct comm_point* c) c->use_h2 = 1; } } +#endif /* setup listen rw correctly */ if(c->tcp_is_reading) { diff --git a/util/shm_side/shm_main.c b/util/shm_side/shm_main.c index af8c5bcf3..51039abf3 100644 --- a/util/shm_side/shm_main.c +++ b/util/shm_side/shm_main.c @@ -130,6 +130,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -143,6 +144,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -156,6 +158,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -170,6 +173,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -210,6 +214,8 @@ void shm_main_shutdown(struct daemon* daemon) if (daemon->shm_info->ptr_arr) shmdt(daemon->shm_info->ptr_arr); + free(daemon->shm_info); + daemon->shm_info = NULL; #else (void)daemon; #endif /* HAVE_SHMGET */ diff --git a/util/storage/lookup3.c b/util/storage/lookup3.c index bb25eb433..c4026626c 100644 --- a/util/storage/lookup3.c +++ b/util/storage/lookup3.c @@ -53,21 +53,69 @@ on 1 byte), but shoehorning those bytes into integers efficiently is messy. #include "util/storage/lookup3.h" #include /* defines printf for tests */ #include /* defines time_t for timings in the test */ -/*#include defines uint32_t etc (from config.h) */ -#include /* attempt to define endianness */ -#ifdef HAVE_SYS_TYPES_H -# include /* attempt to define endianness (solaris) */ -#endif -#if defined(linux) || defined(__OpenBSD__) + +/* + * If our build system provides endianness info, signalled by + * HAVE_TARGET_ENDIANNESS and the presence or absence of TARGET_IS_BIG_ENDIAN, + * use that. Otherwise try to work out the endianness. + */ +#if defined(HAVE_TARGET_ENDIANNESS) +# if defined(TARGET_IS_BIG_ENDIAN) +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# else +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# endif +#else +# include /* attempt to define endianness */ +# ifdef HAVE_SYS_TYPES_H +# include /* attempt to define endianness (solaris) */ +# endif +# if defined(linux) || defined(__OpenBSD__) # ifdef HAVE_ENDIAN_H # include /* attempt to define endianness */ # else # include /* on older OpenBSD */ # endif -#endif -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) -#include /* attempt to define endianness */ -#endif +# endif +# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) +# include /* attempt to define endianness */ +# endif + /* + * My best guess at if you are big-endian or little-endian. This may + * need adjustment. + */ +# if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \ + __BYTE_ORDER == __LITTLE_ENDIAN) || \ + (defined(i386) || defined(__i386__) || defined(__i486__) || \ + defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL) || defined(__x86)) +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \ + __BYTE_ORDER == __BIG_ENDIAN) || \ + (defined(sparc) || defined(__sparc) || defined(__sparc__) || defined(POWERPC) || defined(mc68000) || defined(sel)) +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# elif defined(_MACHINE_ENDIAN_H_) + /* test for machine_endian_h protects failure if some are empty strings */ +# if defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && _BYTE_ORDER == _BIG_ENDIAN +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# endif +# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# endif /* _MACHINE_ENDIAN_H_ */ +# else +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 0 +# endif +#endif /* defined(HAVE_TARGET_ENDIANNESS) */ + +#define hashsize(n) ((uint32_t)1<<(n)) +#define hashmask(n) (hashsize(n)-1) +#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) /* random initial value */ static uint32_t raninit = (uint32_t)0xdeadbeef; @@ -78,40 +126,6 @@ hash_set_raninit(uint32_t v) raninit = v; } -/* - * My best guess at if you are big-endian or little-endian. This may - * need adjustment. - */ -#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \ - __BYTE_ORDER == __LITTLE_ENDIAN) || \ - (defined(i386) || defined(__i386__) || defined(__i486__) || \ - defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL) || defined(__x86)) -# define HASH_LITTLE_ENDIAN 1 -# define HASH_BIG_ENDIAN 0 -#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \ - __BYTE_ORDER == __BIG_ENDIAN) || \ - (defined(sparc) || defined(__sparc) || defined(__sparc__) || defined(POWERPC) || defined(mc68000) || defined(sel)) -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 1 -#elif defined(_MACHINE_ENDIAN_H_) -/* test for machine_endian_h protects failure if some are empty strings */ -# if defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && _BYTE_ORDER == _BIG_ENDIAN -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 1 -# endif -# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN -# define HASH_LITTLE_ENDIAN 1 -# define HASH_BIG_ENDIAN 0 -# endif /* _MACHINE_ENDIAN_H_ */ -#else -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 0 -#endif - -#define hashsize(n) ((uint32_t)1<<(n)) -#define hashmask(n) (hashsize(n)-1) -#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) - /* ------------------------------------------------------------------------------- mix -- mix 3 32-bit values reversibly. diff --git a/validator/autotrust.c b/validator/autotrust.c index 7ce07e0d8..fe17df2d5 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -1077,6 +1077,17 @@ trustanchor_state2str(autr_state_type s) return " UNKNOWN "; } +/** ctime r for autotrust */ +static char* autr_ctime_r(time_t* t, char* s) +{ + ctime_r(t, s); +#ifdef USE_WINSOCK + if(strlen(s) > 10 && s[7]==' ' && s[8]=='0') + s[8]=' '; /* fix error in windows ctime */ +#endif + return s; +} + /** print ID to file */ static int print_id(FILE* out, char* fname, uint8_t* nm, size_t nmlen, uint16_t dclass) @@ -1123,13 +1134,13 @@ autr_write_contents(FILE* out, char* fn, struct trust_anchor* tp) } if(fprintf(out, ";;last_queried: %u ;;%s", (unsigned int)tp->autr->last_queried, - ctime_r(&(tp->autr->last_queried), tmi)) < 0 || + autr_ctime_r(&(tp->autr->last_queried), tmi)) < 0 || fprintf(out, ";;last_success: %u ;;%s", (unsigned int)tp->autr->last_success, - ctime_r(&(tp->autr->last_success), tmi)) < 0 || + autr_ctime_r(&(tp->autr->last_success), tmi)) < 0 || fprintf(out, ";;next_probe_time: %u ;;%s", (unsigned int)tp->autr->next_probe_time, - ctime_r(&(tp->autr->next_probe_time), tmi)) < 0 || + autr_ctime_r(&(tp->autr->next_probe_time), tmi)) < 0 || fprintf(out, ";;query_failed: %d\n", (int)tp->autr->query_failed)<0 || fprintf(out, ";;query_interval: %d\n", (int)tp->autr->query_interval) < 0 || @@ -1160,7 +1171,7 @@ autr_write_contents(FILE* out, char* fn, struct trust_anchor* tp) ";;lastchange=%u ;;%s", str, (int)ta->s, trustanchor_state2str(ta->s), (int)ta->pending_count, (unsigned int)ta->last_change, - ctime_r(&(ta->last_change), tmi)) < 0) { + autr_ctime_r(&(ta->last_change), tmi)) < 0) { log_err("could not write to %s: %s", fn, strerror(errno)); free(str); return 0; @@ -1579,6 +1590,7 @@ key_matches_a_ds(struct module_env* env, struct val_env* ve, for(ds_idx=0; ds_idxlast_change, buf); + autr_ctime_r(&ta->last_change, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("[%s] %s ;;state:%d ;;pending_count:%d%s%s last:%s", trustanchor_state2str(ta->s), str, ta->s, ta->pending_count, @@ -2289,13 +2302,13 @@ autr_debug_print_tp(struct trust_anchor* tp) log_packed_rrset(NO_VERBOSE, "DNSKEY:", tp->dnskey_rrset); } log_info("file %s", tp->autr->file); - ctime_r(&tp->autr->last_queried, buf); + autr_ctime_r(&tp->autr->last_queried, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("last_queried: %u %s", (unsigned)tp->autr->last_queried, buf); - ctime_r(&tp->autr->last_success, buf); + autr_ctime_r(&tp->autr->last_success, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("last_success: %u %s", (unsigned)tp->autr->last_success, buf); - ctime_r(&tp->autr->next_probe_time, buf); + autr_ctime_r(&tp->autr->next_probe_time, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("next_probe_time: %u %s", (unsigned)tp->autr->next_probe_time, buf); diff --git a/validator/val_anchor.c b/validator/val_anchor.c index 9b6574c5d..b1a54e1f0 100644 --- a/validator/val_anchor.c +++ b/validator/val_anchor.c @@ -971,7 +971,8 @@ anchors_dnskey_unsupported(struct trust_anchor* ta) { size_t i, num = 0; for(i=0; inumDNSKEY; i++) { - if(!dnskey_algo_is_supported(ta->dnskey_rrset, i)) + if(!dnskey_algo_is_supported(ta->dnskey_rrset, i) || + !dnskey_size_is_supported(ta->dnskey_rrset, i)) num++; } return num; @@ -1048,6 +1049,10 @@ anchors_apply_cfg(struct val_anchors* anchors, struct config_file* cfg) const char** zstr; char* nm; sldns_buffer* parsebuf = sldns_buffer_new(65535); + if(!parsebuf) { + log_err("malloc error in anchors_apply_cfg."); + return 0; + } if(cfg->insecure_lan_zones) { for(zstr = as112_zones; *zstr; zstr++) { if(!anchor_insert_insecure(anchors, *zstr)) { diff --git a/validator/val_nsec.c b/validator/val_nsec.c index 032d2ae03..a4e5b3137 100644 --- a/validator/val_nsec.c +++ b/validator/val_nsec.c @@ -180,6 +180,7 @@ nsec_verify_rrset(struct module_env* env, struct val_env* ve, { struct packed_rrset_data* d = (struct packed_rrset_data*) nsec->entry.data; + if(!d) return 0; if(d->security == sec_status_secure) return 1; rrset_check_sec_status(env->rrset_cache, nsec, *env->now); diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c index 14e13da06..b15fba3f4 100644 --- a/validator/val_sigcrypt.c +++ b/validator/val_sigcrypt.c @@ -386,6 +386,49 @@ int dnskey_algo_is_supported(struct ub_packed_rrset_key* dnskey_rrset, dnskey_idx)); } +int dnskey_size_is_supported(struct ub_packed_rrset_key* dnskey_rrset, + size_t dnskey_idx) +{ +#ifdef DEPRECATE_RSA_1024 + uint8_t* rdata; + size_t len; + int alg = dnskey_get_algo(dnskey_rrset, dnskey_idx); + size_t keysize; + + rrset_get_rdata(dnskey_rrset, dnskey_idx, &rdata, &len); + if(len < 2+4) + return 0; + keysize = sldns_rr_dnskey_key_size_raw(rdata+2+4, len-2-4, alg); + + switch((sldns_algorithm)alg) { + case LDNS_RSAMD5: + case LDNS_RSASHA1: + case LDNS_RSASHA1_NSEC3: + case LDNS_RSASHA256: + case LDNS_RSASHA512: + /* reject RSA keys of 1024 bits and shorter */ + if(keysize <= 1024) + return 0; + break; + default: + break; + } +#else + (void)dnskey_rrset; (void)dnskey_idx; +#endif /* DEPRECATE_RSA_1024 */ + return 1; +} + +int dnskeyset_size_is_supported(struct ub_packed_rrset_key* dnskey_rrset) +{ + size_t i, num = rrset_get_count(dnskey_rrset); + for(i=0; idate_override = cfg->val_date_override; val_env->skew_min = cfg->val_sig_skew_min; val_env->skew_max = cfg->val_sig_skew_max; + val_env->max_restart = cfg->val_max_restart; c = cfg_count_numbers(cfg->val_nsec3_key_iterations); if(c < 1 || (c&1)) { log_err("validator: unparseable or odd nsec3 key " @@ -1487,7 +1488,7 @@ processInit(struct module_qstate* qstate, struct val_qstate* vq, enum val_classification subtype = val_classify_response( qstate->query_flags, &qstate->qinfo, &vq->qchase, vq->orig_msg->rep, vq->rrset_skip); - if(vq->restart_count > VAL_MAX_RESTART_COUNT) { + if(vq->restart_count > ve->max_restart) { verbose(VERB_ALGO, "restart count exceeded"); return val_error(qstate, id); } @@ -1640,7 +1641,7 @@ processInit(struct module_qstate* qstate, struct val_qstate* vq, errinf(qstate, key_entry_get_reason(vq->key_entry)); } /* no retries, stop bothering the authority until timeout */ - vq->restart_count = VAL_MAX_RESTART_COUNT; + vq->restart_count = ve->max_restart; vq->chase_reply->security = sec_status_bogus; vq->state = VAL_FINISHED_STATE; return 1; @@ -1848,7 +1849,7 @@ processValidate(struct module_qstate* qstate, struct val_qstate* vq, LDNS_RR_TYPE_DNSKEY, vq->key_entry->key_class); vq->chase_reply->security = sec_status_bogus; errinf(qstate, "while building chain of trust"); - if(vq->restart_count >= VAL_MAX_RESTART_COUNT) + if(vq->restart_count >= ve->max_restart) key_cache_insert(ve->kcache, vq->key_entry, qstate); return 1; } @@ -2064,7 +2065,7 @@ processFinished(struct module_qstate* qstate, struct val_qstate* vq, * endless bogus revalidation */ if(vq->orig_msg->rep->security == sec_status_bogus) { /* see if we can try again to fetch data */ - if(vq->restart_count < VAL_MAX_RESTART_COUNT) { + if(vq->restart_count < ve->max_restart) { int restart_count = vq->restart_count+1; verbose(VERB_ALGO, "validation failed, " "blacklist and retry to fetch data"); @@ -2605,6 +2606,7 @@ process_ds_response(struct module_qstate* qstate, struct val_qstate* vq, int id, int rcode, struct dns_msg* msg, struct query_info* qinfo, struct sock_list* origin) { + struct val_env* ve = (struct val_env*)qstate->env->modinfo[id]; struct key_entry_key* dske = NULL; uint8_t* olds = vq->empty_DS_name; vq->empty_DS_name = NULL; @@ -2638,7 +2640,7 @@ process_ds_response(struct module_qstate* qstate, struct val_qstate* vq, vq->chain_blacklist = NULL; /* fresh blacklist for next part*/ /* Keep the forState.state on FINDKEY. */ } else if(key_entry_isbad(dske) - && vq->restart_count < VAL_MAX_RESTART_COUNT) { + && vq->restart_count < ve->max_restart) { vq->empty_DS_name = olds; val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; @@ -2691,7 +2693,7 @@ process_dnskey_response(struct module_qstate* qstate, struct val_qstate* vq, /* bad response */ verbose(VERB_DETAIL, "Missing DNSKEY RRset in response to " "DNSKEY query."); - if(vq->restart_count < VAL_MAX_RESTART_COUNT) { + if(vq->restart_count < ve->max_restart) { val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; @@ -2730,7 +2732,7 @@ process_dnskey_response(struct module_qstate* qstate, struct val_qstate* vq, * state. */ if(!key_entry_isgood(vq->key_entry)) { if(key_entry_isbad(vq->key_entry)) { - if(vq->restart_count < VAL_MAX_RESTART_COUNT) { + if(vq->restart_count < ve->max_restart) { val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; @@ -2807,7 +2809,7 @@ process_prime_response(struct module_qstate* qstate, struct val_qstate* vq, lock_basic_unlock(&ta->lock); if(vq->key_entry) { if(key_entry_isbad(vq->key_entry) - && vq->restart_count < VAL_MAX_RESTART_COUNT) { + && vq->restart_count < ve->max_restart) { val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; diff --git a/validator/validator.h b/validator/validator.h index 35da1920a..a928e10a6 100644 --- a/validator/validator.h +++ b/validator/validator.h @@ -64,9 +64,6 @@ struct config_strlist; */ #define BOGUS_KEY_TTL 60 /* seconds */ -/** max number of query restarts, number of IPs to probe */ -#define VAL_MAX_RESTART_COUNT 5 - /** Root key sentinel is ta preamble */ #define SENTINEL_IS "root-key-sentinel-is-ta-" /** Root key sentinel is not ta preamble */ @@ -95,6 +92,9 @@ struct val_env { /** clock skew max for signatures */ int32_t skew_max; + /** max number of query restarts, number of IPs to probe */ + int32_t max_restart; + /** TTL for bogus data; used instead of untrusted TTL from data. * Bogus data will not be verified more often than this interval. * seconds. */